0% encontró este documento útil (0 votos)
9 vistas28 páginas

Introducción A Fullstack

El documento presenta un módulo sobre Desarrollo Web Full Stack, abordando la importancia de la arquitectura de aplicaciones web y los stacks más populares. Se explican las diferencias entre aplicaciones web dinámicas y estáticas, así como las tecnologías del frontend (HTML, CSS, JavaScript) y backend (PHP, Python, Java, entre otros). Además, se discuten los elementos de la arquitectura web y la infraestructura necesaria para su implementación.

Cargado por

llcristianll
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas28 páginas

Introducción A Fullstack

El documento presenta un módulo sobre Desarrollo Web Full Stack, abordando la importancia de la arquitectura de aplicaciones web y los stacks más populares. Se explican las diferencias entre aplicaciones web dinámicas y estáticas, así como las tecnologías del frontend (HTML, CSS, JavaScript) y backend (PHP, Python, Java, entre otros). Además, se discuten los elementos de la arquitectura web y la infraestructura necesaria para su implementación.

Cargado por

llcristianll
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 28

TECNICATURA SUPERIOR EN

Desarrollo de Software

Programación II

Módulo
Full Stack I

Introducción al Desarrollo Web Full Stack


AUTOR: PÉREZ, Narciso Hector
ISPC / Tecnicatura Superior en Desarrollo de Software​


Índice
Introducción​ 2
Desarrollo web full stack​ 3
Breve reseña​ 3
Desarrollo Web Full Stack​ 5
Arquitecturas de las aplicaciones Web​ 5
Arquitectura Web de 3 niveles​ 6
Frontend​ 7
Lenguajes Web Frontend​ 7
Backend​ 8
Lenguajes Web Backend​ 8
Elementos de la arquitectura Web​ 9
Proceso de una Petición Web 2.0​ 11
Stacks​ 13
Arquitectura .NET -IIS- SQL Server​ 13
Arquitectura LAMP​ 14
Arquitectura MEAN​ 15
Arquitectura MEER​ 17
Arquitectura BFF​ 18
Otros stacks​ 19
Conceptualización de las estructuras involucradas en la transferencia de datos entre computadoras​19
Referencias​ 27
Glosario​ 28

2
ISPC / Tecnicatura Superior en Desarrollo de Software​

Introducción
En esta sección avanzaremos en el concepto de “Arquitectura de las aplicaciones Web”, su
importancia y su aplicación en el desarrollo.

Objetivos:
●​ Comprender la importancia de la arquitectura en el desarrollo de aplicaciones web
como así también sus elementos.
●​ Identificar los conceptos pilares de las arquitecturas de aplicaciones web y los stacks
más populares.
●​ Identificar los conceptos y tecnologías propias del frontend y backend, así como de la
conexión entre ambas.

3
ISPC / Tecnicatura Superior en Desarrollo de Software​

Desarrollo web full stack

El desarrollo web full stack permite crear aplicaciones web dinámicas. Esto se logra en base
a los estándares web y utilizando tecnologías web que pueden variar dependiendo del stack
de desarrollo.

Según la definición previa el desarrollo web full stack tiene por objeto la creación de
aplicaciones web dinámicas pero ¿Qué entendemos por aplicación web dinámica? ¿En qué
se diferencia de las aplicaciones web estáticas?

La diferencia está en que las aplicaciones web dinámicas modifican su contenido en función
del usuario que accede permitiendo mostrar uno u otro contenido dependiendo del usuario
y de su interacción para con la aplicación web (ej. facebook, instagram, etc.) mientras que,
las aplicaciones web estáticas muestran siempre el mismo contenido independientemente
del usuario visitante (ej. un blog).

La definición también habla de estándares pero ¿Qué son los estándares web y cuáles
existen?

Los estándares web son tecnologías que se utilizan para crear aplicaciones web. Los mismos
“son creados por organismos de estándares — instituciones que invitan a grupos de
personas de diferentes compañías de tecnología a unirse y acordar cómo deberían funcionar
las tecnologías de la mejor manera posible para cumplir con todos sus casos de uso. El W3C
es el organismo de estándares web más conocido, pero hay otros como WHATWG (que
fueron responsables de la modernización del lenguaje HTML), ECMA (que publica el
estándar para ECMAScript, en el que se basa JavaScript), Khronos (que publica tecnologías
para gráficos 3D, como WebGL) y otras” (MDN Web Docs,
https://developer.mozilla.org/es/docs/Learn/Getting_started_with_the_web/The_web_and
_web_standards ).

Breve reseña
Esta breve reseña está plagada de términos técnicos. La idea es ampliar estos conceptos
durante el desarrollo del documento. Para lo cual nos referiremos al glosario disponible al
final del mismo.

ARPANET, The Advanced Research Projects Agency Network, fue el primer proyecto de una
red WAN exitoso, en el año 1969. A partir de allí empieza un crecimiento vertiginoso del uso
de la internet.

Pero no fue hasta 1990 que Tim Berners-Lee creó la WWW, la “WorldWideWeb” que realizó
la primera conexión desde un navegador a un servidor web mientras trabajaba en el CERN
desarrollando así, las tres tecnologías fundamentales de la web (hoy estándares) que son:

4
ISPC / Tecnicatura Superior en Desarrollo de Software​


●​ HTML (HyperText Markup Language). Lenguaje de marcado o etiquetado que se
emplea para escribir los documentos o páginas web.
●​ URL (Universal Resource Locator). El localizador de recursos uniforme, sistema de
localización o direccionamiento de los documentos web.
●​ HTTP (HyperText Transfer Protocol) El lenguaje con el que se comunica el navegador
con el servidor web y el que se emplea para transmitir los documentos web.

Se trata entonces de una arquitectura cliente-servidor en la que cada dispositivo electrónico


en la red (internet, intranet o extranet) actúa como cliente o servidor lo que implica la
comunicación entre procesos hacen peticiones (clientes) y procesos que responden a esas
peticiones (servidores). Esta comunicación es posible gracias al protocolo HTTP.

Figura 1: Arquitectura cliente/servidor básica

En 1994 (1 de octubre) Tim Berners-Lee abandona el CERN y funda la W3C, en inglés, “World
Wide Web Consortium”, organismo internacional que propone recomendaciones y
estándares web que aseguran el crecimiento de la World Wide Web.

A continuación compartimos un enlace dónde podemos observar la evolución de la web


hasta 2012 y sus hitos más destacados: http://www.evolutionoftheweb.com/?hl=es de los
cuales se destacan:

●​ En 1991 surge HTTP definido como “protocolo de red para sistemas de información
hipermedia distribuidos”.
●​ Muy próximo aparece HTML 1, es el lenguaje de marcado predominante de las
páginas web.
●​ En 1995 Netscape creó JavaScript, un lenguaje de secuencias de comandos basado
en prototipos y “orientado a objetos”. El objetivo de este lenguaje de programación
fue darle capacidad de ejecución al cliente de esta arquitectura web, o sea, al
navegador.
●​ En 1998 aparecen las hojas de estilo, en su versión 2. Se denominaron CSS, del inglés
“Cascading Style Sheets”, que es un lenguaje de hojas de estilo empleado para
describir la semántica de presentación de un documento, en este caso un documento
web.

5
ISPC / Tecnicatura Superior en Desarrollo de Software​

Desarrollo Web Full Stack


El desarrollo web full stack permite crear aplicaciones web dinámicas. Esto se logra en base
a los estándares web y utilizando tecnologías web que pueden variar dependiendo del stack
de desarrollo.

Según la definición previa el desarrollo web full stack tiene por objeto la creación de
aplicaciones web dinámicas pero…

¿Qué entendemos por web dinámica? ¿En qué se diferencia de las web
estáticas? Investiga

Arquitecturas de las aplicaciones Web


Las aplicaciones web se basan en una arquitectura cliente/servidor. Es decir que, por un lado
está el cliente (navegador) y por otro lado el servidor. Existen diferentes variantes de la
arquitectura básica según como se implemente.

A continuación enumeramos algunas las arquitecturas más comunes:


●​ Servidor web + base de datos en un mismo servidor (2 niveles). En este caso el
servidor gestiona tanto la lógica de negocio como la lógica de los datos y los datos.

Figura 2: Servidor web + base de datos en un mismo servidor

●​ Servidor web y de datos separados (3 niveles). En este caso se separa la lógica de


negocio de la de datos en diferentes servidores.

Figura 3: Servidor web y de datos separados

●​ Servidor web + servidor de aplicaciones + base de datos en un mismo servidor (2


niveles).

6
ISPC / Tecnicatura Superior en Desarrollo de Software​

Figura 4: Servidor web + servidor de aplicaciones + base de datos en un mismo


servidor

●​ Servidor de aplicaciones + base de datos en un mismo servidor (3 niveles).

●​ Servidor de aplicaciones, base de datos y servicios de aplicaciones en diferentes


separados en diferentes servidores (4 niveles).

El objetivo de separar las distintas funcionalidades en distintos servidores es aumentar la


escalabilidad y el rendimiento. Por ejemplo el servidor web al ofrecer servicios de http
deberá tener una buena conexión a internet mientras que el servidor de base de datos
requerirá tener una buena capacidad de almacenamiento y procesamiento. (Sergio Lujan
Mora, Arquitectura de aplicaciones web: historia, principios básicos y clientes web)

Arquitectura Web de 3 niveles


En cuanto a los desarrolladores, es importante agregar que si bien, lo más habitual es que
se especialicen en frontend o en backend, hoy existe un tercer perfil: desarrollador
“Full-Stack” (muy solicitado por las empresas de desarrollo de software). Este perfil se
caracteriza por tener una visión integral de toda la aplicación web (frontend + backend).

7
ISPC / Tecnicatura Superior en Desarrollo de Software​

Frontend
El Frontend son aquellas tecnologías de desarrollo web del lado del cliente, es decir, las que corren
en el navegador del usuario y que son básicamente tres: HTML, CSS y JavaScript.

El frontend se enfoca en el usuario, en todo con lo que puede interactuar y lo que ve mientras
navega. Una buena experiencia de usuario, inmersión y usabilidad son algunos de los objetivos que
busca un buen desarrollador frontend, y hoy en día hay una gran variedad de Frameworks,
preprocesadores y librerías que ayudan en esta tarea.

Lenguajes Web Frontend


A pesar de que hay varios lenguajes que se usan en el frontend, nosotros nos basaremos en tres,
HTML, CSS y JavaScript, aunque HTML y CSS no son lenguajes de programación, no se debe confundir
lenguajes de programación como ejemplo JavaScript, ActionScript o Java, con lenguajes de marcado
como HTML o lenguaje de hojas de estilo cómo CSS. También existen otros lenguajes frontend, como
por ejemplo ActionScript, Java, Silverlight, VBScript u otros lenguajes XML, pero se usan poco en
comparación con HTML, CSS y JavaScript.

HTML es un lenguaje de marcado de los contenidos de un sitio web, es decir, para designar la función
de cada elemento dentro de la página: titulares, párrafos, listas, tablas, etc. Es el esqueleto de la web
y la base de todo el frontend.

CSS es un lenguaje de hojas de estilo creado para controlar la presentación de la página definiendo
colores, tamaños, tipos de letras, posiciones, espaciados, etc.

8
ISPC / Tecnicatura Superior en Desarrollo de Software​


JavaScript es un lenguaje de programación interpretado que se encarga del comportamiento de una
página web y de la interactividad con el usuario.

Aparte, junto al cliente también tenemos los frameworks, las librerías, los preprocesadores, los
plugins... pero todo gira alrededor de HTML, CSS y JavaScript.

Backend
El Backend es aquello que se encuentra del lado del servidor y se encarga de interactuar con bases
de datos, verificar maniobras de sesiones de usuarios, montar la página en un servidor y servir todas
las vistas creadas por el desarrollador frontend.

En este caso el número de tecnologías es mucho menos limitado, puesto que la programación
backend puede alcanzar lenguajes como PHP, Python, .NET, Java, etc., y las bases de datos sobre las
que se trabaja pueden ser SQL, MongoDB, MySQL, entre otras.

La idea de esta abstracción es mantener separadas las diferentes partes de un sistema web o
software para tener un mejor control. En pocas palabras, el objetivo es que el frontend recoja los
datos y el backend los procese.

Estas dos capas que forman una aplicación web son independientes entre sí (no comparten código),
pero intercambian información. Esta división permite que el acceso a las bases de datos solo se haga
desde el backend y el usuario no tenga acceso al código de la aplicación, mientras que la
programación del lado del cliente permite que el navegador pueda, por ejemplo, controlar dónde el
usuario hace clic o acceder a sus ficheros.

Con esta separación de entornos el usuario de una aplicación web lo que hace es, por ejemplo,
iniciar sesión escribiendo su usuario y contraseña en un formulario; a continuación, los datos se
envían y el backend toma esta información que viene desde el HTML y busca las coincidencias de
usuario en la base de datos con una serie de procesos invisibles para el usuario. En este punto, el
servidor mandaría un mensaje al frontend dándole acceso (o no) a la aplicación.

Lenguajes Web Backend


Aquí encontramos unos cuantos, por ejemplo, PHP, Python, Rails, Go, C#, Java, Node JS (JavaScript)
entre otros. Como vemos, mientras que para el frontend se acostumbra a trabajar solo con tres
lenguajes, en el backend hay unos cuantos más. Por suerte, un desarrollador backend no necesita
saberlos todos.

Quizás habéis notado que tenemos JavaScript tanto por el lado del cliente como por el lado del
servidor. JavaScript se creó originalmente como lenguaje para el frontend, pero los últimos años se
ha creado su lugar dentro del backend con NodeJS, un motor que interpreta JavaScript en el servidor
sin necesidad de un navegador. Esto no quiere decir que el JavaScript que tenemos en el cliente
tenga alguna conexión con el que se encuentra en el servidor: cada uno corre por su parte de manera
independiente. El JavaScript del cliente corre en el navegador y no tiene ningún enlace ni ninguna
conexión con el que hay en el servidor y no le interesa saber cómo está montada la arquitectura del
servidor ni cómo se conecta a la base de datos.

Ahora se puede utilizar el mismo lenguaje en todos los contextos del desarrollo: JavaScript en el
cliente de escritorio (DOM), en el cliente móvil (Cordova, React Native), en el servidor (Node.js) o en
la BBDD (MongoDB). La posibilidad de trabajar frontend y backend con un mismo lenguaje desde el

9
ISPC / Tecnicatura Superior en Desarrollo de Software​


punto de vista del desarrollador es muy cómoda, especialmente para aquellos que trabajan ambos
mundos.

En cuanto a la tecnología, las herramientas que se utilizan en el backend son: editores de código,
compiladores, algunos depuradores para revisar errores y seguridad, gestores de bases de datos y
algunas otras cosas.

Elementos de la arquitectura Web


A continuación se enumeran los elementos de la arquitectura web (pueden variar según la
arquitectura elegida):

La infraestructura de red
Si bien es cierto que en fase de desarrollo, para probar nuestra aplicación web, no
necesitaríamos esta infraestructura, una vez nuestra aplicación se instale en el hosting
definitivo, será necesaria una red ethernet y todos los componentes que hacen posible la
conectividad de los equipos informáticos. Con esto nos referimos a cables de red, sea utp o
fibra óptica, placas de red, sea wifi o cableada, switch, routers, modem, etc. Y estos
componentes físicos son necesarios tanto del lado del cliente como del servidor.
Con esto se quiere decir que no es posible implementar una aplicación web sino existe una
infraestructura de red preexistente o se diseña e implementa una nueva.
Esta puede ser: internet, intranet o extranet.

Isp
Es el proveedor del servicio de internet.

Cliente Web
Es el navegador web. Ej. Chrome, Safari, Firefox, etc. El cliente se ejecuta en un hardware y
hoy sabemos que puede ser desde una pc de escritorio, una notebook, o un dispositivo
móvil tal como un teléfono celular o una tablet.
Pero ya no se restringe solo a estos dispositivos sino que podría ser, por ejemplo, un sistema
embebido ejecutándose en una SBC (small board computer). Incluso podría no estar
ejecutando un navegador convencional, como por ejemplo un reloj inteligente, o un
dispositivo vinculado a una máquina de producción seriada como los surgidos de la mano
del concepto de Industria 4.0.

Nombre de Dominio
Dicho de forma sencilla, el nombre de dominio (o, simplemente, "dominio") es el nombre de
un sitio web. Es decir, es lo que aparece después de "@" en una dirección de correo
electrónico o después de "www." en una dirección web. Si alguien te pregunta cómo
encontrarte en Internet, normalmente tendrás que decirle tu nombre de dominio.

Aquí tienes algunos ejemplos de nombres de dominio:


google.com, wikipedia.org, youtube.com
https://domains.google/intl/es_es/learn/web-terms-101/

URL

10
ISPC / Tecnicatura Superior en Desarrollo de Software​


Una URL (o localizador uniforme de recursos) es una dirección web completa que se utiliza
para encontrar una página web específica. Mientras que el dominio es el nombre del sitio
web, la URL es una dirección que remite a los usuarios a una de las páginas de ese sitio web.
Cada URL contiene un nombre de dominio y otros componentes necesarios para localizar
una página o un contenido concretos.

Aquí tienes algunos ejemplos de URLs:


http://www.google.com
https://es.wikipedia.org/wiki/umami
https://www.youtube.com/feed/trending
https://domains.google/intl/es_es/learn/web-terms-101/

Sitio web
Aunque una cosa lleve a la otra, comprar un nombre de dominio no implica tener un sitio
web. El dominio es el nombre del sitio web, la URL es la forma de encontrarlo y el sitio web
es lo que los usuarios ven en su pantalla y con lo que interactúan. Es decir, cuando compres
un dominio, habrás adquirido el nombre de tu sitio web, pero te faltará crear el sitio web en
cuestión.
https://domains.google/intl/es_es/learn/web-terms-101/

Servidor DNS
Se ocupa de la administración del espacio de nombres de dominio. Este servidor se encarga
de hacer las conversiones de nombres de dominio a direcciones IP. Cuando el cliente realiza
una petición web, por ejemplo google.com, una de las primeras acciones del sistema es
invocar a un servidor DNS para que le devuelva la dirección IP del/ o de alguno de los
servidores de google. Por ejemplo devolverá la ip 172.217.162.14.

Servidor Web o servidor HTTP, es un programa informático que procesa una aplicación del
lado del servidor, realizando 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.

Contenedor de aplicaciones Web (o servidor de aplicaciones web), módulo que permite la


ejecución de aplicaciones web. Por ejemplo, módulo PHP o Python del Servidor Web.
Componente ASP o ASPX de IIS. Servidor o Contenedor de Aplicaciones Web Java: Tomcat,
Weblogic, Websphere, JBoss, Geronimo, etc.

Servidor de Bases de Datos. Estos son contenedores de bases de datos que permiten
organizar y administrar los datos que deben permanecer en un medio de almacenamiento
permanente. Resuelven problemas de seguridad, mecanismos de comunicación,
concurrencia, inconsistencias de los datos, respaldo, entre otros. Hay varios tipos de bases
de datos, por ejemplo las relaciones que organizan los datos en forma de tablas, en filas y
columnas. Otro tipos son los orientados a objetos u orientados a documentos donde el
concepto de tablas se cambia por el de colección con formatos similares a “json”.
JavaScript Object Notation (JSON) es un formato basado en texto estándar para representar
datos estructurados en la sintaxis de objetos de JavaScript. Es comúnmente utilizado para

11
ISPC / Tecnicatura Superior en Desarrollo de Software​


transmitir datos en aplicaciones web (por ejemplo: enviar algunos datos desde el servidor al
cliente, así estos datos pueden ser mostrados en páginas web, o vice versa).1

Proceso de una Petición Web 2.0

Figura 5: Proceso de petición web 2.0 Recuperado de:


https://cursosdedesarrollo.com/2019/11/arquitectura-web-2-0-dinamica-en-el-servidor/

1.​ “Cliente Web: Solicita la resolución de nombres al servidor DNS. Por ejemplo:
google.com
2.​ Servidor DNS: Recibe y trata la solicitud. Una vez recibida la petición realiza las
consultas necesarias para resolver y obtener la dirección IP.
3.​ Servidor DNS: Devuelve al navegador Web la dirección IP que corresponde al
Servidor Web.
4.​ Cliente Web: Conecta con el servidor web mediante la dirección IP y el puerto.
Realiza la petición mediante una URL (Método GET) o un formulario (Método POST).
Dicha solicitud incluye: la dirección IP del servidor web, el puerto del servidor web,
URL y parámetros.
5.​ Servidor Web: Control de Acceso, Análisis de la petición y localización del recurso.
Como detecta que es el acceso a un fichero o ruta de aplicación tiene que traspasar
el control al Contenedor de aplicaciones Web
6.​ Paso de la petición del servidor web al contenedor de aplicaciones web

1
JSON, https://developer.mozilla.org/es/docs/Learn/JavaScript/Objects/JSON

12
ISPC / Tecnicatura Superior en Desarrollo de Software​


7.​ El contenedor analiza la petición y en base a la ruta traspasa el control a la aplicación
web.
8.​ Paso del control de la petición desde el CAW a la aplicación.
9.​ La aplicación recibe la petición y decide qué hacer en base a ella, es decir, elegir la
funcionalidad que se encargará de gestionar esa petición, normalmente en base a la
ruta, el método HTTP y los parámetros de entrada por URL. Una vez elegida ejecutará
esa funcionalidad.
10.​La aplicación realiza una petición SQL a la base de datos.
11.​La Base de Datos recibe la petición SQL y la procesa realizando los cambios que tenga
que hacer, si corresponde.
12.​Una vez procesada la petición devuelve los datos a la aplicación web, normalmente
un conjunto de datos. Ej. los 10 últimos clientes.
13.​La aplicación web recibe estos datos y tiene que generar una salida, normalmente
HTML, donde estructura el contenido de los datos devueltos por la BBDD en
etiquetas HTML.
14.​La aplicación web devuelve una respuesta al Contenedor de Aplicaciones Web
15.​El contenedor procesa la respuesta, para controlar la ejecución de la aplicación por si
esta falla.
16.​El Contenedor de Aplicaciones Web devuelve el fichero al servidor web.
17.​El servidor Web devuelve los datos dentro de la respuesta HTTP al navegador web.
18.​Cliente Web: Presenta (renderiza) el contenido HTML resultante.
19.​Repite los pasos 4-18 para obtener los ficheros relacionados: CSS, JS, Imágenes, etc.”
(https://cursosdedesarrollo.com/2019/11/arquitectura-web-2-0-dinamica-en-el-servi
dor/ )

En resumen, si hay algo que nos queda claro entonces, es el potencial que ha tenido y tiene
la web, su capacidad de escalabilidad, por lo que todos los mercados, incluso la cultura y el
arte, se manifiestan con gran libertad.

Pero a medida que ampliamos los horizontes aparecen nuevos problemas y estos generan
nuevas soluciones. Es que ya no son simples páginas web coloridas y dinamizadas, sino
sistemas completos, distribuidos, multiplataformas, para usos generales y específicos, como
por ejemplo una plataforma de ecommerce.

Stacks
Lo que denominamos stack tecnológico, o también denominado stack de soluciones o
ecosistema de datos, es un conjunto de todas las herramientas tecnológicas utilizadas para
construir y ejecutar una sola aplicación, en este caso web. Sitios como la red social
Facebook, han sido desarrolladas por una combinación de frameworks de codificación y
lenguajes, entre los que se incluyen JavaScript, HTML, CSS, PHP y ReactJS. Así podemos decir
que este es el “stack tecnológico” de Facebook.

Me surge de manera natural pensar cuales son los stacks usan Netflix, Whatsapp,
Instagram…

13
ISPC / Tecnicatura Superior en Desarrollo de Software​


Uno de los stacks o pila de tecnologías más utilizado por los desarrolladores es el que se
conoce por LAMP: Linux, Apache, MySQL y PHP. Cualquier web hecha con Wordpress, Drupal
o Prestashop, por ejemplo, están hechas sobre estos cuatro pilares.

Pero se pueden hacer las variaciones que se crean convenientes, puesto que muchas de
estas tecnologías son intercambiables por otras similares. Por ejemplo, NginX en lugar de
Apache, PostgreSQL en lugar de MySQL o Ruby on Rails en lugar de PHP.

Otro stack muy utilizado es el llamado MEAN, que se compone de MongoDB, Express,
Angular y NodeJS. A diferencia del conjunto anterior, esta pila de trabajo busca entregar la
mayor cantidad de carga de procesamiento al cliente pero requiere una forma muy diferente
de pensar las cosas.

También existe un equivalente en Microsoft que sería Windows + Microsoft IIS + .NET + SQL
Server.

Stack populares
•LAMP: Linux - Apache - MySQL - PHP
•LEMP: Linux - Nginx - MySQL - PHP
•MEAN: MongoDB - Express - AngularJS - Node.js
•Django: Python - Django - MySQL
•Ruby on Rails: Ruby - SQLite - Rails
•.NET: .NET + WebApi + IIS - SQL Server

Arquitectura .NET -IIS- SQL Server

Microsoft tiene su propio servidor web que se llama Internet Information Server, IIS, y su
servidor de base de datos, que se llama Microsoft SQL Server.

Afortunadamente nos provee con sus versiones “community”, o sea de uso libre.

Figura 7: Arquitectura .NET + WebApi + IIS- SQL Server - Angular Cli

14
ISPC / Tecnicatura Superior en Desarrollo de Software​

Por lo tanto esta arquitectura quedaría conformada por:


●​ IIS: servidor web.
●​ Lenguaje en el backend: cualquiera de la familia .Net, o sea, C#, VB .Net, Asp.net, etc.
●​ Servidor de base de datos: SQL Server.
●​ Herramienta y framework para el frontend: Angular Cli.

Microsoft .Net Core: Es la plataforma de desarrollo de Microsoft más moderna con las
siguientes características generales:
●​ de código fuente abierto
●​ multiplataforma: esto significa que el proyecto desarrollado se puede desplegar
(deploy), o sea, poner en producción, en un servidor linux, macOS u otros sistemas
operativos. No tiene la dependencia del sistema operativo Windows.
●​ de alto rendimiento.
●​ para la creación de todo tipo de aplicaciones.
●​ es modular, usando el sistema de paquetes NuGet.

Probablemente la mejor variación de la arquitectura mostrada antes sea mudar de .Net


Framework a .Net Core.

Para mayor referencias sobre .Net Core:


https://openwebinars.net/blog/que-es-net-core/
https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-5.0

Arquitectura LAMP
LAMP es el acrónimo de Linux, Apache, MySQL y PHP, es decir las tecnologías que conforman
esta plataforma de código abierto para el desarrollo del backend.
●​ Linux, el sistema operativo;
●​ Apache, el servidor web;
●​ MySQL/MariaDB, el motor de bases de datos;
●​ PHP, el lenguaje de programación.

15
ISPC / Tecnicatura Superior en Desarrollo de Software​

Figura 8: Arquitectura LAMP


Fuente: https://es.wikipedia.org/wiki/LAMP

De este stack se pueden desprender varias variaciones como mencionamos anteriormente,


incluso cambiando la marca del servidor de Apache a Nginx, los motores de bases de datos,
por ejemplo de Mysql a Postgresql.

Esta arquitectura tiene una particularidad, en principio es la más antigua y el formato de


aplicaciones predominante se denomina “Multi Page Application o MPA” o aplicación de
múltiples páginas.

Esto hace referencia a Arquitecturas Web Clásicas en donde uno dispone de múltiples
páginas HTML y cada una carga diferentes contenidos. Es decir cada página muestra su
contenido y se conecta mediante links con las demás y todas son enviadas desde el servidor.

Arquitectura MEAN

MEAN es una plataforma de desarrollo full-stack en JavaScript, es decir, es el conjunto de


tecnologías necesarias para el desarrollo de todas las capas de una aplicación web con
JavaScript. Está compuesto fundamentalmente por cuatro tecnologías, MongoDB, Express,
Angular y Node.js.

Cada subsistema del MEAN stack es de código abierto y de uso gratuito. A continuación se
describen estas tecnologías.

● ​ MongoDB: es un sistema de base de datos NoSQL, que almacena los datos en


estructuras o “documentos”, los cuales están definidos con la notación JSON
(Notación simple de objeto tipo JavaScript), lo que permite una rápida
manipulación y transferencia de los datos. La mayor característica de esta
plataforma es su escalabilidad, lo que significa que puede aumentar en forma
considerable la cantidad de datos que almacena sin que esto afecte su
funcionamiento en general.

16
ISPC / Tecnicatura Superior en Desarrollo de Software​


● ​ ExpressJS: este framework está escrito en JavaScript para Node.js, es decir es un
módulo de NodeJS y como tal funciona sobre esta plataforma; este módulo
ofrece los métodos suficientes en JavaScript, para poder manejar las solicitudes o
peticiones que se hacen por medio de los métodos del protocolo HTTP (GET,
POST, etc.). También ofrece un sistema simple de enrutamiento, que dentro del
mean stack es aprovechado en el back-end o en el lado del servidor.

● ​ AngularJS: es un framework que facilita la manipulación del DOM ('Modelo de


Objetos del Documento' o 'Modelo en Objetos para la Representación de
Documentos), y por lo tanto en el mean stack es la plataforma que se usa para
trabajar en el front end. Este framework permite crear una gran variedad de
efectos, de una forma sencilla, reduciendo contundentemente la cantidad de
código, lo que permite que sea mucho más sencillo de mantener.

● ​ NodeJS: Es un entorno de ejecución o runtime para JavaScript construido con el


motor de JavaScript V8 de Chrome y es la plataforma encargada del
funcionamiento del servidor. Funciona totalmente con JavaScript, un lenguaje de
programación que en un principio era dedicado a correr en el lado del cliente,
pero su uso se ha ampliado considerablemente en todos los aspectos de un sitio
web.

Figura 9: Arquitectura MEAN


Fuente: https://funnyfrontend.com/instalar-mongodb-y-uso-de-comandos-basicos/stack-mean-esquema/

Esta arquitectura tiene una particularidad, en principio es la más moderna y el formato de


aplicaciones predominante se denomina “Single Page Application o SPA” o aplicación de
una sola página.

Single Page Applications es una arquitectura en la que el servidor únicamente dispone de


una página y carga todos los estilos y todos los formatos en el cliente. A partir de ese
momento, el cliente pide únicamente datos al servidor y va renderizando diferentes
componentes en el navegador que existen en la mega página.

17
ISPC / Tecnicatura Superior en Desarrollo de Software​


Arquitectura MEER
"MERN" es el acrónimo de cuatro componentes:
MongoDB: definido en MEAN

Express: definido en MEAN

React: React (también llamada React.js o ReactJS) es una librería Javascript de código abierto
diseñada para crear interfaces de usuario (frontend) y facilita el desarrollo de todo tipo de
aplicaciones.
Es importante agregar que Reac es una librería de software libre desarrollada inicialmente
por Facebook pero hoy mantenida por una creciente comunidad de desarrolladores.

Node.js: definido en MEAN

Figura 9: Arquitectura MEER


Fuente: https://medium.com/@blockchain_simplified/what-is-mern-stack-9c867dbad302

Podemos ver que esta arquitectura es similar a MEAN, solo que cambia Angular por React.

Arquitectura BFF
Se puede usar una arquitectura Backend for Frontend (BFF) para crear backends para
aplicaciones web o móviles orientadas al cliente. Los BFF pueden ayudar a respaldar una
aplicación con múltiples clientes al mismo tiempo que mueven el sistema a un estado menos
acoplado que un sistema monolítico.

El acoplamiento es “es el grado en que los módulos de un programa dependen unos de


otros.”2

2
Modularidad, Acoplamiento y Cohesión,
https://www.disrupciontecnologica.com/acoplamiento-y-cohesion/

18
ISPC / Tecnicatura Superior en Desarrollo de Software​


Una aplicación monolítica es una unidad cohesiva de código.3

Este code pattern ayuda a los equipos a iterar las funciones más rápido y tener control sobre
los backends para aplicaciones móviles sin afectar la experiencia de la aplicación móvil o
web correspondiente.

Descripción

Una arquitectura de microservicio permite a los equipos iterar rápidamente y desarrollar


tecnología para escalar rápidamente. La arquitectura Backend for Frontend (BFF) es un tipo
de patrón creado con microservicios. El componente principal de este patrón es una
aplicación que conecta el frontend de su aplicación con el backend. Este “Code Pattern BFF”
lo ayudará a crear ese componente de acuerdo con las mejores prácticas de IBM.

Este patrón de código lo ayudará a:

● ​ Crear el patrón de arquitectura Backend for Frontend (BFF)

● ​ Generar una aplicación en Node.js, Swift o Java

● ​ Generar una aplicación con archivos para implementar en Kubernetes, Cloud


Foundry o DevOps Pipeline

● ​ Generar una aplicación con archivos para monitoreo y seguimiento distribuido

● ​ Conectar a servicios provisionados

También facilita el seguimiento de un modelo de programación Cloud Native que utiliza las
mejores prácticas de IBM para el desarrollo de aplicaciones BFF. Verá cosas como casos de
prueba, chequeo de funcionamiento y métricas en cada lenguaje de programación.

Si hace clic en Desarrollar en IBM Cloud en la parte superior del Code Pattern, podrá
aprovisionar dinámicamente los servicios de Cloud. Esos servicios se inicializará
automáticamente en su aplicación generada. Adicione un servicio administrado de
MongoDB, un servicio de Watson o pruebas automáticas en un pipeline de DevOps
personalizado.

3
Sistemas monolíticos,
https://reactiveprogramming.io/blog/es/estilos-arquitectonicos/monolitico

19
ISPC / Tecnicatura Superior en Desarrollo de Software​

Figura 10: Arquitectura BFF

Fuente: https://developer.ibm.com/es/patterns/create-backend-for-frontend-application-architecture

Otros stacks
Hay otros stacks, y probablemente surjan nuevos en el futuro cercano.

Una solución completa involucra no solo el stack, que en ocasiones conlleva la inversión en las
correspondientes licencias, sino también las consideraciones referidas al costo de hardware, entre
ellos el del servidor físico.

Conceptualización de las estructuras involucradas en la


transferencia de datos entre computadoras
Para entender la programación web es necesario además conocer o tener alguna noción
sobre las estructuras involucradas en la transferencia de datos entre computadoras.

Esta transferencia de datos, es decir, la comunicación entre dos o más computadoras se lleva
a cabo a través de lo que se llama comúnmente red de computadoras. La más conocida red
es Internet o, como también se la denomina, la red de redes.

Vamos a ver conceptos de red de computadoras, de Internet y cómo funcionan los


elementos que las constituyen, a modo introductorio para entender cómo funcionan los
sistemas para la Web.

Para comenzar vamos a definir que “(...) una red de computadoras, también llamada red de
ordenadores, red de comunicación de datos o red informática, es un conjunto de equipos
nodos y software conectados entre sí por medio de dispositivos físicos o inalámbricos que
envían y reciben impulsos eléctricos, ondas electromagnéticas o cualquier otro medio para el
transporte de datos con la finalidad de compartir información recursos y ofrecer servicios
(...)” (Tanenbaum, 2003)

20
ISPC / Tecnicatura Superior en Desarrollo de Software​


La finalidad principal para la creación de una red de ordenadores es:

●​ la de compartir recursos e información


●​ a grandes distancias
●​ asegurar la confiabilidad y la disponibilidad de la información (características propias
que definen lo que es información)
●​ aumentar la velocidad de transmisión de los datos y
●​ reducir los costos. (CENS, 2018)

Si bien este no es un curso de redes de computadora es necesario conocer los elementos


físicos en los que trabajan los sistemas que vamos a realizar. Con ello queremos decir que si
bien podemos abstraernos de esta tecnología es muy útil tener alguna noción de lo que pasa
detrás de escena.

La comunicación por medio de una red se lleva a cabo en dos diferentes categorías: una
capa denominada física y otra lógica.

La capa física incluye todos los elementos de los que hace uso un equipo para comunicarse
con otro equipo dentro de la red, como por ejemplo, tarjetas de red, los cables, las antenas,
etc. Esto es todo lo que diremos de la capa física si te interesa saber más podés leer autores
como Tanenbaum en donde habla de redes y el modelo OSI (modelo de interconexión de
sistemas abiertos, protocolos de comunicación, etc.).

Con respecto a la capa lógica la comunicación se rige por normas muy rudimentarias que
por sí mismas resultan de escasa utilidad. Sin embargo, haciendo uso de dichas normas es
posible construir los denominados protocolos que son normas de comunicación más
complejas (de alto nivel) capaces de proporcionar servicios útiles.

Los protocolos son un concepto muy similar al de los idiomas de las personas. Es decir, si dos
personas hablan el mismo idioma, y respetan ciertas reglas (tales como hablar y escucharse
por turnos), es posible comunicarse y transmitir ideas e información. Ese es el modelo de un
protocolo.

Para formar una red se requieren elementos de hardware, software y protocolos. Los
elementos físicos se clasifican en dos grupos: los dispositivos de usuario final (llamados
también Hosts) y dispositivos de red. Entre los dispositivos de usuario final podemos
enumerar computadoras, impresoras, escáneres, y demás elementos que brindan servicios
directamente al usuario. Los segundos (dispositivos de red) son todos aquellos que conectan
entre sí a los dispositivos de usuario finales posibilitando su intercomunicación. (Farías,
2013).

Internet es un conjunto descentralizado de redes de comunicación interconectadas que


utilizan la familia de protocolos TCP/IP, lo cual garantiza que las redes físicas heterogéneas
que la componen, constituyan una red lógica única de alcance mundial. (Guillamón, 2009)

Uno de los servicios que más éxito ha tenido en Internet ha sido world wide web, WWW o la
web. La WWW es un conjunto de protocolos que permite de forma sencilla la consulta

21
ISPC / Tecnicatura Superior en Desarrollo de Software​


remota de archivos de hipertexto y utiliza Internet como medio de transmisión («Internet,
n.». Oxford English Dictionary (Draft edición). Marzo de 2009).

Para hacer más notable esta distinción vamos a nombrar algunos otros servicios y protocolos
en Internet aparte de la web por ejemplo para el envío de correo electrónico usamos el
protocolo SMTP, para la transmisión de archivos usamos el protocolo FTP, para nombrar
algunos.

Esta familia de protocolos son un conjunto de protocolos de red en los que se basa Internet
y permite la transmisión de datos entre computadoras como hemos dicho.

Entre los principales podemos nombrar el conjunto de protocolos TCP/IP que hace
referencia a los dos protocolos más importantes que componen la Internet, que fueron los
primeros en definirse y qué son los más utilizados.

Por un lado, TCP (protocolo de control de transmisión). Sin entrar en mucho detalle, TCP se
usa para crear conexiones entre computadoras a través de las cuales pueden enviarse un
flujo de datos. Por la forma en la que está implementado este protocolo los datos serán
entregados en su destino sin errores y en el mismo orden en el que se transmitieron. Esto
qué quiere decir, que es un protocolo orientado a conexión, ya que el cliente y el servidor
deben anunciarse y aceptar la conexión antes de comenzar a transmitir los datos entre ellos.
O sea, hay un intercambio de mensajes entre ellos para abrir una línea de conexión que
permanece abierta durante toda la comunicación (por eso está orientado a conexión).
(dsi.uclm.es, 2007)

Fuente: Oracle (10/3/2020) Parte II Administración de TCP/IP. Recuperado de:


https://docs.oracle.com/cd/E19957-01/820-2981/6nei0r0sr/index.html

Por otro lado, el protocolo IP (Internet Protocol) es un protocolo cuya función principal es el
uso direccional en origen o destino de comunicación para transmitir datos mediante un
protocolo no orientado a conexión que transfiere paquetes conmutados a través de distintas
redes físicas previamente enlazadas según la norma OSI. (Wikipedia, 2020)

22
ISPC / Tecnicatura Superior en Desarrollo de Software​

Fuente: Oracle (10/3/2020) Parte II Administración de TCP/IP. Recuperado de:


https://docs.oracle.com/cd/E19957-01/820-2981/6nei0r0sr/index.html

Algo importante del diseño del protocolo IP es que se realizó suponiendo que la entrega de
los paquetes de datos sería no confiable por eso se tratara de realizar del mejor modo
posible mediante técnicas de enrutamiento sin garantías de alcanzar el destino final, pero
tratando de buscar la mejor ruta entre las conocidas por la máquina que está usando IP.

Para entender mejor esta distinción entre dos protocolos uno TCP y otro IP habría que
analizar el modelo de capas OSI que no vamos a ver. Lo que sí vamos a decir es que hay una
jerarquía entre capas y el protocolo IP pertenece a una capa denominada de red que está
por encima de una capa denominada de transporte en dónde se encuentra TCP.

Entonces, en conclusión, se utiliza la combinación de estos dos protocolos para la


comunicación en Internet, en dónde TCP aporta la fiabilidad entre la comunicación e IP la
comunicación entre distintas computadoras ya que las cabeceras de IP (cabecera por ser una
parte el protocolo, que aquí no tiene importancia) contienen las direcciones de las máquinas
de origen y destino, llamadas direcciones IP. Estas direcciones serán usadas por los routers
(routers) para decidir el tramo de red por el que se enviarán los paquetes.

Para entender mejor el funcionamiento de la Internet vamos a decir que dentro de la red de
redes que es Internet debe existir un mecanismo para conectar dos computadoras. Este
mecanismo lo provee el protocolo de Internet, el cual hace que un paquete de una
computadora, llegue a la otra de manera segura a través del protocolo TCP y que llegue a
destino a través de las direcciones IP.

Para terminar, una dirección IP es un número que identifica de manera lógica y jerárquica
una interfaz de un dispositivo dentro de una red que utiliza el protocolo de internet.

Todas las computadoras en internet tienen una dirección IP. A modo informativo vamos a
decir que existe otro sistema que se denomina sistema de nombres de dominio o DNS que
asocia nombres comunes a direcciones IP por ejemplo la dirección www.cba.gov.ar tiene
asociado un número de IP correspondiente, pero este mecanismo existe para que sea más
fácil llegar a esa página web sin tener que recordar el número de IP.

23
ISPC / Tecnicatura Superior en Desarrollo de Software​

Fuente: Oracle (10/3/2020) Parte II Administración de TCP/IP. Recuperado de:


https://docs.oracle.com/cd/E19957-01/820-2981/6nei0r0sr/index.html

Con esto concluimos una introducción de lo que es la comunicación entre computadoras en


internet. Si bien parece algo complejo es de mucha importancia conocer estos mecanismos
con los que trabajamos.

Por ejemplo, si queremos comunicarnos con una base de datos en Internet y nos pide un
número de IP ya sabemos de qué se trata. También sabemos que podemos comunicarnos a
cualquier computadora conectada en red a través de estos mecanismos y que nos
abstraemos de cómo se hace esto. Es decir, no nos tenemos que preocupar de manejar
errores o interferencias en la comunicación.

Ya vimos que la estructura de red se maneja en capas. También mencionamos que hay una
capa de red en dónde está el protocolo IP, una capa Superior de transporte en dónde está el
protocolo TCP y ahora vemos una nueva capa que es la de aplicación en dónde se usa el
protocolo HTTP.

Fuente: Oracle (10/3/2020) Parte II Administración de TCP/IP. Recuperado de:


https://docs.oracle.com/cd/E19957-01/820-2981/6nei0r0sr/index.html

Por otro lado, antes de continuar con el desarrollo web tradicional tenemos que aprender un
nuevo protocolo que es imprescindible para la comunicación en la web.

Hypertext Transfer Protocol (HTTP) (o Protocolo de Transferencia de Hipertexto en


español) es un protocolo de la capa de aplicación para la transmisión de documentos

24
ISPC / Tecnicatura Superior en Desarrollo de Software​


hipermedia, como HTML. Fue diseñado para la comunicación entre los navegadores y
servidores web, aunque puede ser utilizado para otros propósitos también.4

HTTP define un conjunto de métodos de petición para indicar la acción que se desea realizar
para un recurso determinado. Aunque estos también pueden ser sustantivos, estos métodos
de solicitud a veces son llamados HTTP verbs.5

Es muy importante saber qué HTTP es un protocolo sin estado, es decir, no guarda ninguna
información sobre conexiones anteriores. Luego veremos las implicancias de esto.

Una descripción importante del protocolo es que está orientado a transacciones y sigue el
esquema de petición/respuesta entre un cliente y un servidor. El cliente realiza una petición
enviando un mensaje con cierto formato al servidor. El servidor le envía un mensaje de
respuesta. Para hacerlo más concreto un cliente podría ser un navegador web y un servidor
podría ser una aplicación en un servidor web corriendo en Internet.

Para que entendamos la forma de cómo se programa una aplicación web necesitamos en
alguna medida entender los mensajes HTTP.

Los mensajes HTTP son en texto plano lo que los hace más legible y fácil de depurar. Estos
tienen la siguiente estructura:

Primero, hay una línea inicial en donde se diferencian dependiendo de si son peticiones y
respuestas. Para las peticiones la línea comienza con una acción requerida por el servidor, a
esto se le denomina método de petición (ya veremos cuáles son a continuación) seguido de
la url del recurso y la versión http que soporte al cliente. Lo importante, el método de
petición y la URL (Uniform Resource Locator o localizador de recursos uniforme).

Para las respuestas la línea comienza con la versión de HTTP seguido por un código de
respuesta y con una frase asociada a dicho retorno.

También los mensajes tienen una cabecera que son metadatos con información diversa y el
cuerpo de mensaje que es opcional. Típicamente este cuerpo tiene los datos que se
intercambian entre el cliente y el servidor.

Los métodos de petición (o también llamados verbos) son varios. Cada método indica la
acción que desea que se efectúe sobre el recurso identificado lo que este recurso representa
depende de la aplicación del servidor.

Los métodos que vamos usar son los de get y post. Cabe destacar que hay convenciones en
donde se utilizan otros métodos. En este punto entran en juego el estándar REST y las API’s.

4
HTTP, https://developer.mozilla.org/es/docs/Web/HTTP

5
Métodos HTTP, https://developer.mozilla.org/es/docs/Web/HTTP/Methods

25
ISPC / Tecnicatura Superior en Desarrollo de Software​


El método get solicita una representación del recurso especificado. Las solicitudes que usan
get sólo deben recuperar datos y no deben tener ningún otro efecto.

El método post envía los datos para que sean procesados por el recurso identificado. Los
datos enviados se incluirán en el cuerpo de la petición. Esto puede resultar en la creación de
un nuevo recurso o de las actualizaciones de los recursos existentes.

Para finalizar con la explicación de HTTP vamos a nombrar algunos códigos de respuesta, los
que empiezan con 2, por ejemplo, el 200 representa una respuesta correcta es decir que
indica que la petición ha sido procesada correctamente. Otro ejemplo es la respuesta 404
qué significa errores causados por el cliente por ejemplo que el recurso no se encuentre.
Finalmente, las respuestas que comienzan con 5 por ejemplo el 500 son errores causados
por el servidor. Esto indica que ha habido un error en el procesado de la petición a causa de
un fallo en el servidor.

Todo lo que hablamos de HTTP lo vamos a usar al momento de programar una aplicación
web. Vamos a ver que al presionar por ejemplo un link se hace una petición “get” al servidor
para buscar otra página lo que resultará en una respuesta 200 si se encuentra la página o en
un 404 si no se encuentra. También veremos que al llenar un formulario y enviarlo al
servidor lo haremos a través de una petición post.

Los otros protocolos de TCP/IP son necesarios para configuraciones de conexiones, pero a
nivel aplicación no los utilizaremos. Eso no significa que no haya que entenderlos pues nos
facilitarán la solución de problemas, por ejemplo, al conectarnos a una base de datos desde
la aplicación web del servidor.

26
ISPC / Tecnicatura Superior en Desarrollo de Software​

Referencias
1.​ Ferry Mestres, A. (s.f.). Recuperado de:
http://cv.uoc.edu/annotation/a9c35c372dcee6e6b92afad6993cd048/620334/PID_00
250214/PID_00250214.html
2.​ Medium. (2020, 10 de marzo). Red de computadoras. Recuperado de:
https://medium.com/@KVTacoa/red-de-computadoras-e3941854e4d3
3.​ Oracle. (2020, 10 de marzo). Parte II Administración de TCP/IP. Recuperado de:
https://docs.oracle.com/cd/E19957-01/820-2981/6nei0r0sr/index.html
4.​ Tanenbaum, A. S., & Tanenbaum, A. S. (2003). Computer networks, fourth edition:
Problem solutions. Prentice Hall PTR.
5.​ Tecnologías y protocolos de red. (2020, 10 de marzo). Recuperado de:
https://www.dsi.uclm.es/personal/miguelfgraciani/mikicurri/Docencia/LenguajesInte
rnet0910/web_LI/Teoria/Protocolos%20de%20bajo%20nivel/Protocolo%20TCP.htm
6.​ Wikipedia. (2020, 10 de marzo). Protocolo de internet. Recuperado de:
https://es.wikipedia.org/wiki/Protocolo_de_internet

27
ISPC / Tecnicatura Superior en Desarrollo de Software​

Glosario
Bases de datos: Una base de datos es una colección organizada de información
estructurada, o datos, típicamente almacenados electrónicamente en un sistema de
computadora (https://www.oracle.com/mx/database/what-is-database )

DOM: El DOM (Document Object Model en español Modelo de Objetos del Documento) es
una API definida para representar e interactuar con cualquier documento HTML o XML. El
DOM es un modelo de documento que se carga en el navegador web y que representa el
documento como un árbol de nodos, en donde cada nodo representa una parte del
documento (puede tratarse de un elemento, una cadena de texto o un comentario).
(https://developer.mozilla.org/es/docs/Glossary/DOM)

Frameworks: La traducción literal de framework es ‘marco de referencia’, y explica muy bien


lo que significa. Un framework es un patrón o esquema que ayuda a la programación a
estructurar el código y a ahorrar tiempo y esfuerzos a los programadores.
https://fp.uoc.fje.edu/blog/que-es-un-framework-en-programacion/

LAN:LAN (local Area Network) describe una red cuya área geográfica no se extiende más de
una milla (http://www.frlp.utn.edu.ar/materias/info2/Redes%20Lan.html )

Python: Python es un lenguaje de scripting independiente de plataforma y orientado a


objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a
servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no
se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la
rapidez de desarrollo e inconvenientes como una menor velocidad
(https://desarrolloweb.com/articulos/1325.php )

Rails: Ruby on Rails (o simplemente Rails) es una framework Open Source, multiplataforma y
basada en el lenguaje de scripting Ruby que facilita sobremanera el diseño y desarrollo de
aplicaciones web que acceden a bases de datos. Rails separa automáticamente en tres capas
todos los componentes de una aplicación web (Model, View y Controller: MVC), lo que hace
más sencillo y rápido el mantenimiento de aplicaciones que en otros entornos
(https://www.spri.eus/euskadinnova/es/enpresa-digitala/agenda/introduccion-ruby-rails-co
mpleto/709.aspx#:~:text=Ruby%20on%20Rails%20(o%20simplemente,acceden%20a%20bas
es%20de%20datos. )

Swift: Swift es un intuitivo lenguaje de programación de código abierto creado por Apple
que permite diseñar apps para iOS, Mac, el Apple TV y el Apple Watch.
(https://www.apple.com/es/swift/ ).

WAN: (Wide Area Network) describe una red cuya área geográfica excede a la de una
ciudad. A menudo, varias LAN o varias MAN son enlazadas para crear una WAN
(http://www.frlp.utn.edu.ar/materias/info2/Redes%20Lan.html )

28

También podría gustarte