Está en la página 1de 19

Documento.

Realizar un informe de las tecnologías y


arquitectura seleccionada de acuerdo al software a
construir. GA6-220501123-AA1-EV01.

FERNANDO RAVELO LIZARAZO

Servicio Nacional de Aprendizaje-SENA

Programación de Aplicaciones y Servicios para la Nube

28 de agosto 2022
Introduccion

Desde la comercialización de Internet a principios de los años 90, el


desarrollo web ha estado en constante evolución. Mientras que antes las
páginas web eran un compendio de campos de texto sobrios, hoy en día la
costosa presentación de contenidos multimedia ocupa un lugar privilegiado.
La que fue en su momento una plataforma informativa se ha convertido en
un medio de entretenimiento. En ella, los usuarios prefieren páginas web
interactivas que convenzan a través de un diseño atractivo y que se puedan
manejar de manera intuitiva. Los desarrolladores web cuentan, para este fin,
con distintas herramientas que faciliten integrar contenidos dinámicos y
crear las páginas web a medida de los usuarios. En este sentido el requisito
es, sin embargo, un alojamiento web dinámico que sea capaz de ofrecer los
recursos necesarios y de favorecer los estándares actuales.
Hay numerosas tecnologías para desarrollo web y, a veces, es complicado
para las empresas del sector elegir la mejor opción para sus objetivos. Esto se
debe a que el desarrollo web tiene diferentes formas, desde páginas web
convencionales hasta CRM, paneles de administración y softwares más
complejos.
Conceptos básicos

¿Qué es el desarrollo web?

El desarrollo web es el proceso de creación y mantenimiento de sitios web.


Los especialistas en desarrollo web son aquellos que se encargan de que los
websites y las apps funcionen correctamente, sean eficientes, tengan dinamismo
y buena organización.

Se trata de un trabajo que implica colaborar con otros actores en la creación de


sitios web y herramientas digitales, incluyendo a diseñadores gráficos,
responsables del contenido y expertos en posicionamiento en buscadores, entre
otros.

Al saber qué es el desarrollo web, puedes brindar una serie de acciones:

 Ofrecer información relevante y contenido de calidad.


 Permitir que los usuarios se inscriban a un newsletter para obtener
información.
 Ofrecer descuentos.
 Brindarles a las personas la posibilidad de realizar compras de los bienes
o servicios que comercialices.
 Incrustar un enlace directo para que puedan descargar tu aplicación web
a un celular.

Pero para ofrecer algunas de estas acciones, es necesario que sepas qué es el
desarrollo web y que te conviertas en un profesional del desarrollo web. O
también, que incluyas dentro de tu equipo de trabajo, a un desarrollador
web, a quien puedas transmitirle los valores de tu empresa para que pueda
plasmarlos a través del sitio web.

Continuando con este análisis sobre qué es el desarrollo web, ahora que ya
sabes las funciones de un desarrollador web, veamos cómo estas funciones
se dividen en tres áreas de aplicación distintas: desarrollo front-end,
desarrollo back-end y desarrollo full-stack.
¿Cuál es la diferencia entre desarrollo web y diseño web?

El desarrollo web y el diseño web tienen muchos puntos en común. Pero no


son lo mismo.

El diseño web se aboca principalmente a la estética y a ciertos aspectos de la


usabilidad. Los profesionales en diseño trabajan con softwares como
Photoshop, Ilustrator, InDesing y Sketch.

En desarrollo web el desafío es convertir los diseños en plataformas


funcionales. Para esto se emplean herramientas y lenguajes de programación.

Fundamentos técnicos de una página web


Uno de los requisitos principales para crear una página web, es tener
capacidad de almacenamiento en un servidor, servicio que ofrecen los
proveedores de Internet especializados, es decir, los proveedores de
alojamiento web. Por lo general, la oferta comprende packs completos que
además del espacio en disco necesario también incluyen prestaciones como
la memoria RAM, un dominio propio, bases de datos y las herramientas
pertinentes para el desarrollo web. Por lo general, el conocimiento de los
dispositivos físicos que se ocupan de alojar los recursos es un aspecto que
permanece oculto para los usuarios de los packs de alojamiento web. En el
caso de los modelos de alojamiento alternativos como los servidores web
dedicados ocurre lo contrario, ya que estos se alquilan en un centro de datos
como componentes de hardware independientes.

Dominio

Cualquier proyecto de Internet se muestra con un nombre único e


inequívoco. El llamado dominio es uno de los componentes básicos de los
packs de alojamiento web. Los dominios siguen estrictamente la estructura
jerárquica del sistema de nombres de dominio y constan de dominios de
nivel superior (p. ej., es), de dominios libres (dominios de segundo nivel) y
de subdominios facultativos. El registro de dominios se realiza a través de un
proveedor de Internet que remite la solicitud a la autoridad competente.
Para la elección del dominio están disponibles, desde formulaciones breves y
concisas, hasta dominios de nivel superior comunes y corrientes.

Espacio web

Cada página web contiene datos que el servidor web pone a disposición de
los usuarios. Por ello, los packs de alojamiento web siempre cuentan con un
determinado contingente de almacenamiento para documentos HTML,
hojas de estilo, imágenes, vídeos o bases de datos. La transferencia de datos
se ejecuta generalmente a través del protocolo File Transfer Procotol (FTP) y
de un programa cliente como Filezilla o la aplicación WinSCP. Para la elección
de un pack de alojamiento web debe tenerse en cuenta que el espacio web
pueda ampliarse si es necesario.

Base de datos

Si las páginas web no se ponen a disposición de manera estática en el


servidor, sino que estas se generan en función de las necesidades que surgen
con cada visita, los desarrolladores web recurren en la mayoría de los casos
a bases de datos relacionales. Con esta modalidad de gestión de datos, estos
se estructurarán por medio de tablas y se establecerá una relación con otros
datos a través de identificadores. La transmisión y la gestión de estructuras
de datos se realiza, en general, a través del lenguaje para bases de datos
SQL (Structured Query Language). Por otro lado, MySQL, software de código
abierto, es una de las bases de datos relacionales para páginas web
dinámicas a nivel mundial.
Servidor web

Los packs de alojamiento web para principiantes se llevan a cabo a través del
llamado alojamiento compartido. Con este tipo de alojamiento, son varias
las cuentas de hosting las que pueden compartir los recursos de un mismo
servidor. Para los proyectos profesionales de gran envergadura, los
proveedores de alojamiento web ofrecen diferentes posibilidades de
servidores web que brindan a los clientes componentes de hardware de
manera exclusiva. A las empresas grandes se les recomienda, además del
alquiler, la adquisición de equipamiento propio.

Herramientas básicas para la programación web


Si un pack de alojamiento web o un servidor son la base de un proyecto web,
a este respecto los usuarios cuentan con diversas posibilidades para crear su
propia página web. El abanico de opciones comprende desde el software
intuitivo para páginas web con opciones limitadas de diseño a través de
flexibles sistemas de gestión de contenidos (CMS) hasta el código fuente
elaborado por uno mismo. Mientras que los sistemas modulares para las
páginas principales que se guían por el principio WYSIWYG (“What You See is
What You Get”) van orientadas, en principio, a los principiantes que carecen
de conocimientos informáticos, el funcionamiento de los sistemas de gestión
de contenidos requiere ciertos conocimientos previos. Sin embargo, los
desarrolladores web pueden disfrutar de un alto grado de flexibilidad si son
ellos mismos los que programan su proyecto en un editor, lo que requiere
tener conocimientos básicos sobre lenguajes de programación como HTML,
CSS, JavaScript y PHP.

HTML

En el ámbito del desarrollo web, el lenguaje de marcas de hipertexto HTML


(Hypertext Markup Language) se utiliza para la estructuración semántica de
los contenidos digitales a través de las llamadas etiquetas. De esta manera,
se pueden definir elementos como fragmentos de texto, encabezados,
gráficos o hiperenlaces. Un código fuente de tales características supone el
fundamento de toda página web. Por su parte, una página web estática y
sencilla no es más que una selección de documentos HTML interconectados.
La versión actual del lenguaje, es decir, HTML5 amplía las opciones para los
elementos de audio y vídeo. En cambio, la representación visual de los
contenidos se definirá con el lenguaje de hojas de estilo en cascada o CSS.

CSS

Las hojas de estilo en cascada o CSS son entendidas como un lenguaje para
formatear documentos HTML de manera estándar. Los desarrolladores web
utilizan CSS para asignar reglas a los elementos definidos en código HTML
para su representación en el servidor. La actual especificación CSS3
comprende instrucciones sobre diseño, colores y tipografía, así como
animaciones, transiciones de color y sombras.

JavaScript

Las páginas web modernas interactúan con sus usuarios a través de la


integración de casillas interactivas, menús desplegables o diapositivas.
JavaScript entra en acción en caso de que los contenidos dinámicos de esta
índole se integren en páginas HTML y ello supone dar un paso más allá de
HTML y CSS, puesto que permite que se evalúen las interacciones de los
usuarios y que los contenidos de las páginas web se recarguen, se actualicen
o se modifiquen.
PHP

Mientras que las páginas web estáticas están disponibles en el servidor web,
las dinámicas se generan, tras su solicitud, a través de dicho servidor, lo que
es posible gracias a lenguajes de programación como PHP. La programación
con PHP es interpretada por el servidor y, en lugar de que el código fuente
de las páginas web dinámicas se le entregue directamente a dicho servidor,
este transmite los datos a un intérprete de PHP. Dicho intérprete genera la
página web solicitada, a menudo tomando como base los datos depositados
en las bases de datos, y los devuelve al servidor web, desde donde se enviará
la edición del intérprete al servidor. Perl o Python son otros lenguajes de
programación utilizados para el desarrollo de páginas web dinámicas.

Desarrollo front-end
Frontend es la parte de un sitio web que interactúa con los usuarios, por eso
decimos que está del lado del cliente. Backend es la parte que se conecta con
la base de datos y el servidor que utiliza dicho sitio web, por eso decimos que
el backend corre del lado del servidor. Estos dos conceptos explican a
grandes rasgos cómo funciona un sitio o aplicación web y son fundamentales
para cualquier persona que trabaje en el mundo digital.

¿Qué es Front-end?

Frontend es la parte de un programa o dispositivo a la que un usuario puede


acceder directamente. Son todas las tecnologías de diseño y desarrollo web
que corren en el navegador y que se encargan de la interactividad con los
usuarios.

Los desarrolladores frontend son aquellos que crean los componentes


visuales de un sitio web. Dan formato a las imágenes, la animación y la
interactividad de un sitio web.
¿Cuáles son los recursos que utiliza un desarrollador web
front-end?

Un desarrollador frontend tiene la capacidad de utilizar herramientas como


HTML, CSS o lenguajes de programación como JavaScript; o también,
suelen trabajar con frameworks.
Veamos en detalle, algunas de ellas:

HTML

El HTML es un lenguaje de marcado y etiquetado, que sirve para realizar la


estructura básica de una web y el contenido en relación con los textos, las
imágenes y videos.
Conocer qué es el desarrollo web implica saber qué son las etiquetas HTML.
De hecho, una etiqueta en HTML está conformada por fragmentos de textos,
rodeados por el signo menor que (<) y mayor que (>). Dentro de estos
signos, se introduce una palabra (generalmente en inglés), que le da
significado a la etiqueta. Todas tienen funciones y usos específicos.
En HTML, hay dos tipos de etiqueta:
 Apertura. <etiqueta>
 Cierre </etiqueta>
Cuando nos referimos a la estructura de una página web, hacemos
referencia al contenido. Por ejemplo, en los textos, definen el orden
jerárquico, como los h1, h2, h3 y h4 que se utilizan para identificar los
encabezados.
También, aquí entran en juego los atributos, que definirán
el comportamiento de la etiqueta. Con ellos, se puede indicar, desde el
idioma con el que aparecerá el texto, hasta la acción a realizar.
CSS

Avanzando con nuestro análisis sobre qué es el desarrollo web, debemos


destacar el papel que cumple CSS. Si el HTML se encarga de marcar y
etiquetar. El CSS, también conocido como “hojas de estilo en cascada”, se
encarga de darle el estilo al sitio web.

Las Cascading Style Sheets o CSS es el lenguaje de diseño gráfico encargado


de definir la apariencia visual de las interfaces escritas en HTML. Si el
anterior lenguaje se encargaba del contenido en sí, CSS es la parte del
desarrollo front-end que se centra en la forma propiamente dicha: los
colores, las fuentes, los fondos, etc.

JavaScript

JavaScript es el tercer imprescindible en lo relativo al diseño de páginas web.


Se trata de un lenguaje de programación interpretado que, en este
contexto, ejecuta sus tareas implementado en el navegador. Algunas de sus
funciones en desarrollo front-end son la mejora de la animación e
interactividad del contenido, la actualización automática sin tener que cargar
de nuevo la página o el almacenamiento de datos sobre el comportamiento
del usuario (como el tiempo de lectura).
JS permite implementar funciones complejas en una página web, de ahí que
algunos lo consideren como una herramientas más difícil de manejar
que HTML y CSS.

Desarrollo Back-End
¿Qué es backend?

Backend es un término desarrollo web que hace referencia a un tipo de


programación particular, en el que se configuran todos los aspectos lógicos
de una página web o aplicación. Para algunos, el backend es la programación
de todo lo que el usuario final no ve, es decir, el acceso a las bases de datos,
el procesamiento de los datos ingresados por los usuarios, y la ejecución de
un script, por ejemplo.
En los sitios web modernos se ejecutan una infinidad de scripts que
funcionan gracias al desarrollo backend. El trabajo de la persona que se
especializa como desarrollador backend es asegurarse de que la relación
entre los servidores y las páginas web funcione a la perfección.

Herramientas Back End

Las herramientas que utiliza un desarrollador front end son relativamente


sencillas. Este no es el caso con las herramientas de un desarrollador back
end.

Lenguajes de programación del servidor

La elección de diferentes lenguajes de programación se trata de preferencia


personal, las necesidades del proyecto y tu conocimiento. Existe una amplia
variedad de lenguajes de programación para servidores como PHP, JavaScript
utilizado en el entorno Node.js con la estructura Express, Python, Ruby, C#,
Java y otros.
Las tecnologías utilizadas por un desarrollador back end, también pueden
determinar el lenguaje de programación que utilizan. Por ejemplo, si tu sitio
web ha sido creado bajo Symfony o Laravel, estarás más que forzado a
utilizar código PHP. Para la estructura Django, Python tendría mucho más
sentido, mientras que hacer uso de la estructura Express te forzará a utilizar
Node.js.

Bases de datos

Existen dos tipos de bases de datos, relacional y no-relacional. La elección de


la base de datos determinará qué sistema de base de datos utilizará tu
proyecto e incluso el lenguaje de programación en el que será programado.

Existe una amplia variedad de sistemas de base de datos como MongoDB,


MySQL, Oracle, Redis y otros.

¿Para qué sirve el backend?

Muchos se preguntan para qué sirve el backend si los usuarios no lo ven, así
que es oportuno explicarles cuán importante es este tipo de desarrollo web.
Sin backend no habría frontend, por lo tanto, los usuarios no podrían ver
absolutamente nada de tu página web.

El backend sirve para que tu página web funcione a la perfección a través


de elementos que van desde la generación de contenidos hasta el tiempo
de carga. Esto último, dicho sea de paso, es un factor muy importante para
posicionar tu sitio en los motores de búsqueda, ya que, a mayor tiempo de
carga, más usuarios abandonarán tu página web.
Todas las acciones ejecutadas por el backend están relacionadas a la
experiencia del usuario, optimizando los procesos para que la navegación en
tu sitio sea lo suficientemente óptima como para captar cada vez a más
visitantes.

Sería algo más o menos así: tu sitio web necesita de diseñadores que
aseguren una gran interfaz (frontend), pero también requiere de personas
que desarrollen la parte lógica (backend).
Arquitectura orientada a servicios
La arquitectura orientada a servicios (SOA) es un estándar del sector de
definición abierta que presenta todos los procesos de negocio de un modo
orientado a servicios. Las dependencias entre servicios, tales como servicios
web, activos de servicio EIS (Enterprise Information System), flujos de trabajo
y bases de datos se minimizan y se oculta la implementación de cualquier
servicio.

El objetivo de la arquitectura orientada a servicios es separar la lógica de


integración de negocio de la implementación, para que el desarrollador de
integración pueda centrarse en ensamblar una aplicación integrada en lugar
de hacerlo en los detalles de la implementación. Para lograrlo, se crean
componentes de servicio que contienen la implementación de servicios
individuales necesarios para los procesos de negocio. El resultado es una
arquitectura de tres capas: lógica de integración de negocio, componentes de
servicio e implementación, como se muestra en el diagrama siguiente:

Dado que los componentes de servicio contienen la implementación, el


desarrollador de integración puede ensamblarlos gráficamente sin necesidad
de conocer los detalles de la implementación. Los componentes de servicio
también ofrecen la opción de dejar que el desarrollador de integración o
alguien que trabaje con él añada la implementación más tarde. Los
componentes se ensamblan entre sí de forma visual. Es decir, el código de los
componentes no se expone al usuario. En el nivel de lógica de negocio que se
muestra en el diagrama siguiente, los componentes se ensamblan
independientemente de su implementación. A continuación, la arquitectura
orientada a servicios permite centrarse en resolver los problemas de negocio
mediante la utilización y reutilización de componentes, en lugar de distraer la
atención hacia la tecnología que implementa los servicios que se están
utilizando.

Ventajas clave de la arquitectura orientada a servicios


Teniendo en cuenta el ritmo creciente de las empresas actuales, una
arquitectura orientada a servicios permite reaccionar con agilidad ante los
cambios de las condiciones de las empresas y beneficiarse de los mismos.
También ofrece la posibilidad de que el software sea sostenible en el
tiempo. Estos objetivos se alcanzan por los siguientes medios:

 Consolidación de la lógica y los datos de negocio. Los componentes


utilizados por diversos grupos de una empresa o incluso compartidos
entre un conjunto de ellas pueden ser utilizados por cualquiera, ya
que los componentes se ajustan a estándares industriales como WSDL
(Web Services Descriptive Language) y BPEL (Business Process
Execution Language), que son independientes de plataforma y
proveedor. Los datos se representan de forma coherente del mismo
modo, lo que permite que los compartan los componentes de una
aplicación de arquitectura orientada a servicios.
 Mejora de aplicaciones y sistemas ya existentes. Cuando las
aplicaciones y sistemas se incluyen en el código WSDL, están
disponibles de forma universal para cualquier desarrollador de
aplicaciones de la empresa que desarrolle una aplicación actual.

¿Cuáles son los principios fundamentales de diseño de una arquitectura


orientada a servicios?

 Los componentes se acoplan de forma abierta. Un componente que


accede a otro no necesita conocer las estructuras de datos, las
llamadas a otros componentes, la gestión de transacciones, etc. del
ese otro componente.
 Los componentes son configurables. Observar una aplicación de
arquitectura orientada a servicios como la del diagrama anterior es
parecido a observar un diagrama de configuración. Los componentes
pueden añadirse, suprimirse y configurarse con diferentes
procedimientos para crear aplicaciones nuevas.
 Los componentes pueden trabajar conjuntamente. Cualquier
componente puede trabajar con otro, incluidos los componentes
creados por entornos de desarrollo de proveedores diferentes.
 Los componentes son independientes de la ubicación.

Beneficios de la arquitectura orientada a servicios

La principal ventaja de la arquitectura orientada a servicios la brinda su


capacidad de reutilizar los activos, lo cual permite a las empresas optimizar la
inversión y lograr una interoperabilidad entre las aplicaciones y tecnologías
heterogéneas.

Esta característica de la arquitectura orientada a servicios agiliza y


simplifica el proceso de ensamblaje de las aplicaciones, dado que los
desarrolladores no tienen que empezar siempre desde cero.
Otros beneficios de la arquitectura orientada a servicios son:

 Uso de la infraestructura heredada en los mercados nuevos: la


arquitectura orientada a servicios permite que los desarrolladores tomen
funciones ya creadas y las ajusten e implementen en nuevos proyectos, lo
que crea soluciones en menor tiempo y con menos costos.
 Incrementa la agilidad organizacional: la cooperación entre los equipos de
TI y de negocio, existente en la arquitectura orientada a servicios, permite
que se aprovechen y creen oportunidades de mercado de una forma más
ágil.
 Mantenimiento sencillo: dado que todos los servicios son autónomos e
independientes, se puede modificar y actualizar cada uno cuando sea
necesario, sin afectar al resto. Esto disminuye el coste de mantenimiento,
la administración y el esfuerzo de desarrollo con la estandarización y
normalización de los servicios.
 Escalabilidad: la arquitectura de software SOA posibilita la ejecución de los
servicios en varios lenguajes de programación, servicios y plataformas, lo
que aumenta la escalabilidad. Además, utiliza un protocolo de
comunicación estandarizado, que disminuye la interacción entre los
clientes y los servicios, lo cual permite ajustar las aplicaciones con menos
presiones e inconvenientes.
 Mayor confiabilidad: la arquitectura orientada a servicios genera
aplicaciones más confiables, ya que es más fácil depurar servicios
pequeños que un código de gran volumen.
 Gran disponibilidad: las instalaciones de la arquitectura de software SOA
están disponibles para todos.

SOAP
Por sus siglas, protocolo simple de acceso a objetos. Se define como un
protocolo o reglas estándar que se creó principalmente para permitir la
comunicación entre las aplicaciones que estaban desarrolladas con
diferentes lenguajes y además que reposaban en distintas plataformas
tecnológicas. Por tener la naturaleza de un protocolo, existen reglas
integradas que aumentan la complejidad y la sobrecarga en los servidores, lo
cual causa que pueda haber retrasos en el tiempo que tardan las páginas en
cargarse o dar alguna respuesta. No obstante, estos estándares por su
estructura y seguridad son más demandados en el sector empresarial.

Adicionalmente, el envío de una solicitud de datos a una API de SOAP se


puede administrar a través de cualquiera de los protocolos de la capa de la
aplicación, por ejemplo, HTTP que es usado por los exploradores web, SMTP
que es protocolo usado por los correos electrónicos, TCP, entre otros. No
obstante, una vez que se recibe una solicitud, los mensajes SOAP de retorno
devuelve por defecto documentos XML, que es un lenguaje de etiquetas que
es comprensible tanto para las máquinas como para las personas.
REST
Por sus siglas en inglés, Representational State Transfer, traduce
transferencia de estado representacional. Se define como un compendio de
lineamientos que se ajustan a las necesidades de los servicios web y
especialmente a las aplicaciones móviles por la velocidad de transmisión y
por lo ligero de la información. Cuando se envía una solicitud de datos a una
API de REST, se hace a través de un protocolo de transferencia de hipertexto,
comúnmente denominado HTTP. Una vez que reciben la solicitud, las API
diseñadas para REST (conocidas como API o servicios web de RESTful) dan
como respuesta mensajes en diversos formatos como pueden ser HTML,
XML, JSON, entre otros. El formato más usado para los mensajes es la
notación de objetos JavaScript (JSON). Este formato puede leerlo cualquier
lenguaje de programación, es liviano y es comprensible para las máquinas
como para las personas. De esta forma, las API de RESTful son más flexibles y
se pueden configurar con mayor facilidad.

Conclusión
el diseño web es un elemento imprescindible en cualquier negocio, ya que
es el que se encarga de crear la cara pública online de una marca. Es algo en
lo que hay que dedicar cuidado para conseguir los mejores resultados y para
que puedas disfrutar de todos los beneficios que te ofrece una web cuidada.

También podría gustarte