SlideShare a Scribd company logo
1 of 80
Aplicaciones Distribuidas Por: Sorey Bibiana García Zapata
Sobre mi… Una frase para empezar… “ El conocimiento esta condicionado por la experiencia” Me sé algunas, me gusta compartir las que me sé, las que no sé, me gusta aprenderlas, recibo todo tipo de aportes y correcciones… Y pues lo que no sepamos, lo averiguamos.
Sobre el curso… Este curso esta enfocado a dar las nociones principales alrededor del desarrollo de aplicaciones distribuidas, reconociendo las tecnologías relacionadas a cada una de las partes fundamentales de estas y por supuesto las consideraciones asociadas a su desarrollo.
Importante! ... desarrollar software , no es  programar … … este curso requiere conocer claramente esa diferencia!
El  desarrollo de software  incluye todas las disciplinas asociadas a la  ingeniería de software desde el  análisis   hasta la  puesta en producción …  el desarrollo de aplicaciones distribuidas sugiere por tanto consideraciones durante la ejecución de  todo el ciclo de vida …
Recomendación! Si a este momento, no reconoce conceptos como,  ingeniería de software u orientación a objetos , inicie con el aprendizaje de estos antes de profundizar técnicamente en la distribución de aplicaciones. Ahora si, comencemos…
Que es una  aplicación distribuida?
Es una aplicación con distintos  componentes   que se ejecutan en  entornos separados , normalmente en diferentes plataformas conectadas a través de una red Wikipedia
Se entendió? Veamos que tanto…
Cuales son los  componentes   que se  distribuyen ?  Que criterios se usan para determinar que conforma un  componente ? A través de que mecanismos se realiza la  comunicación  entre  componentes distribuidos ? Que es un  componente ?
Que debería  saberse y/o tenerse en cuenta  para  desarrollar   una  aplicación distribuida ?
Capas Niveles Arquitectura Protocolos Calidades Sistémicas UML Despliegue Cliente/Servidor Servicios Lógica de Negocio Acceso a Datos Webservices Interfaces Componentes Comunicación Objetos Interfaz de Usuario Paquetes Interoperabilidad Comunicación
Vamos por partes… A que se refiere la  distribución ?
Las  distribución  refiere a la construcción de software por  partes , a las cuales les son asignadas un  conjunto específico  de  responsabilidades  dentro de un sistema.
Esta  distribución  como bien enunciaba la definición formal, habla de que las partes o  componentes  se encuentran en  entornos separados , sin embargo, lo que tiene implícito esta definición, es que para realizar esta  separación física  primero debe tenerse clara la  separación lógica  de las partes de una aplicación, esto quiere decir que  programáticamente  existe una forma de  separar  o  agrupar   los  componentes .
La  separación física  no es en todas las ocasiones  “maquinas diferentes”  de acuerdo a arquitectura tambien puede ser la ubicación de un conjunto de funcionalidades en  archivos, rutas o montadas sobre técnologías  diferentes dentro de la  misma máquina
Ahora bien, cuando hablemos de  distribución lógica  lo entenderemos como separación por “ Capas ” (tiers) y cuando hablemos de  distribución física  usaremos el término separación en “ Niveles ” (layers)
La separación por  capas  y  niveles  hace parte de la  arquitectura del sistema  y es definida por el  arquitecto  de la aplicación. …  una situación evidente si conocemos la ingeniera de software… Nuestra tarea en este curso está en familiarizarnos con este tipo de tareas.
Ambos tipos de  distribución  se hacen con base en las necesidades  técnicas , de  diseño   y/o de  negocio …  esas necesidades son las que aprenderemos a identificar en este curso.
La separación en  niveles  tiene una serie de consideraciones de tipo  técnico   y también  económico , a las que nos referiremos mas adelante, por ahora lo concebiremos de forma básica, como  separación física  de los componentes. Sin embargo de las  capas , tenemos más que decir…
“ 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 .”
Las  capas  además, según el  escenario   y  tipo de aplicación , están separadas  físicamente . Si,  físicamente ! Lo que significa que una  capa  puede ser a su vez un  nivel
Una  capa  puede contener  muchos   componentes , un mismo  componente  puede ubicarse en  varias   capas  de acuerdo a su naturaleza y a las consideraciones explicitas de la  arquitectura …  como? No hay problema, lo iremos entendiendo, de eso se trata…
…  bueno y a todo esto… Qué es un  componente ?
Veamos una definición formal... Un  componente   es un  elemento   de software que  encapsula   una serie de funcionalidades.  Un  componente   es una  unidad independiente , que puede ser  utilizado  en conjunto con otros componentes para formar un  sistema más complejo .
Cada  componente  de un sistema puede verse como un  paquete   o  módulo
Un  componente  esta compuesto por elementos que pueden ser  clases   y/o  recursos complementarios  como archivos de configuración, imágenes, entre otros.  Y a su vez esas clases y recursos pueden están agrupados dentro del componente en  subpaquetes , de acuerdo a su naturaleza o necesidades de negocio.
En este punto visualizamos varios conceptos que podemos presentar de la siguiente forma… Aplicación Niveles Capas Componentes Paquetes Clases Sub paquetes Otros Recursos
Hablar de  clases  en este punto, nos hace recordar que debemos hacer un recuento nuestros conocimientos sobre  programación orientada a objetos , ya que la construcción de componentes esta basada es los mismos principios y/o características con las que cumple este conocido paradigma
…  la  modularidad  y la  reusabilidad Qué son? Recordemos lo más  básico … Los principios que dirigen la orientación a objetos son
En términos simples la  modularidad   significa trabajar por  partes … (de hecho, tal cual como lo plantea el desarrollo por componentes)
Y la  reusabilidad   significa No se invente la rueda! Lo que ya esta hecho es para usarse y algunas de las cosas que no están hechas, deben construirse pensando en que alguien necesitará usarlo  alguna vez
Que es una  clase ? Que es un  objeto ? Que es un  mensaje ? Que son  atributos ,  características  o  propiedades ? Que son  métodos ,  procedimientos  ,  funciones  o  servicios ? Que significa que un objeto esta compuesto por una  interfaz , una  implementación  y un  estado ? Veamos, que tanto recordamos…
Que es  abstracción ,  encapsulamiento ,  polimorfismo ,  herencia ? Después de este repaso avancemos un poco más Si en este punto se encuentra un poco confundido, recuerde mi consejo, no profundice más hasta no entender claramente los conceptos mencionados
Los componentes igual que los objetos deben cumplir con dos características importantes la  alta cohesión  y el  bajo acoplamiento …  que tan claros son?….
Cuando decimos que un  componente  tiene una  alta cohesión  hablamos de que todos los elementos  dentro   de el están  estrechamente relacionados …  el criterio de relación debe ser de negocio o técnico y  no  subjetivo
Cuando decimos que un  componente  tiene una  bajo acoplamiento  hablamos del nivel de  independencia  que tiene un  componente  con respecto a  otros …  esta independencia se refiere al grado en que un componente puede funcionar sin recurrir a otros y se refiere a relaciones de acoplamiento diferentes a la funcional o arquitectónica…
Tener estas dos metas en mente durante la construcción de  componentes , ahorrará  trabajo   y  tiempos   de desarrollo a los  equipos  y  proyectos …  si reconocemos el valor de la ingeniería de software, entenderemos lo que esto significa…
Los componentes desarrollados satisfacen una  necesidad  asociada a una o varias partes de una aplicación, y son separados de acuerdo a su  uso  o a por una  agrupación lógica  que determina la relación entre ellos.
El paradigma básico de la separación por capas establece al menos  3 partes distintas  dentro de una aplicación La Presentación La Lógica de Negocio El Acceso a Datos y los Datos Ahora bien…
Veamos entonces que significan cada una de estas  partes …
La  Presentación  o  interfaz de usuario  se refiere al mecanismo de  interacción  del usuario  con el sistema Los tipos de interfaces de  software  más comunes son las aplicaciones de  ventanas  y  web    Los tipos de interfaces de  hardware  más comunes son el ratón, el teclado, el micrófono, pantallas táctiles, dispositivos de audio
La  Lógica de Negocio  refiere el conjunto de  reglas  que determinan específicamente como funciona un sistema, según su  naturaleza , y bajo que  parámetros  y  condiciones  de acuerdo a las  necesidades  de los  clientes  y  usuarios .
El  acceso a datos  refiere al medio a través del cual podemos acceder y manipular los  datos   persistentes  de un sistema El  almacenamiento de datos  refiere a la forma en que se encuentran guardados dichos datos, por ejemplo, en  archivos  o  bases de datos .
Después de conocer estos conceptos básicos, podemos pasar entonces a ver, los diferentes tipos de aplicación Aplicaciones Monolíticas Aplicaciones Cliente/Servidor Aplicaciones de 3 Capas Aplicaciones de N Capas … veamos unas definiciones básica sobre estas
Una  aplicación monolítica  o de  una capa  es aquella cuya interfaz, lógica de negocio y acceso a datos se encuentran mezclados o altamente acoplados, esto dificulta que pueda hacerse una separación lógica y física donde alguna de las partes pueda ser reutilizable.
Una  aplicación Cliente/Servidor  o  aplicación de dos   capas  es aquella donde los datos y la lógica de negocio se encuentran separados de la interfaz, este tipo de aplicación también es denominada,  cliente liviano .
Otro escenario válido para una  aplicación Cliente/Servidor , se da separando los datos de la interfaz y la lógica de negocio, este tipo de aplicación también es denominado,  cliente pesado.
Una  aplicación 3 capas  es aquella donde la interfaz, la lógica de negocio, el acceso a datos y los datos se encuentran  separados.
Es  muy importante  entender, que la  separación  de la que se habla no es necesariamente  física , como ya se había dicho antes, la primera separación que se da es  lógica  y debemos reiterar que la  separación lógica  es  programática .
“ Es muy tentador para los desarrolladores  mezclar una o más capas ; por ejemplo implementando alguna validación u otro proceso de  negocios  dentro de la capa de presentación en vez de en la capa de lógica de negocio, ….”
Sin embargo ubicar la  lógica de programación  en las  capas adecuadas , es más un comportamiento que debería ser inherente al trabajo como programador, obviamente uno que este interesado en hacer su trabajo,  bien hecho. Los problemas que conllevan la  mala separación de la lógica de programación , no son inmediatos, sus efectos se verán muy seguramente en el transcurso de la evolución de las aplicaciones.
Y pues para hacer un trabajo bien hecho, hay que reconocer que las  consideraciones asociadas  al desarrollo por capas… Veamos cada una de ellas y enumeremos algunas consideraciones iniciales…
Que consideraciones deberíamos tener en cuenta cuando pensamos en la  Capa de Presentación ?
 
 
Y las consideraciones de la  Capa de Lógica de Negocios ?
Es mucho más que una cuestión de gusto, hay que pensar en los costos, la productividad, portabilidad e interoperabilidad entre muchos otros factores… Solo por mencionar los más populares…
Y las consideraciones de la  Capa de Acceso a Datos ?
Nuevamente solo por mencionar los más usados…
Bueno y si ya están separadas las 3 capas principales, que es entonces una de  aplicación de N capas ?
Pues bien, la evolución de la  tecnología  y las  redes de comunicaciones , hacen que cada día se generen  nuevos escenarios  de intercambio de información  entre empresas , y entre los mismos  sistemas existentes  dentro de las empresas, de forma que se satisfagan las necesidades constantes y cambiantes de clientes y usuarios, para quienes debe resultar  transparente   el obtener información de un sistema u otro.
Otra de las razones importantes por las que surge este concepto, es debido a que en la evolución del desarrollo de software, se ha identificado la necesidad de crear  nuevas capas, especializadas en funciones especificas , diferentes a las 3 identificadas previamente. Tal es el caso de la seguridad, el control de  excepciones, el transporte de datos entre capas, la generación de trazas de errores , entre otros.
Este por ejemplo es la propuesta de  Microsoft  para una aplicación distribuida y que como vemos tiene  más de 3 capas … Sin estrés, no hemos pasado de la tierra al cielo, con el tiempo iremos entendiendo que significa todo esto
Ya que hemos hecho énfasis en el significado del desarrollo o distribución de la lógica de programación y recursos del sistema por  capas , continuemos hablando de los  componentes .
Hay  componentes  de diferentes tipos Ejecutables, Páginas Web, Librerías, Controles, Procedimientos Almacenados, Servicios Web… …  ahora bien…
Los  ejecutables   refieren programas o aplicaciones de escritorio que corren sobre un sistema operativo
Una  pagina web  es una fuente de información adaptada para la World Wide Web (WWW), que es accesible mediante un navegador de Internet y normalmente forma parte de un sitio web. Wikipedia
Las  librerías   refieren bibliotecas o conjunto de  clases  que contienen lógica de programación implementada como  servicios  que pueden ser utilizados desde otras  librerías  o  aplicaciones
Los  controles   refieren  librerías  de tipo grafico que pueden ser usada en la construcción de  interfaces de usuario.
Un  servicio web  (en inglés  Web service ) es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones Wikipedia Suena complicado verdad? … no hay problema, este tema lo ampliaremos más adelante!
Lo que debemos saber inicialmente sobre los  servicios web  es que actualmente son la forma mas popular de  comunicación   entre niveles, que si recordamos, refiere a entornos  separados  e incluso de  tecnologías diferentes .
Tratemos de simplificar lo que acabamos de leer… Generalmente las aplicaciones exponen a los usuarios una  interfaz gráfica  que permite interactuar con los datos de un negocio. Los  servicios web  son un tipo de aplicación que permite exponer  servicios   ( métodos, procedimientos ) existentes en clases o librerías clases, a través de los cuales se accede a la  lógica de negocio  que ofrece un sistema, este es el mecanismo más comúnmente utilizado actualmente para compartir información entre empresas.
Estos son los  conceptos iníciales , entenderlos y apropiarse de su manejo nos garantizará entender su detalle y los temas que vienen más adelante, pero antes de terminar veamos una aclaración…
Importante!  No es lo mismo hablar de una  aplicación distribuida  y un  sistema distribuido
Un  sistema distribuido  se define como:  Una colección de computadores separados  físicamente  y conectados entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software que el usuario percibe como  un solo sistema Wikipedia
Es el caso del conocido buscador de  Google ,  el cual funciona utilizando una red de computadores que realizan simultáneamente las búsquedas solicitadas por un usuario,  sin que el usuario perciba siquiera que esto esta sucediendo . Una razón importante para la existencia de los  sistemas distribuidos  tiene que ver con la limitación de  recursos del hardware .
A pesar de actualmente contamos con  altos niveles de procesamiento  en el hardware disponible, estos niveles son  limitados   en recursos, es decir en  capacidad de procesamiento, memoria, ancho de banda , entre otros criterios.  Esta situación hace que los  arquitectos de software , tengan que implementar estrategias en donde mas de un servidor atiende las solicitudes de los sistemas que tienen por ejemplo  muchos usuarios accediendo de forma concurrente al mismo sistema .
Un  aplicación distribuida  puede requerir ser implementada como un  sistema distribuido,  sin embargo esta condición no es indispensable, puesto que está determinada por necesidades específicas para tipos de aplicaciones y/o escenarios en los que priman principalmente factores como la  escalabilidad horizontal y el desempeño …  estas ultimas refieren calidades sistémicas, temas que veremos más adelante…
Nos vemos en la próxima! Ciao

More Related Content

What's hot

Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidasTensor
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XPETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XPJglory22
 
Tipos de Requerimientos en Ingeniería de Software
Tipos de Requerimientos en Ingeniería de SoftwareTipos de Requerimientos en Ingeniería de Software
Tipos de Requerimientos en Ingeniería de SoftwareLeo Ruelas Rojas
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwaresergio
 
Extreme Programming-Fases
Extreme Programming-FasesExtreme Programming-Fases
Extreme Programming-FasesBelghy Chisag
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacción8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacciónDCU_MPIUA
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioSergio Sanchez
 
Respaldo y Recuperación de Datos.
Respaldo y Recuperación de Datos.Respaldo y Recuperación de Datos.
Respaldo y Recuperación de Datos.Mariana Picasso
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxRunayli
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de softwareJohn Fonseca
 
Base De Datos Distribuidas
Base De Datos DistribuidasBase De Datos Distribuidas
Base De Datos DistribuidasJorge Guerra
 

What's hot (20)

cliente servidor
cliente servidorcliente servidor
cliente servidor
 
13.diseño de web apps
13.diseño de web apps13.diseño de web apps
13.diseño de web apps
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Unidad 5 interfaces
Unidad 5  interfacesUnidad 5  interfaces
Unidad 5 interfaces
 
Versiones de sql
Versiones de sqlVersiones de sql
Versiones de sql
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XPETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
 
Tipos de Requerimientos en Ingeniería de Software
Tipos de Requerimientos en Ingeniería de SoftwareTipos de Requerimientos en Ingeniería de Software
Tipos de Requerimientos en Ingeniería de Software
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
Extreme Programming-Fases
Extreme Programming-FasesExtreme Programming-Fases
Extreme Programming-Fases
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacción8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacción
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De Negocio
 
Respaldo y Recuperación de Datos.
Respaldo y Recuperación de Datos.Respaldo y Recuperación de Datos.
Respaldo y Recuperación de Datos.
 
Hotel Casa Quero
Hotel Casa QueroHotel Casa Quero
Hotel Casa Quero
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptx
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de software
 
Base De Datos Distribuidas
Base De Datos DistribuidasBase De Datos Distribuidas
Base De Datos Distribuidas
 

Viewers also liked

Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones DistribuídasJavierialv
 
Unidad 1 Panorama general de las aplicaciones distribuidas
Unidad 1 Panorama general de las aplicaciones distribuidasUnidad 1 Panorama general de las aplicaciones distribuidas
Unidad 1 Panorama general de las aplicaciones distribuidasEduardo S de Loera
 
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.Internet Security Auditors
 
Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionJorge Guerra
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidasalicia
 
Snmp
SnmpSnmp
Snmp1 2d
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsdandark2000
 
Presentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las TecnologiasPresentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las Tecnologiasadriana
 
Arquitectura cliente servidor 2
Arquitectura cliente servidor 2Arquitectura cliente servidor 2
Arquitectura cliente servidor 2jc_lovecraft77
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativomlpv
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosivancho4286
 
Tendencias Recientes en Data Mining
Tendencias Recientes en Data MiningTendencias Recientes en Data Mining
Tendencias Recientes en Data MiningDMC Perú
 
Evolucion de las aplicaciones informaticas
Evolucion de las aplicaciones informaticasEvolucion de las aplicaciones informaticas
Evolucion de las aplicaciones informaticasbuchoon
 

Viewers also liked (20)

Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones Distribuídas
 
Unidad 1 Panorama general de las aplicaciones distribuidas
Unidad 1 Panorama general de las aplicaciones distribuidasUnidad 1 Panorama general de las aplicaciones distribuidas
Unidad 1 Panorama general de las aplicaciones distribuidas
 
P2p
P2pP2p
P2p
 
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
 
Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e Implementacion
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Snmp
SnmpSnmp
Snmp
 
Electroquímica
ElectroquímicaElectroquímica
Electroquímica
 
02.conceptos basicos de la telefonia ip ori
02.conceptos basicos de la telefonia ip   ori02.conceptos basicos de la telefonia ip   ori
02.conceptos basicos de la telefonia ip ori
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Aplicaciones En Capas
Aplicaciones En CapasAplicaciones En Capas
Aplicaciones En Capas
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas sockets
 
Presentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las TecnologiasPresentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las Tecnologias
 
Arquitectura cliente servidor 2
Arquitectura cliente servidor 2Arquitectura cliente servidor 2
Arquitectura cliente servidor 2
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Tendencias Recientes en Data Mining
Tendencias Recientes en Data MiningTendencias Recientes en Data Mining
Tendencias Recientes en Data Mining
 
Integración de Aplicaciones
Integración de AplicacionesIntegración de Aplicaciones
Integración de Aplicaciones
 
Evolucion de las aplicaciones informaticas
Evolucion de las aplicaciones informaticasEvolucion de las aplicaciones informaticas
Evolucion de las aplicaciones informaticas
 

Similar to Aplicaciones Distribuidas

Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Avanet
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .netcampus party
 
Taller campus party
Taller campus partyTaller campus party
Taller campus partycampus party
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1cesarmrl2
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A ObjetosAndrés
 
Tema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentesTema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentesGary Araujo Viscarra
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesTensor
 

Similar to Aplicaciones Distribuidas (20)

Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .net
 
Taller campus party
Taller campus partyTaller campus party
Taller campus party
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 
4.1, 4.2
4.1, 4.24.1, 4.2
4.1, 4.2
 
Compu 1
Compu 1Compu 1
Compu 1
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
Diseño o.o
Diseño o.oDiseño o.o
Diseño o.o
 
Diseño o.o
Diseño o.oDiseño o.o
Diseño o.o
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Tema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentesTema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentes
 
Deber analisis
Deber analisisDeber analisis
Deber analisis
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
MVC.ppt
MVC.pptMVC.ppt
MVC.ppt
 
Programacion o.o.
Programacion o.o.Programacion o.o.
Programacion o.o.
 
Fr amework
Fr ameworkFr amework
Fr amework
 

More from Sorey García

Mision inspiración para docentes
Mision inspiración para docentesMision inspiración para docentes
Mision inspiración para docentesSorey García
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilSorey García
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLSorey García
 
WIE: El poder de transformar al mundo con tecnología
WIE: El poder de transformar al mundo con tecnologíaWIE: El poder de transformar al mundo con tecnología
WIE: El poder de transformar al mundo con tecnologíaSorey García
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...Sorey García
 
Internet de las Cosas y Netduino
Internet de las Cosas y NetduinoInternet de las Cosas y Netduino
Internet de las Cosas y NetduinoSorey García
 
Misión: Inspiración
Misión: InspiraciónMisión: Inspiración
Misión: InspiraciónSorey García
 
Tendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialTendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialSorey García
 
[Avanet] Fiesta del Libro y la Cultura Medellín
[Avanet] Fiesta del Libro y la Cultura Medellín[Avanet] Fiesta del Libro y la Cultura Medellín
[Avanet] Fiesta del Libro y la Cultura MedellínSorey García
 
MVP Open Day - Best Practices/Experiences
MVP Open Day - Best Practices/Experiences MVP Open Day - Best Practices/Experiences
MVP Open Day - Best Practices/Experiences Sorey García
 
GWAB: Azure Mobile Services
GWAB: Azure Mobile ServicesGWAB: Azure Mobile Services
GWAB: Azure Mobile ServicesSorey García
 
Similitudes y deferencias en UX para Windows Phone y Windows
Similitudes y deferencias en UX para Windows Phone y WindowsSimilitudes y deferencias en UX para Windows Phone y Windows
Similitudes y deferencias en UX para Windows Phone y WindowsSorey García
 
Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Sorey García
 
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Sorey García
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Sorey García
 
Hackaton Globant - Windows Phone (snnipets and tips)
Hackaton Globant - Windows Phone (snnipets and tips)Hackaton Globant - Windows Phone (snnipets and tips)
Hackaton Globant - Windows Phone (snnipets and tips)Sorey García
 
Windows Phone 8: Tips de Diseño para Desarrolladores
Windows Phone 8: Tips de Diseño para DesarrolladoresWindows Phone 8: Tips de Diseño para Desarrolladores
Windows Phone 8: Tips de Diseño para DesarrolladoresSorey García
 
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y JavascriptJSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y JavascriptSorey García
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus PartySorey García
 

More from Sorey García (20)

Mision inspiración para docentes
Mision inspiración para docentesMision inspiración para docentes
Mision inspiración para docentes
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvil
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
WIE: El poder de transformar al mundo con tecnología
WIE: El poder de transformar al mundo con tecnologíaWIE: El poder de transformar al mundo con tecnología
WIE: El poder de transformar al mundo con tecnología
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
 
Internet de las Cosas y Netduino
Internet de las Cosas y NetduinoInternet de las Cosas y Netduino
Internet de las Cosas y Netduino
 
Misión: Inspiración
Misión: InspiraciónMisión: Inspiración
Misión: Inspiración
 
Codies.Launch()
Codies.Launch()Codies.Launch()
Codies.Launch()
 
Tendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialTendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarial
 
[Avanet] Fiesta del Libro y la Cultura Medellín
[Avanet] Fiesta del Libro y la Cultura Medellín[Avanet] Fiesta del Libro y la Cultura Medellín
[Avanet] Fiesta del Libro y la Cultura Medellín
 
MVP Open Day - Best Practices/Experiences
MVP Open Day - Best Practices/Experiences MVP Open Day - Best Practices/Experiences
MVP Open Day - Best Practices/Experiences
 
GWAB: Azure Mobile Services
GWAB: Azure Mobile ServicesGWAB: Azure Mobile Services
GWAB: Azure Mobile Services
 
Similitudes y deferencias en UX para Windows Phone y Windows
Similitudes y deferencias en UX para Windows Phone y WindowsSimilitudes y deferencias en UX para Windows Phone y Windows
Similitudes y deferencias en UX para Windows Phone y Windows
 
Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)
 
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8
 
Hackaton Globant - Windows Phone (snnipets and tips)
Hackaton Globant - Windows Phone (snnipets and tips)Hackaton Globant - Windows Phone (snnipets and tips)
Hackaton Globant - Windows Phone (snnipets and tips)
 
Windows Phone 8: Tips de Diseño para Desarrolladores
Windows Phone 8: Tips de Diseño para DesarrolladoresWindows Phone 8: Tips de Diseño para Desarrolladores
Windows Phone 8: Tips de Diseño para Desarrolladores
 
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y JavascriptJSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus Party
 

Recently uploaded

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 

Recently uploaded (20)

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 

Aplicaciones Distribuidas

  • 1. Aplicaciones Distribuidas Por: Sorey Bibiana García Zapata
  • 2. Sobre mi… Una frase para empezar… “ El conocimiento esta condicionado por la experiencia” Me sé algunas, me gusta compartir las que me sé, las que no sé, me gusta aprenderlas, recibo todo tipo de aportes y correcciones… Y pues lo que no sepamos, lo averiguamos.
  • 3. Sobre el curso… Este curso esta enfocado a dar las nociones principales alrededor del desarrollo de aplicaciones distribuidas, reconociendo las tecnologías relacionadas a cada una de las partes fundamentales de estas y por supuesto las consideraciones asociadas a su desarrollo.
  • 4. Importante! ... desarrollar software , no es programar … … este curso requiere conocer claramente esa diferencia!
  • 5. El desarrollo de software incluye todas las disciplinas asociadas a la ingeniería de software desde el análisis hasta la puesta en producción … el desarrollo de aplicaciones distribuidas sugiere por tanto consideraciones durante la ejecución de todo el ciclo de vida …
  • 6. Recomendación! Si a este momento, no reconoce conceptos como, ingeniería de software u orientación a objetos , inicie con el aprendizaje de estos antes de profundizar técnicamente en la distribución de aplicaciones. Ahora si, comencemos…
  • 7. Que es una aplicación distribuida?
  • 8. Es una aplicación con distintos componentes que se ejecutan en entornos separados , normalmente en diferentes plataformas conectadas a través de una red Wikipedia
  • 9. Se entendió? Veamos que tanto…
  • 10. Cuales son los componentes que se distribuyen ? Que criterios se usan para determinar que conforma un componente ? A través de que mecanismos se realiza la comunicación entre componentes distribuidos ? Que es un componente ?
  • 11. Que debería saberse y/o tenerse en cuenta para desarrollar una aplicación distribuida ?
  • 12. Capas Niveles Arquitectura Protocolos Calidades Sistémicas UML Despliegue Cliente/Servidor Servicios Lógica de Negocio Acceso a Datos Webservices Interfaces Componentes Comunicación Objetos Interfaz de Usuario Paquetes Interoperabilidad Comunicación
  • 13. Vamos por partes… A que se refiere la distribución ?
  • 14. Las distribución refiere a la construcción de software por partes , a las cuales les son asignadas un conjunto específico de responsabilidades dentro de un sistema.
  • 15. Esta distribución como bien enunciaba la definición formal, habla de que las partes o componentes se encuentran en entornos separados , sin embargo, lo que tiene implícito esta definición, es que para realizar esta separación física primero debe tenerse clara la separación lógica de las partes de una aplicación, esto quiere decir que programáticamente existe una forma de separar o agrupar los componentes .
  • 16. La separación física no es en todas las ocasiones “maquinas diferentes” de acuerdo a arquitectura tambien puede ser la ubicación de un conjunto de funcionalidades en archivos, rutas o montadas sobre técnologías diferentes dentro de la misma máquina
  • 17. Ahora bien, cuando hablemos de distribución lógica lo entenderemos como separación por “ Capas ” (tiers) y cuando hablemos de distribución física usaremos el término separación en “ Niveles ” (layers)
  • 18. La separación por capas y niveles hace parte de la arquitectura del sistema y es definida por el arquitecto de la aplicación. … una situación evidente si conocemos la ingeniera de software… Nuestra tarea en este curso está en familiarizarnos con este tipo de tareas.
  • 19. Ambos tipos de distribución se hacen con base en las necesidades técnicas , de diseño y/o de negocio … esas necesidades son las que aprenderemos a identificar en este curso.
  • 20. La separación en niveles tiene una serie de consideraciones de tipo técnico y también económico , a las que nos referiremos mas adelante, por ahora lo concebiremos de forma básica, como separación física de los componentes. Sin embargo de las capas , tenemos más que decir…
  • 21. “ 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 .”
  • 22. Las capas además, según el escenario y tipo de aplicación , están separadas físicamente . Si, físicamente ! Lo que significa que una capa puede ser a su vez un nivel
  • 23. Una capa puede contener muchos componentes , un mismo componente puede ubicarse en varias capas de acuerdo a su naturaleza y a las consideraciones explicitas de la arquitectura … como? No hay problema, lo iremos entendiendo, de eso se trata…
  • 24. … bueno y a todo esto… Qué es un componente ?
  • 25. Veamos una definición formal... Un componente es un elemento de software que encapsula una serie de funcionalidades. Un componente es una unidad independiente , que puede ser utilizado en conjunto con otros componentes para formar un sistema más complejo .
  • 26. Cada componente de un sistema puede verse como un paquete o módulo
  • 27. Un componente esta compuesto por elementos que pueden ser clases y/o recursos complementarios como archivos de configuración, imágenes, entre otros. Y a su vez esas clases y recursos pueden están agrupados dentro del componente en subpaquetes , de acuerdo a su naturaleza o necesidades de negocio.
  • 28. En este punto visualizamos varios conceptos que podemos presentar de la siguiente forma… Aplicación Niveles Capas Componentes Paquetes Clases Sub paquetes Otros Recursos
  • 29. Hablar de clases en este punto, nos hace recordar que debemos hacer un recuento nuestros conocimientos sobre programación orientada a objetos , ya que la construcción de componentes esta basada es los mismos principios y/o características con las que cumple este conocido paradigma
  • 30. … la modularidad y la reusabilidad Qué son? Recordemos lo más básico … Los principios que dirigen la orientación a objetos son
  • 31. En términos simples la modularidad significa trabajar por partes … (de hecho, tal cual como lo plantea el desarrollo por componentes)
  • 32. Y la reusabilidad significa No se invente la rueda! Lo que ya esta hecho es para usarse y algunas de las cosas que no están hechas, deben construirse pensando en que alguien necesitará usarlo alguna vez
  • 33. Que es una clase ? Que es un objeto ? Que es un mensaje ? Que son atributos , características o propiedades ? Que son métodos , procedimientos , funciones o servicios ? Que significa que un objeto esta compuesto por una interfaz , una implementación y un estado ? Veamos, que tanto recordamos…
  • 34. Que es abstracción , encapsulamiento , polimorfismo , herencia ? Después de este repaso avancemos un poco más Si en este punto se encuentra un poco confundido, recuerde mi consejo, no profundice más hasta no entender claramente los conceptos mencionados
  • 35. Los componentes igual que los objetos deben cumplir con dos características importantes la alta cohesión y el bajo acoplamiento … que tan claros son?….
  • 36. Cuando decimos que un componente tiene una alta cohesión hablamos de que todos los elementos dentro de el están estrechamente relacionados … el criterio de relación debe ser de negocio o técnico y no subjetivo
  • 37. Cuando decimos que un componente tiene una bajo acoplamiento hablamos del nivel de independencia que tiene un componente con respecto a otros … esta independencia se refiere al grado en que un componente puede funcionar sin recurrir a otros y se refiere a relaciones de acoplamiento diferentes a la funcional o arquitectónica…
  • 38. Tener estas dos metas en mente durante la construcción de componentes , ahorrará trabajo y tiempos de desarrollo a los equipos y proyectos … si reconocemos el valor de la ingeniería de software, entenderemos lo que esto significa…
  • 39. Los componentes desarrollados satisfacen una necesidad asociada a una o varias partes de una aplicación, y son separados de acuerdo a su uso o a por una agrupación lógica que determina la relación entre ellos.
  • 40. El paradigma básico de la separación por capas establece al menos 3 partes distintas dentro de una aplicación La Presentación La Lógica de Negocio El Acceso a Datos y los Datos Ahora bien…
  • 41. Veamos entonces que significan cada una de estas partes …
  • 42. La Presentación o interfaz de usuario se refiere al mecanismo de interacción del usuario con el sistema Los tipos de interfaces de software más comunes son las aplicaciones de ventanas y web Los tipos de interfaces de hardware más comunes son el ratón, el teclado, el micrófono, pantallas táctiles, dispositivos de audio
  • 43. La Lógica de Negocio refiere el conjunto de reglas que determinan específicamente como funciona un sistema, según su naturaleza , y bajo que parámetros y condiciones de acuerdo a las necesidades de los clientes y usuarios .
  • 44. El acceso a datos refiere al medio a través del cual podemos acceder y manipular los datos persistentes de un sistema El almacenamiento de datos refiere a la forma en que se encuentran guardados dichos datos, por ejemplo, en archivos o bases de datos .
  • 45. Después de conocer estos conceptos básicos, podemos pasar entonces a ver, los diferentes tipos de aplicación Aplicaciones Monolíticas Aplicaciones Cliente/Servidor Aplicaciones de 3 Capas Aplicaciones de N Capas … veamos unas definiciones básica sobre estas
  • 46. Una aplicación monolítica o de una capa es aquella cuya interfaz, lógica de negocio y acceso a datos se encuentran mezclados o altamente acoplados, esto dificulta que pueda hacerse una separación lógica y física donde alguna de las partes pueda ser reutilizable.
  • 47. Una aplicación Cliente/Servidor o aplicación de dos capas es aquella donde los datos y la lógica de negocio se encuentran separados de la interfaz, este tipo de aplicación también es denominada, cliente liviano .
  • 48. Otro escenario válido para una aplicación Cliente/Servidor , se da separando los datos de la interfaz y la lógica de negocio, este tipo de aplicación también es denominado, cliente pesado.
  • 49. Una aplicación 3 capas es aquella donde la interfaz, la lógica de negocio, el acceso a datos y los datos se encuentran separados.
  • 50. Es muy importante entender, que la separación de la que se habla no es necesariamente física , como ya se había dicho antes, la primera separación que se da es lógica y debemos reiterar que la separación lógica es programática .
  • 51. “ Es muy tentador para los desarrolladores mezclar una o más capas ; por ejemplo implementando alguna validación u otro proceso de negocios dentro de la capa de presentación en vez de en la capa de lógica de negocio, ….”
  • 52. Sin embargo ubicar la lógica de programación en las capas adecuadas , es más un comportamiento que debería ser inherente al trabajo como programador, obviamente uno que este interesado en hacer su trabajo, bien hecho. Los problemas que conllevan la mala separación de la lógica de programación , no son inmediatos, sus efectos se verán muy seguramente en el transcurso de la evolución de las aplicaciones.
  • 53. Y pues para hacer un trabajo bien hecho, hay que reconocer que las consideraciones asociadas al desarrollo por capas… Veamos cada una de ellas y enumeremos algunas consideraciones iniciales…
  • 54. Que consideraciones deberíamos tener en cuenta cuando pensamos en la Capa de Presentación ?
  • 55.  
  • 56.  
  • 57. Y las consideraciones de la Capa de Lógica de Negocios ?
  • 58. Es mucho más que una cuestión de gusto, hay que pensar en los costos, la productividad, portabilidad e interoperabilidad entre muchos otros factores… Solo por mencionar los más populares…
  • 59. Y las consideraciones de la Capa de Acceso a Datos ?
  • 60. Nuevamente solo por mencionar los más usados…
  • 61. Bueno y si ya están separadas las 3 capas principales, que es entonces una de aplicación de N capas ?
  • 62. Pues bien, la evolución de la tecnología y las redes de comunicaciones , hacen que cada día se generen nuevos escenarios de intercambio de información entre empresas , y entre los mismos sistemas existentes dentro de las empresas, de forma que se satisfagan las necesidades constantes y cambiantes de clientes y usuarios, para quienes debe resultar transparente el obtener información de un sistema u otro.
  • 63. Otra de las razones importantes por las que surge este concepto, es debido a que en la evolución del desarrollo de software, se ha identificado la necesidad de crear nuevas capas, especializadas en funciones especificas , diferentes a las 3 identificadas previamente. Tal es el caso de la seguridad, el control de excepciones, el transporte de datos entre capas, la generación de trazas de errores , entre otros.
  • 64. Este por ejemplo es la propuesta de Microsoft para una aplicación distribuida y que como vemos tiene más de 3 capas … Sin estrés, no hemos pasado de la tierra al cielo, con el tiempo iremos entendiendo que significa todo esto
  • 65. Ya que hemos hecho énfasis en el significado del desarrollo o distribución de la lógica de programación y recursos del sistema por capas , continuemos hablando de los componentes .
  • 66. Hay componentes de diferentes tipos Ejecutables, Páginas Web, Librerías, Controles, Procedimientos Almacenados, Servicios Web… … ahora bien…
  • 67. Los ejecutables refieren programas o aplicaciones de escritorio que corren sobre un sistema operativo
  • 68. Una pagina web es una fuente de información adaptada para la World Wide Web (WWW), que es accesible mediante un navegador de Internet y normalmente forma parte de un sitio web. Wikipedia
  • 69. Las librerías refieren bibliotecas o conjunto de clases que contienen lógica de programación implementada como servicios que pueden ser utilizados desde otras librerías o aplicaciones
  • 70. Los controles refieren librerías de tipo grafico que pueden ser usada en la construcción de interfaces de usuario.
  • 71. Un servicio web (en inglés Web service ) es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones Wikipedia Suena complicado verdad? … no hay problema, este tema lo ampliaremos más adelante!
  • 72. Lo que debemos saber inicialmente sobre los servicios web es que actualmente son la forma mas popular de comunicación entre niveles, que si recordamos, refiere a entornos separados e incluso de tecnologías diferentes .
  • 73. Tratemos de simplificar lo que acabamos de leer… Generalmente las aplicaciones exponen a los usuarios una interfaz gráfica que permite interactuar con los datos de un negocio. Los servicios web son un tipo de aplicación que permite exponer servicios ( métodos, procedimientos ) existentes en clases o librerías clases, a través de los cuales se accede a la lógica de negocio que ofrece un sistema, este es el mecanismo más comúnmente utilizado actualmente para compartir información entre empresas.
  • 74. Estos son los conceptos iníciales , entenderlos y apropiarse de su manejo nos garantizará entender su detalle y los temas que vienen más adelante, pero antes de terminar veamos una aclaración…
  • 75. Importante! No es lo mismo hablar de una aplicación distribuida y un sistema distribuido
  • 76. Un sistema distribuido se define como: Una colección de computadores separados físicamente y conectados entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema Wikipedia
  • 77. Es el caso del conocido buscador de Google , el cual funciona utilizando una red de computadores que realizan simultáneamente las búsquedas solicitadas por un usuario, sin que el usuario perciba siquiera que esto esta sucediendo . Una razón importante para la existencia de los sistemas distribuidos tiene que ver con la limitación de recursos del hardware .
  • 78. A pesar de actualmente contamos con altos niveles de procesamiento en el hardware disponible, estos niveles son limitados en recursos, es decir en capacidad de procesamiento, memoria, ancho de banda , entre otros criterios. Esta situación hace que los arquitectos de software , tengan que implementar estrategias en donde mas de un servidor atiende las solicitudes de los sistemas que tienen por ejemplo muchos usuarios accediendo de forma concurrente al mismo sistema .
  • 79. Un aplicación distribuida puede requerir ser implementada como un sistema distribuido, sin embargo esta condición no es indispensable, puesto que está determinada por necesidades específicas para tipos de aplicaciones y/o escenarios en los que priman principalmente factores como la escalabilidad horizontal y el desempeño … estas ultimas refieren calidades sistémicas, temas que veremos más adelante…
  • 80. Nos vemos en la próxima! Ciao