Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Microkernel
Estructura Mikrokernel
Ventajas Mikrokernel
Desventajas Mikrokernel
Ejemplos Mikrokernel
IDE´s de desarrollo
Programas de ofimática
permite que un oficinista lleve los balances de su empresa en un archivo digital mediante
planillas de cálculo que facilitan las operaciones. Dicho archivo puede ser conservado en
una computadora, impreso o enviado a través de Internet. La computadora es el
componente central de la ofimática.
En otras palabras, la SOA integra los elementos del software que se implementan y se
mantienen por separado, y permite que se comuniquen entre sí y trabajen en conjunto
para formar aplicaciones de software en distintos sistemas.
SOA proporciona la capacidad de hacer que los servicios sean consumibles en distintos
canales, independientemente de dónde resida la aplicación principal o la base de datos, lo
que ayuda a su organización a capitalizar las inversiones en la medida en que moderniza
aplicaciones en la ruta hacia la nube.
Ventajas SOA
Comercialización más rápida y mayor flexibilidad: la posibilidad de reutilizar los
servicios agiliza y simplifica el proceso de ensamblaje de las aplicaciones. Los
desarrolladores no tienen que empezar siempre desde cero, tal como sucede con
las aplicaciones monolíticas.
Uso de la infraestructura heredada en los mercados nuevos: la SOA permite
que los desarrolladores tomen las funciones de una plataforma o un entorno y las
ajusten e implementen en otros nuevos.
Reducción de los costos gracias a una mayor agilidad y un desarrollo más
eficiente
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.
Escalabilidad: la SOA posibilita la ejecución de los servicios en varios lenguajes
de programación, servicios y plataformas, lo cual aumenta la escalabilidad de
forma considerable. Además, utiliza un protocolo de comunicación estandarizado
con el que las empresas pueden disminuir la interacción entre los clientes y los
servicios, lo cual permite ajustar las aplicaciones con menos presiones e
inconvenientes.
Mayor confiabilidad: la SOA 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 SOA están disponibles para todos.
Desventajas SOA
Orientado a estándares: sin estándares, la comunicación entre aplicaciones
requiere de mucho tiempo y código.
Requiere un alto conocimiento del negocio
Genera un costo adicional en hardware y software
Ejemplos de SOA
Delaware Electric recurrió a la SOA para integrar sistemas que antes no se
comunicaban entre sí, lo que generó eficiencias de desarrollo que ayudaron a la
organización a mantenerse solvente durante un congelamiento de cinco años por
mandato estatal de las tarifas eléctricas.
Cisco adoptó la SOA para asegurarse de que su experiencia de pedidos de
productos fuera consistente en todos los productos y canales exponiendo los
procesos de pedidos como servicios que las divisiones, adquisiciones y socios de
negocios de Cisco podrían incorporar a sus sitios web.
Independence Blue Cross (IBC) de Filadelfia implementó una SOA para
asegurar que los diferentes componentes que se ocupan de los datos de los
pacientes —agentes del servicio al cliente de IBC, consultas médicas, usuarios del
sitio web de IBC— estuvieran funcionando con la misma fuente de datos (una
“versión única de la verdad”).
Arquitectura en Pizarra
Es un modelo arquitectónico que consta de múltiples elementos funcionales
denominados agentes y una herramienta de control llamada pizarra.
Estructura Pizarra
Agentes: Los agentes se especializan en una tarea y estos se relacionan entre sí para
alcanzar un objetivo en común.
Pizarra: Tiene dos funcionalidades una de coordinar a los agentes, y otra facilitar la
intercomunicación.
Ventajas Pizarra
Es útil cuando no se tiene un conocimiento completo del problema a resolver.
Es valiosa para resolver problemas complejos o difíciles.
Reusabilidad.
Flexibilidad
y modularidad para el manejo de representación de la información en la pizarra.
Desventajas Pizarra
Nada garantiza llegar a una solución.
Es ineficiente, ya que no hay un tiempo estimado para calcular una solución
Es complicado obtener los pasos llevados a cabo para obtener la solución.
Ejemplos Pizarra
Ventajas MVC
El desarrollo de los distintos componentes se puede realizar de manera
simultánea. entre varios desarrolladores.
La separación del Modelo y la Vista, lo cual logra separar los datos, de su
representación visual.
Facilita el manejo de errores.
Permite que el sistema sea escalable si es requerido.
Es posible agregar múltiples representaciones de los datos.
Desventajas MVC
La curva de aprendizaje para nuevos desarrolladores es un poco superior a los
otros modelos que son más simples.
Tener varias capas nos incrementa la complejidad del sistema.
La navegación por el código puede ser compleja al disponer de más componentes,
lo que se traduce en un mayor número de archivos o unidades.
Ejemplos MVC
1. El usuario realiza una petición. En nuestro caso desea modificar el nombre de una
tabla.
2. El controlador recibe dicha petición (de la interfaz gráfica) y procede a ejecutar la
acción pertinente enviando los datos al Modelo.
3. El Modelo realiza las modificaciones con la base de datos (MySQL, PostgreSQL,
SQLite).
4. Luego, devuelve al controlador los cambios solicitados.
5. Cuando el Controlador recibe todos los datos del cambio, envía una respuesta a la
Vista.
6. La Vista aplica la modificación en la interfaz del navegador mostrando al usuario.
Objetos Desnudos
Es un modelo de patrones arquitectónico, usualmente utilizados en modelos de sistemas
empresariales donde por el cual los objetos de negocio (tales como cliente, producto,
orden) son expuestos directamente al usuario. Este patrón está definido por tres
principios:
Toda la lógica de negocio debe ser encapsulada en los objetos de dominio.
La interfaz de usuario debe ser una representación directa de los objetos de
dominio, con todas las acciones del usuario, constan explícitamente en la creación
o en la recuperación de objetos de dominio e/o invocando métodos en esos
objetos.
La interfaz de usuario será 100% creado automáticamente a partir de la definición
de los objetos de dominio.
Ventajas Objetos Desnudos
Ciclo de desarrollo rápido
Facilidad para adaptarse a futuros cambios en los requisitos
Análisis de requisitos sencillo
Microservicios
En palabras sencillas, podemos definirlo como: Un estilo arquitectónico de software para
desarrollar una sola aplicación como un conjunto de pequeños servicios, cada uno
ejecutándose en su propio proceso y comunicándose con mecanismos livianos mientras
mantiene el objetivo primordial de que cada servicio se encargue de implementar una
funcionalidad completa del negocio.
Estructura Microservicios
Ventajas Microservicios
Equipos pequeños y centrados: Tan pequeño como para ser implementado por
1 equipo de características.
Agilidad: Puede actualizar un servicio sin volver a implementar toda la aplicación
y revertir una actualización si algo va mal.
Escalabilidad: Facilita la escalabilidad horizontal sin tener que aplicarlo a toda la
aplicación.
Mezcla de tecnologías: Se puede elegir la tecnología que mejor se adapte al
servicio.
Desventajas Microservicios
Complejidad: Cada servicio es más sencillo, pero el sistema como un todo es
más complejo.
Congestión y latencia de red: El uso de muchos servicios pequeños y detallados
puede dar lugar a más comunicación interservicios.
Control de versiones: Podrían surgir problemas con la compatibilidad con
versiones anteriores o posteriores.
Falta de gobernanza: Puede acabar con muchos lenguajes y marcos de trabajo
diferentes.
Ejemplos de Microservicios
N-Capas
La programación por capas es un modelo de desarrollo software en el que el objetivo
primordial es la separación (desacoplamiento) de las partes que componen un sistema
software o también una arquitectura cliente-servidor: lógica de negocios, capa de
presentación y capa de datos. De esta forma, por ejemplo, es sencillo y mantenible crear
diferentes interfaces sobre un mismo sistema sin requerir cambio alguno en la capa de
datos o lógica.
La arquitectura de N-capas está caracterizada por la descomposición funcional de la
aplicación, los componentes de servicio y su instalación distribuida. Mejorando la
escalabilidad, disponibilidad, administración, y utilización de recursos.
Básicamente, la aplicación de N capas es la lógica de la aplicación de partición en capas
específicas. El patrón de arquitectura de N capas es una arquitectura madura y
simplemente se refiere a aplicaciones que separan varias capas lógicas en niveles físicos
separados
Estructura N-Capas
Ventajas N-Capas
Es fácil testear cada capa por separado debido a la separación clara
de responsabilidades que existe entre ellas.
Al momento de hacer un cambio, si se implementó bien la separación
de responsabilidad, este cambio solo debe impactar a la capa responsable y no a
todas. Esto se conoce como desacople.
Desventajas N-Capas
Si se implementaron demasiadas capas el rendimiento de la aplicación puede
verse afectado.
Ciertas operaciones al ser modificadas pueden afectar a todas las capas, haciendo
visible que no existe un 100% de desacople entre estas.
Ejemplos N-Capas
Aplicaciones de línea de negocios (LOB), como contabilidad, y sistemas de gestión
de clientes.
Aplicaciones web Corporativas y sitios Web
Aplicaciones corporativas de escritorio o clientes inteligentes con servidores
centralizados de aplicación con lógica de negocios.
Pipeline
El modelo Pipeline se denomina en el mundo de la informática a una serie de elementos
de procesamiento de datos ordenados de tal modo que la salida de cada uno es la
entrada del siguiente. Pipeline (tuberías en español) hace referencia a su nombre,
básicamente es como el agua pasa por la tubería, donde el agua es la información o los
procesos.
La arquitectura Pipeline consiste en ir transformando un flujo de datos en un proceso
comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la
anterior, con un almacenamiento temporal de datos entre procesos.
Estructura Pipeline
Ventajas Pipeline
Permite comprender el comportamiento de entrada /salida de un sistema como la
composición del comportamiento de los filtros individuales.
Facilita el mantenimiento y crecimiento.
Permiten realizar análisis de ‘deadlock’ y rendimiento.
Soporte de ejecución concurrente.
Facilita la reutilización de transformaciones.
Es intuitivo Fácil agregar / quitar transformaciones Relativamente sencillo de
implementar, a nivel concurrente o secuencial.
Desventajas Pipeline
Frecuentemente tienden a una organización de procesamiento batch.
No son buenos para aplicaciones interactivas.
Pueden complicarse al tener que mantener dos flujos separados pero
relacionados.
Puede ser necesario agregar a los filtros conversión de datos de entrada y salida.
Pérdida de performance e incremento de complejidad de los filtros.
Es difícil soportar interacciones basadas en eventos
Ejemplos de Pipeline
1. Pipelines gráficos, se encuentran en la mayoría de las tarjetas gráficas, consiste
en múltiples unidades aritméticas o CPUs completas, que implementan variados
escenarios de operaciones típicas de renderizado, por ejemplo, cálculos de luz y colores,
renderizado, proyección de perspectiva, etc.
2. Pipelines de software o tuberías, consiste en múltiples procesos ordenados de tal
forma que el flujo de salida de un proceso alimenta la entrada del siguiente proceso. Por
ejemplo, los pipelines de Unix.
N-niveles
Es un patrón arquitectónico de programación, su objetivo primordial es individualizar los
niveles de desarrollo, que son: nivel de presentación, nivel de negocio, nivel de datos.
Nivel de presentación: Esta capa es la que ve el usuario, presenta el sistema al usuario,
le comunica la información y captura la información del usuario en un mínimo de proceso.
Nivel de negocio: Aquí es donde, se reciben las peticiones del usuario y se envían las
respuestas tras el proceso.
Nivel de datos: Es donde residen los datos y es la encargada de acceder a los mismos.
Está formada por uno o más gestores de bases de datos que realizan todo el
almacenamiento de datos.
Estructura N-niveles
Ventajas N-niveles
El principal beneficio de la arquitectura de tres niveles es su separación lógica y física de
la funcionalidad. Cada nivel puede ejecutarse en un sistema operativo y una plataforma
de servidor independientes, como un servidor web, un servidor de aplicaciones o un
servidor de bases de datos
Desarrollo más rápido
Escalabilidad mejorada
Confiabilidad mejorada
Seguridad mejorada
Desventajas N-niveles
Es más complejo que el modelo de computación cliente-servidor de 2 niveles,
porque es más difícil construir una aplicación de 3 niveles, "Los puntos de
comunicación se duplican"
Puede verse afectado el rendimiento debido a La separación física de los
servidores de aplicaciones que contienen funciones de lógica y de bases de datos
.
Ejemplos de N-niveles
Se suele utilizar en sistemas que implementan un modelo de negocio como por ejemplo
una tienda online, una app para gestionar ciertos datos, etc.
Sin embargo
Un ejemplo más preciso es IBM Cloud ofrece productos y servicios que le ayudarán a
modernizar sus aplicaciones de tres niveles heredadas en su migración a la nube.