Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Parcial II Metodologias

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 53

ARQUITECTURAS

SOA (Service-Oriented Architecture/Arquitectura


Orientada a Servicios)

✓Define una manera de hacer que los componentes de software sean reutilizables a través
de interfaces de servicio. Estas interfaces utilizan estándares de comunicación comunes
entre sí, de tal manera que pueden incorporarse rápidamente a nuevas aplicaciones sin
tener que realizar una integración profunda cada vez.

✓Cada servicio de una SOA incorpora el código y las integraciones de datos necesarias para
ejecutar una función de negocios completa y discreta (por ejemplo, comprobar el crédito de
un cliente, calcular un pago de préstamo mensual o procesar una solicitud de hipoteca).
✓ Los servicios se exponen utilizando protocolos de red estándar, como SOAP (Simple Object Access
Protocol / Protocolo Simple de Acceso a Objetos) /HTTP o JSON/HTTP, para enviar solicitudes para leer
o cambiar datos. Los servicios se publican de tal forma que permite a los desarrolladores encontrarlos
rápidamente y reutilizarlos para ensamblar nuevas aplicaciones.

✓ Para que un servicio sea considerado un Web Service, debe de publicar un WSDL (Web Services
Description Language), el cual es un contrato que describe las operaciones que expone el servicio, los
tipos de datos esperados en formato XSD (XML Schema).

✓ Este contrato (WSDL) será utilizado por el consumidor para crear mensajes en formato XML para
enviar la información, los cuales deberán de cumplir al pie de la letra la estructura definida en el
contrato.
✓Si bien el protocolo HTTP es el más utilizado para la transmisión de los datos, no es la única
forma, en realidad SOA no define los protocolos a utilizar, es por ello que es posible
transmitir los mensajes por protocolos como FTP o SMTP, lo importante es que el mensaje
(XML) cumpla con el contrato (WSDL).
✓Finalmente, el mensaje es envuelto en el protocolo SOAP (Simple Object Access
Protocol), el cual es otro protocolo estándar que divide el mensaje en dos secciones, el
header y el payload, el primero son una serie de parámetros de cabecera de control, que
ayudan a los sistemas a entender el payload, por otra parte, el payload es el mensaje
transmitido como tal (XML).
ACTIVIDAD

• Buscar un ejemplo(proyecto) para establecer el protocolo SOAP, código.


• El código se sube al schoology en un block de notas (.txt)
¿ QUÉ ES UN MICRO SERVICIO?

Una técnica de desarrollo de software: una variante del


estilo arquitectónico de arquitectura orientada a servicios
(SOA) que estructura una aplicación como una colección de
servicios acoplados libremente. En una arquitectura de
microservicios, los servicios son específicos y los protocolos
son livianos.
ESTRUCTURA MONOLÍTICA
"Application Programming Interface / API".
Es un conjunto de comandos, funciones y
protocolos para facilitar la programación de
software.

Estas funciones predefinidas simplifican la


interacción del programador con el sistema
operativo, ya que el hardware (monitor,
datos en el disco duro, etc.) no tiene que ser
direccionado directamente.

MICROSERVICIO

Diferencias entre APIs y Microservicios:

✓ Un API es un contrato que proporciona orientación para que un consumidor use un determinado
servicio.
✓ Un microservicio es un diseño arquitectónico que separa partes de una aplicación
(generalmente monolítica) en pequeños servicios independientes.
✓ Los microservicios también se conocen como la arquitectura de
microservicios. Es un estilo arquitectónico, un enfoque para
el desarrollo de software en el que una gran aplicación se construye
como un conjunto de servicios modulares; servicios centrados en el
cliente, pequeños, con versiones independientes y escalables, con
objetivos comerciales específicos, que se comunican entre sí a través
de protocolos estándar con interfaces bien definidas.

✓ Como son de implementación independiente y escalables, cada


servicio también proporciona un límite de módulo firme, incluso
permitiendo que diferentes servicios se escriban en diferentes
lenguajes de programación y también pueden ser administrados por
diferentes equipos.
✓ Los microservicios es una forma de dividir grandes

proyectos de software en módulos más pequeños,

independientes y poco compactos. Los módulos

individuales son responsables de tareas discretas y

altamente definidas y se comunican con otros

módulos a través de API simples y universalmente

accesibles.

✓ Este método arquitectónico se considera

particularmente ideal cuando tiene que habilitar el

soporte para una gama de plataformas y dispositivos,

por ejemplo, web, móvil, Internet of Things,

wearables, etc.
✓ La filosofía de los microservicios: «Haz una cosa y hazla bien».
✓ Los servicios pueden ejecutarse dentro del mismo proceso, pero deben ser implementables de forma
independiente y fáciles de reemplazar.

✓ Se pueden implementar utilizando diferentes lenguajes de programación, bases de datos y entorno de software.

✓ Los servicios son pequeños, de grano fino para realizar una sola función.
✓ Adoptan la automatización de las pruebas y la implementación, el proceso de desarrollo de software de entrega
continua y fallos, similar a los sistemas anti frágiles.

✓ Cada servicio es elástico, flexible, composable, mínimo y completo


• Netflix, eBay, Amazon, el Servicio Digital del Gobierno del Reino Unido,
Twitter, PayPal, The Guardian y muchos otros sitios web y aplicaciones a
gran escala han evolucionado desde la arquitectura monolítica a la de
microservicios.
ACTIVIDAD

Hosting (hola mundo html)


MODELO CLIENTE - SERVIDOR

✓ Este modelo permite conectar a varios clientes a los servicios que provee un servidor , en la
actualidad la mayoría de las aplicaciones y servicios, tienen como gran necesidad, el poder
ser consumidos por varios usuarios de forma simultanea.

✓ 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.
✓ Red: Una red es un conjunto de clientes, servidores y base de datos unidos de una manera
física o no física en el que existen protocolos de transmisión de información establecidos.

✓ Cliente: El concepto de cliente hace referencia a un demandante de servicios, este cliente


puede ser un ordenador como también una aplicación de informática, la cual requiere
información proveniente de la red para funcionar.

✓ Servidor: Un servidor hace referencia a un proveedor de servicios, este servidor a su vez


puede ser un ordenador o una aplicación informática la cual envía información a los demás
agentes de la red.
Protocolo: Un protocolo es un conjunto de normas o reglas y pasos establecidos de manera clara

y concreta sobre el flujo de información en una red estructurada.

Servicios: Un servicio es un conjunto de información que busca responder las necesidades de un

cliente, donde esta información pueden ser mail, música, mensajes simples entre software,

videos, etc.

Base de datos: Son bancos de información ordenada, categorizada y clasificada que forman

parte de la red, que son sitios de almacenaje para la utilización de los servidores y también

directamente de los clientes.


En resumen:

✓ C/S es una relación entre procesos corriendo en máquinas separadas


✓ El servidor (S) es un proveedor de servicios.
✓ El cliente (C) es un consumidor de servicios.
✓ C y S Interactúan por un mecanismo de pasaje de mensajes: pedido de
servicio – respuesta.
ACTIVIDAD

• Tabla comparativa
• Servidores
• Precio, origen ,principales características.
ARQUITECTURA MONOLÍTICA

✓ Las aplicaciones monolíticas o sistemas


monolíticos, tienen como característica el
uso de una base de código única para sus
servicios o funcionalidades.

✓ Una dificultad que plantean los sistemas


monolíticos frente a los microservicios, son
la imposibilidad de trabajar en varios
ambientes al mismo tiempo (por tiempos
de carga), lo que dificulta enormemente el
trabajo de los arquitectos o
desarrolladores de software.
ARQUITECTURA DISTRIBUIDA

✓ En la arquitectura distribuida, los componentes se


presentan en diferentes plataformas y varios componentes
pueden cooperar entre sí a través de una red de
comunicación para lograr un objetivo u objetivo específico.

✓ En esta arquitectura, el procesamiento de la información no


se limita a una sola máquina, sino que se distribuye en varias
computadoras independientes.
✓ Hay varios marcos de tecnología para admitir arquitecturas distribuidas, incluidos los servicios web .NET,
J2EE, CORBA, .NET, los servicios web AXIS Java y los servicios Globus Grid.

✓ Middleware es una infraestructura que soporta adecuadamente el desarrollo y ejecución de aplicaciones


distribuidas. Proporciona un búfer entre las aplicaciones y la red.

✓ La base de una arquitectura distribuida es su transparencia, confiabilidad y disponibilidad.


ARQUITECTURA EN CAPAS

✓ Las capas dentro de una arquitectura son un conjunto


de servicios especializados que pueden ser accesibles
por múltiples clientes y que deben ser fácilmente
reutilizables.

✓ Lo que se conoce como arquitectura en capas es en


realidad un estilo de programación donde el objetivo
principal es separar los diferentes aspectos del
desarrollo, tales como las cuestiones de presentación,
lógica de negocio, mecanismos de almacenamiento,
etc.
Ventajas

✓ Desarrollos paralelos (en cada capa).


✓ Aplicaciones más robustas debido al encapsulamiento.
✓ Mantenimiento y soporte más sencillo (es más sencillo cambiar un componente que modificar una
aplicación monolítica)
✓ Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al sistema de nueva funcionalidad)
✓ Alta escalabilidad. La principal ventaja de una aplicación distribuida bien diseñada es su buen escalado, es
decir, que puede manejar muchas peticiones con el mismo rendimiento simplemente añadiendo más
hardware. El crecimiento es casi lineal y no es necesario añadir más código para conseguir esta
escalabilidad.

Desventajas

✓ Pone más carga en la red, debido a una mayor cantidad de tráfico de la red.
✓ Es mucho más difícil programar y probar el software que en arquitectura de dos niveles porque tienen que
comunicarse más dispositivos para terminar la transacción de un usuario.
ACTIVIDAD
MODELADO UML
✓Representan su nombre en inglés por «Unified Modelling Language», o lenguaje de

modelado unificado, un lenguaje estandarizado para crear estructuras visuales de software.

✓UML se utiliza para especificar, visualizar, construir y hasta documentar los principales
elementos del software, ayudando a diseñar y categorizar sistemas completos.

✓UML , al ser pensado como un lenguaje de uso general, es flexible y se puede utilizar para
diseñar software tanto desde un alto nivel enfocado a elementos generales como a un nivel

granular, creando incluso métodos específicos en un módulo.


DIAGRAMA CASOS DE USO
✓ Los casos de uso se utilizan para modelar un sistema o proceso, o como los
usuarios desean que funcione.
✓ Los casos de uso son generalmente el punto de partida del análisis orientado
a objetos con UML.
✓ Todo sistema de software ofrece a su entorno una serie de servicios. Un caso
de uso es una forma de expresar cómo alguien o algo externo a un sistema lo
usa. Cuando decimos “alguien o algo” hacemos referencia a que los sistemas
son usados no sólo por personas, sino también por otros sistemas de
hardware y software.
✓Relación de extensión (extend): un caso de uso añade acciones, que pueden ser
opcionales, al comportamiento de un caso de uso general. El caso de uso extendido
puede incluir comportamiento del caso de uso que se extiende, aunque no tiene
que incluir todo el comportamiento.

✓Relación de inclusión (include): un caso de uso incluye el comportamiento


completo de un caso de uso general. Permite la composición jerárquica de casos de
uso, así como la reutilización entre casos de uso.

✓ Relación de generalización: en el caso de uso especializado se especifican los


pasos extra que es necesario añadir al caso de uso general, para representar una
funcionalidad diferente a la original.
✓ Para extender un caso de uso deben definirse puntos de extensión (extension points), esto es, dar una
especificación de algún punto en el caso de uso donde insertar la extensión para añadir funcionalidad bajo las
condiciones especificadas.

✓ Cuando el sistema encuentra un punto de extensión en un caso de uso, se evalúan las condiciones asociadas. Si
se cumple la condición, se ejecuta la extensión correspondiente y, una vez terminada la extensión, el caso de
uso base sigue con su ejecución original.

✓ Los puntos de extensión se muestran como una lista dentro del símbolo del caso de uso extendido. Para dar
más detalles, se puede conectar una nota a la línea de dependencia especificando bajo qué condiciones se
ejecuta la extensión.
ACTIVIDAD

• https://app.moqups.com/
• https://app.moqups.com/
DIAGRAMA DE CLASES

✓ Es una herramienta para comunicar el diseño de un programa orientado a objetos, permitiendo


modelar las relaciones entre las entidades. En UML, una clase es representada por un rectángulo
que posee tres divisiones: Nombre de la clase, atributos que tiene y mensajes que entiende.

✓ Se utiliza para visualizar las relaciones entre las clases que involucran el sistema, las cuales
pueden ser asociativas, de herencia, de uso y de agregación, ya que una clase es una descripción
de conjunto de objetos que comparten los mismos atributos, operaciones, métodos, relaciones y
semántica; mostrando un conjunto de elementos que son estáticos, como las clases y tipos junto
con sus contenidos y relaciones.

✓ Un diagrama de clases esta compuesto por los siguientes elementos:


Clase: atributos y métodos .
✓ Los nombres de clase se llaman Estudiante y Curso
+ Para público -para privado # para protegido
✓ Los tipos de variables miembro se escriben primero y los
nombres de los parámetros se escriben después.
✓ La función pasó parámetros, el nombre del parámetro
se escribe primero, el tipo se escribe después
✓ El valor de retorno de la función se escribe después de la
firma de la función
✓ Si hay una relación entre las dos clases, puede usar las
flechas para asociarlas. Las reglas de asociación
específicas se describen a continuación.
✓ El número en la flecha indica que un estudiante puede
elegir no tomar cursos o tomar cursos ilimitados.
1 para uno, 0 .. * para 0 a ilimitado
ACTIVIDAD
DIAGRAMA DE ACTIVIDADES

✓Muestran el flujo de trabajo desde el punto de inicio hasta el punto final detallando muchas
de las rutas de decisiones que existen en el progreso de eventos contenidos en la actividad.

✓Estos también pueden usarse para detallar situaciones donde el proceso paralelo puede
ocurrir en la ejecución de algunas actividades.

✓Los Diagramas de Actividades son útiles para el Modelado de Negocios donde se usan para
detallar el proceso involucrado en las actividades de negocio.
Básicamente un diagrama de actividades contiene:

✓Estados de actividad
✓Estados de acción
✓Transiciones
✓Objetos
Actividades

Una actividad es la especificación de una secuencia parametrizada de


comportamiento. Una actividad muestra un rectángulo con las puntas
redondeadas adjuntando todas las acciones, flujos de control y otros elementos
que constituyen la actividad.
Acciones

Una acción representa un solo paso dentro de una actividad. Las acciones se
denotan por rectángulos con las puntas redondeadas. .
Flujo de Control

Un flujo de control muestra el flujo de control de una acción a otra. Su


notación es una línea con una punta de flecha
Nodo Inicial
Un nodo inicial o de comienzo se describe por un gran punto negro, como se
muestra a continuació
Nodo Final
Hay dos tipos de nodos finales: nodos finales de actividad y de flujo.
✓El nodo final de actividad se describe como un círculo con un punto dentro
del mismo.
✓El nodo final de flujo se describe como un círculo con una cruz dentro del
mismo.
ACTIVIDAD

• https://lucid.app/lucidchart
DIAGRAMA DE SECUENCIA
El diagrama de secuencia UML representa los eventos en orden cronológico,
razón por la que a veces se le llama diagrama de eventos o escenario de
eventos.
El orden (es decir, la secuencia exacta) es más importante que los puntos
específicos en el tiempo. Sin embargo, es posible añadir restricciones al
modelo con el que se está trabajando.
El diagrama de secuencia describe básicamente cómo los objetos (e instancias)
intercambian mensajes en un orden determinado. Los objetos son los bloques
de construcción básicos de los diagramas UML y representan ciertas
características de un elemento del sistema, que varían dependiendo del
diagrama. En las interacciones, los objetos son las conocidas como líneas de
vida.
Las flechas son una forma especial de elemento de conexión que
representan una relación direccional o flujo de información. En el diagrama
de secuencia simbolizan a los mensajes. En función del tipo de mensaje del
que se trate, su visualización cambia, como bien muestra la siguiente
imagen.

También podría gustarte