Este documento trata sobre los fundamentos de los servicios informáticos. Explica que un servicio es una función o prestación ofrecida por una organización para satisfacer las necesidades de un cliente. Luego, detalla los pasos para crear un servicio informático y describir brevemente el modelo TCP/IP, la arquitectura cliente-servidor y los microservicios. Finalmente, aborda temas como la integración de servicios, el binding y el servidor DNS.
2. ¿Qué es un servicio?
Según la RAE:
Se puede parafrasear el concepto como:
Función o prestación desempeñada por una organización
para satisfacer las necesidades de un cliente o una
colectividad.
3. ¿Qué es un servicio?
Para que un servicio informático esté disponible al público
se debe:
1. Crear un FrontEnd, si se desea la interacción con seres
humanos.
2. Crear una base de datos que reciba la información
suministrada por los usuarios o que comparta, con los
usuarios, la información de su interés.
3. Crear una estructura de directorios y archivos a fin de
facilitar el acceso a información no estructurada.
4. Crear un socket, que permite el intercambio de
información en la red.
4. ¿Qué es la capa de aplicación?
Modelo TCP-IP
Las aplicaciones de red son la razón de ser de las redes de
computadores.
Para crear un servicio se requiere de un código que se ejecuta en el
computador servidor y otro código que se ejecuta en el
computador cliente o en múltiples clientes.
Los servicios no requieren de la elaboración de software para los
equipos intermedios de la red como los routers y los switches a fin
de que toda la funcionalidad de la capa de aplicación quede
totalmente confinada en los equipos terminales de la
infraestructura de red. Así se facilita las labores de desarrollo,
“deployment” y mantenimiento.
Tomado de: Kurose, J. y Ross, K. (2013) Application Layer.
Computer Networking: A Top-Down Approach (Capítulo 2)
6. Arquitectura cliente-servidor de tres niveles
Para reducir la carga de
procesamiento en el lado del cliente,
los procesos sobre la información se
hacen en un servidor de nivel
intermedio entre el cliente y el
servidor de datos.
Tomado de:
Stallings, w. (2012) Operating
Systems: Internals and Design
Principles, Seventh Edition. Capítulo
16.
7. Microservicios
El nuevo paradigma es
distribuir en la red los
servicios, a fin de:
1. Dos clientes que
requieren microservicios
diferentes puedan ser
atendidos al tiempo.
2. No sobrecargar los
sistemas de
procesamiento.
Problema:
¿Cómo voy a encontrar el
servidor que tiene el servicio
que mi aplicación necesita?
8. Arquitectura brokered
El servicio se hace
público en la
Internet.
Está identificado por
estándares.
Servicio para
encontrar el servicio
en la red.
Binding
Consumo del servicio
9. Integración
Mientras Enterprise Service Bus requiere de un conjunto de procesos dentro de su bus para
gestionar los servicios. Service Oriented Architecture divide la gestión de modo tal que se logra
una aproximación descentralizada (federal), que luego consolida las PPPP.
10. Binding
Proceso mediante el cual se le asigna un canal virtual a una comunicación
entre dos máquinas que corren procesos (identificables por el número de
puerto) sobre un protocolo de transferencia de información (HTTP, FTP,
SMTP, entre otros).
La conexión puede ser persistente si se mantiene la identificación hasta
finalizar la transacción o será no persistente, si para cada objeto
solicitado o para cada consulta se crea un nuevo socket.
El socket es un identificador que permitirá la identificación de los flujos
de información de un cliente/servidor en particular, así muchos flujos
usen el mismo canal físico para comunicarse.
Socket= IP_Address:Puerto
11. Application Integration Styles
Tomado de:
Pautasso, C. & Zimmermann, O. (2008) RESTful
Web Services vs. “Big” Web Services: Making
the Right Architectural Decision. IWC3C2.
12. El servidor DNS
Mientras las máquinas usan números para los
procesos de identificación, los humanos prefieren
los nombres.
DNS Domain Name System. El servicios DNS es un
buen ejemplo de una arquitectura SOA y es usado
por muchos servicios web (webservices), sobre
HTTP.
13. El servidor DNS
Tomado de: ¿De qué
manera un DNS dirige
tráfico hacia su aplicación
web?
Amazon. Recuperado en
septiembre de 2018.
Recuperado de:
https://aws.amazon.com/
es/route53/what-is-dns/
14. Reflexiones a cerca del DNS centralizado
• Costos de implementación
• Disponibilidad del servicio
• Tiempos de respuesta
• Cantidad de tráfico
• Mantenimiento
15. ¿Cómo funciona DNS cuando hay mirrors?
Mirroring: Una URL puede representar un
conjunto de servidores replicados.
Todas las IP asociadas a la URL van en la
respuesta, pero las recibe rotadas.
Como el cliente por lo general usa la primera,
se garantiza así, que se haga una distribución
del tráfico.
16. Jerarquía DNS
ROOT DNS
13 A NIVEL MUNDIAL
TLD DNS
TOP LEVEL DOMAIN
.COM .ORG .EDU .GOV .NET
AUTHORITATIVE DNS
MANTIENEN UNA BASE DE DATOS
CON LOS RECORDS DE LAS URL DE
LOS SITIOS WEB PÚBLICOS DE
VARIAS ORGANIZACIONES
REGISTRAR
LOCAL DNS
CADA ISP ADMNISTRA UN SERVICIO
DNS EN SU RED
17. ¿Cómo funcionan las DNS query?
Tomado de: Kurose, J. y Ross, K. (2013) Application Layer.
Computer Networking: A Top-Down Approach (Capítulo 2)
19. Vulnerabilidades del DNS
Aunque DNS ha demostrado ser muy
robusto, hay que considerar que los
servicios web y mail no funcionarían sin
DNS.
¿Qué puede pasarle al servicio si sufre
ataques DDoS y man in the middle?
20. Habilitando .htaccess
La creación de éste archivo tiene como finalidad re direccionar la página de inicio del
servidor. Ahora, el servicio carga una página de inicio diferente a la página de la instalación
original del servidor HTTP.
El archivo .httaccess modifica la ruta de acceso de los archivos sin alterar la estructura y
contenidos de los archivos de configuración, de la distribución original del servidor, lo cual
permite conservar la integridad de la instalación inicial.
Permitir que el servidor apache use .htaccess.
Poner AllowOverride All
21. Escribir el archivo .htaccess
Este archivo se debe crear en la ruta: /var/www/html
En el archivo se ejecutan reglas que permiten realizar las siguientes tareas:
• Redireccionar el sitio a una ubicación diferente dentro o fuera del servidor.
• Control de acceso, se pueden bloquear rangos de direcciones IP específicas para
evitar que accedan a los recursos en el servidor.
• Evitar el hotlinking, con lo cual los usuarios no podrán navegar por el árbol de
directorios del servidor.
24. Creando VirtualHosts en Apache: paso 2
Una vez creado el archivo de configuración, se debe generar una copia en la
carpeta sites-enabled que habilita el VirtualHost creado en el paso anterior
25. Creando VirtualHosts en Apache: paso 3
Vincular a la IP de la máquina el nombre de un dominio, que solo podrá usarse
dentro del equipo y que no puede ser utilizado por otros equipos para acceder al
servicio web.
Barnett, J. (2015) How To Set Up Apache Virtual Hosts on CentOS 7
Recuperado de: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-centos-7