Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Presentacion Evolucion De Las Tecnologias

3,244 views

Published on

  • Be the first to comment

  • Be the first to like this

Presentacion Evolucion De Las Tecnologias

  1. 1. TECNOLOGICO DE ESTUDIOS SUPERIORES DE CUAUTITLAN IZCALLI<br />Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas <br />
  2. 2. INTERFAZ DE USUARIO<br />
  3. 3. INTERFAZ DE USUARIO<br /><ul><li>Cuando una persona tiene que usar y controlar una maquina, un dispositivo electrónico o un equipo informático, lo hace a través de lo que se llama una interfaz de usuario. La tecnología de interfaz de usuario, al igual que el hardware, ha pasado por una serie de generaciones [TESLER, 1991]. Estas generaciones contienen o parecen contener a las anteriores, y se pueden clasificar cronológicamente como sigue [NIELSEN, 1993]:</li></li></ul><li><ul><li>Hasta 1945:se hacía acceso directo de forma manual al hardware.
  4. 4. 1945-1955:programación en modo catch o por lotes. La primera generación de interfaces no era interactiva, ya que la interacción entre el sistema y el usuario se restringía a un único punto en el tiempo.Se recomienda que tales modos catch proporcionen alguna opción al usuario para controlar continuamente el progreso del trabajo catch, de forma que pueda interrumpir o modificar el trabajo. Es muy frustrante tener un trabajo grande ejecutándose y que, cuando vaya a finalizar, tenga que descartarse porque se debería haber modificado el último mandato. Actualmente estas interfaces han tenido un renacimiento en los sistemas de acceso por medio del intercambio de mensajes de correo electrónico.</li></li></ul><li><ul><li>1955-1965:lenguajes de mandatos. También denominadas interfaces en línea. Los sistemas de tiempo compartido se inventaron alrededor de 1960 como un medio para permitir a varios usuarios tener acceso simultáneo interactivo a un único servidor [LEE et al., 19921. Éstas eran básicamente interfaces de una dimensión, en las que el usuario sólo podía interactuar con el ordenador en una línea que servía como línea de mandato. Cuando el usuario pulsaba la tecla de antro (Retorno o Entre), no se podía modificar la entrada. De forma similar, cuando el ordenador presentaba una salida al usuario, no se podía modificar para reflejar cambios en los datos. La interacción se limitaba a diálogos pregunta respuesta</li></li></ul><li><ul><li>1980-1995:ventanas, iconos, menús y ratón. También denominadas interfaces gráficas de usuario.
  5. 5. La mayoría de las interfaces actuales de usuario pertenecen a esta categoría, a veces denominada sistemas WIMP (Windows, Iconos, Menús and Pontín de vice). Las interfaces Windows añaden casi una tercera dimensión a las dos dimensiones inherentes a cada ventana debido a la posibilidad de superponer ventanas (está claro que superponer ventanas no es verdaderamente una tercera dimensión, ya que no es posible ver el contenido de la ventana que está debajo, por tanto, podríamos decir que tienen “dos dimensiones y media”). El estilo de interacción utilizado en muchas interfaces gráficas de usuario es la manipulación directa [SHNEIDERMAN, 1983], la cual se basa en la representación visual de los objetos del diálogo que tengan interés para el usuario. Esto permite al usuario controlar el diálogo con sólo mover los objetos por la pantalla y manipularlos con el ratón. Sin embargo, las interfaces de manipulación directa pueden resultar más difíciles de utilizar que las tradicionales, debido a que son más dependientes de un control fino sobre el ratón.</li></li></ul><li>1995-Futuro: interfaces no basadas en mandatos. Las formas comunes de añadir una dimensión a las interfaces de usuario consisten en añadir tiempo (en forma de animación), sonido o voz, así como una verdadera tercera dimensión espacial en forma de sistemas de realidad virtual. Las dos predicciones más fáciles con respecto a la siguiente generación de interfaces de usuario son que incluirán una dimensional dad más alta con más tipos de medios y que serán altamente portables y personales, a la vez que se utiliza tecnología de comunicaciones para conseguir una gran conectividad. Todos los estilos de interfaz hasta ahora han tenido en común, al menos, el concepto de mandato, y se basaban en el principio de un diálogo explícito entre el usuario y el ordenador en el que el usuario ordenaba al ordenador que hiciese ciertas acciones específicas. En estos sistemas futuros, el ordenador se encargará de tomar la responsabilidad de la interacción, basando sus acciones en sus observaciones del usuario, utilizando tecnologías como el seguimiento del ojo, reconocimiento de gestos y análisis sema-inteligente de las acciones del usuario.<br />
  6. 6.
  7. 7. EVOLUCION DE LAS TECNOLOGIAS PARA APLICACIONES DISTRIBUIDAS<br /><ul><li>APLICACION</li></li></ul><li>CAPA DE APLICACIÓN OSI<br />Aplicaciones independientes del sistema que soportan usuarios reales<br />o programas de aplicación.<br />ISO 9545<br />La Entidad de Aplicación trata con los<br />ServiciosOSI y las comunicaciones<br />(capa de presentación).<br />Se define en términos de:<br />• ASEs (ApplicationServiceElements),<br />• ASOs (AssociationServiceObjects) y<br />• CFs (Control Functions)<br />
  8. 8. Entidad de Aplicación:<br />– Representa el conjunto de<br />capacidades de comunicación de un<br />proceso de aplicación en particular,<br />por ejemplo su capacidad de<br />intercambiar archivos o mensajes<br />– Está formado por un conjunto de<br />ASEs<br />• Asociación de las entidades de<br />aplicación:<br />– Como una conexión en OSI se define<br />como un servicio al usuario (capa<br />superior), la capa de aplicación no<br />tiene conexiones, sino que sus<br />entidades establecen<br />ASOCIACIONES (relaciones<br />cooperativas) para intercambiar<br />información entre ellas de APDU’s<br />sobre la capa de presentación<br />
  9. 9. ASE (AssociationServiceElement):<br />– Son los componentes básicos de la<br />entidad.<br />– Sirven a un propósito específico de<br />comunicación o intercambio<br />– Cada ASE se define por un servicio y un<br />protocolo<br />– Las ASE’s se combinan de diferentes<br />formas para formar diferentes entidades<br />de aplicación.<br />• ASO (AssociationServiceObject):<br />– Es un componente compuesto de una<br />entidad que contiene una o mas ASEs y/o<br />ASOs con una función de control (CF)<br />(encapsulamiento de ASEs).<br />• CF (Control Function):<br />– Es el control del dialogo para el<br />intercambio entre los pares y la<br />administración de la asociacion<br />
  10. 10. Ejemplos<br />Soprtes de red<br />Obtencion e interrupcion de una conexión<br />Servidor de dominacion de dominio<br />De internet<br />Correo electronico<br />DNS<br />
  11. 11. telnet<br />Transferencia de archivo<br />Trasferencia de hipertexto<br />
  12. 12. EVOLUCION DE LAS <br />TECNOLOGIAS DE LAS<br />BASES DE DATOS<br />CONTRERAS SANCHEZ LINDA IRAIS<br />HUERTA CAMACHO ANA KAREN<br />LOPEZ RODRIGUEZ EDUARDO MOISES<br />MONTOYA ROMERO NELLY JAZMIN<br />
  13. 13. La sofisticación de la tecnología moderna de las bases de datos es el resultado de la evolución que a lo largo de varias décadas ha tenido lugar en el procesamiento de los datos y en la gestión de la información. La tecnología de acceso a datos se ha desarrollado desde los métodos primitivos de los años 50 hasta los potentes e integrados sistemas de la actualidad, esto es concebido por las necesidades, demandas y oportunidades de la administración y, de otro, restringida por las limitaciones de la tecnología.<br />
  14. 14. Los primeros sistemas de procesamiento de datos ejecutaron las tareas administrativas para reducir el papeleo. En la actualidad estos sistemas se han dirigido hacia la producción y la gestión de la información, esto se ha convertido en un recurso vital para las compañías y globales.<br />Actualmente, la función mas importante de los sistemas de bases de datos es proporcionar el fundamento a los sistemas de información para la gestión corporativa.<br />
  15. 15. Principalmente los cambios tecnológicos han surgido por las necesidades genuinas de la sociedad, los negocios y la economía principalmente. La administración solamente permitirán que exista un nuevo sistema cuando se reduzca el costo del sistema anterior.<br />Las nuevas tecnologías tales como las Bases Orientadas a Objetos y la plataforma Cliente/Servidor platean nuevos problemas mas versátiles que darán lugar a sistemas mas potentes en el futuro. Hay un estrecha relación entre las tecnologías de bases de datos y las necesidades de las empresas para facilitar sus tareas.<br />
  16. 16. Una clasificación de los modelos de datos son:<br /><ul><li>Modelo relacional
  17. 17. Base de datos relacional
  18. 18. Modelo entidad-relación
  19. 19. Base de datos jerárquica
  20. 20. Base de datos en red</li></li></ul><li>Comunicación de datos<br />
  21. 21. Redes de área amplia ( Wan ) <br />Son todas aquellas que cubren una extensa área geográfica .Son generalmente una serie de dispositivos de conmutación interconectados . <br />
  22. 22. Conmutaciónón de circuitos<br /> En estas redes se establece un camino a través de los nodos de la red dedicado a la interconexión de dos estaciones. En cada enlace, se dedica un canal lógico a cada conexión.<br />
  23. 23. Conmutación de paquetes<br />En cada nodo, el paquete se recibe totalmente, se almacena y seguidamente se transmite al siguiente nodo.<br />
  24. 24. Retransmisión de tramas<br />Al conseguir con la nueva tecnología una tasa de errores muy pequeña y una velocidad de transmisión elevada, no es necesario adjuntar mucha información de cabecera a cada paquete y por tanto las velocidades de transmisión son elevadísimas comparadas con el sistema de conmutación de paquetes .<br />
  25. 25. Modo de transferencia asíncrona<br />En retransmisión de tramas se usan paquetes de tamaño variable y en ATM se usan paquetes de tamaño fijo , con lo que se ahorra información de control de cada trama y por tanto se aumenta la velocidad de transmisión ( cada paquete se llama aquí "celda" ) . En este sistema , se dedican canales virtuales de velocidades de transmisión adaptables a las características de la transmisión ( es parecido a la conmutación de circuitos ) .<br />
  26. 26. RDSI y RDSI de banda ancha <br />Es un sistema de transmisión de enfoque universal y de velocidad de transmisión muy rápida . Está basado en conmutación de circuitos ( banda estrecha ) y en conmutación de paquetes ( banda ancha ) .<br />
  27. 27. Redes de área local ( LAN )<br />Son de cobertura pequeña.<br />velocidades de transmisión muy elevadas.<br /> utilizan redes de difusión en vez de conmutación.<br /> no hay nodos intermedios .<br />
  28. 28. <ul><li>Fausto Loja Mora</li></ul>Aplicaciones en Capas<br />
  29. 29. Aplicaciones en capas<br />El modelo de aplicaciones en capas, permite que las aplicaciones puedan ser distribuidas en sus componentes<br />
  30. 30. Ventajas<br /><ul><li>Desarrollos paralelos (en cada capa)
  31. 31. Aplicaciones más robustas debido al encapsulamiento </li></ul> <br /><ul><li>Mantenimiento y soporte más sencillo (es más sencillo cambiar un componente que modificar una aplicación monolítica) </li></ul> <br /><ul><li>Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al sistema de nueva funcionalidad) </li></ul> <br /><ul><li>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.</li></li></ul><li>Características<br />Acceso a bases de datos (BD)<br />Normalmente con BD relacionales<br />Escalables<br />Deberían poder soportar más carga de trabajo sin necesidad de modificar el software (sólo añadir más máquinas)<br />Disponibilidad<br />Idealmente no deben dejar de prestar servicio<br />
  32. 32. Características<br /><ul><li>Seguras
  33. 33. No todos los usuarios pueden acceder a la misma funcionalidad
  34. 34. Integración
  35. 35. Es preciso integrar aplicaciones construidas con distintas tecnologías
  36. 36. Tipo de interfaz
  37. 37. De entorno de ventanas (clientes desktop): normalmente sólo tiene sentido en intranets.
  38. 38. Web: En Internet y en intranets.</li></li></ul><li>Características<br /><ul><li>Separación clara entre la interfaz gráfica y la Capa de componentes
  39. 39. Capa de componentes: encapsulan la lógica de negocio.
  40. 40. Ejemplo => aplicación bancaria
  41. 41. Capa de componentes: conjunto de clases que nos permiten: crear cuentas, destruirlas, encontrarlas por distintos criterios, hacer transferencias bancarias, etc.
  42. 42. La capa de componentes debería ser reusable con distintas interfaces gráficas
  43. 43. En el ejemplo de la aplicación bancaria podría haber dos clientes: uno Web y otro desktop.</li></li></ul><li>Características<br /><ul><li>Transaccionales
  44. 44. Propiedades ACID (Atomicity-Consistency-Isolation-Durability)
  45. 45. Operaciones atómicas (Atomicity) son operaciones que se completan en su totalidad o no se completan en absoluto. Así, en el ejemplo anterior de la transferencia tanto el crédito como el débito deben haber sido exitosos para que el estado de transformación sea exitoso (para que haga efectos), de otro modo el estado de la transformación falla, y el sistema es regresado a su último estado conocido.
  46. 46. Transformaciones consistentes (Consistency) preservan la integridad interna de los recursos involucrados. Por ejemplo, el borrar registros de una tabla primaria viola la integridad referencial de la base de datos si hay registros relacionados que concuerden.
  47. 47. Transformaciones aisladas (Isolation) parecen ocurrir serialmente, una detrás de otra, creando la ilusión de que ninguna transformación está siendo ejecutada al mismo tiempo.
  48. 48. La durabilidad (Durability) se refiere a la habilidad para almacenar los resultados de una transformación de estado, usualmente en un disco, de tal modo que los resultados de una transformación puedan ser recuperados en caso de una falla del sistema.</li></li></ul><li>Aplicaciones de 1 capa<br />
  49. 49. Aplicaciones de 2 capas<br />
  50. 50. Aplicaciones de 3 capas<br />
  51. 51. Presentación<br />La capa de servicios de presentación es responsable de:<br />Obtener información del usuario. <br />Enviar la información del usuario a los servicios de negocios para su procesamiento. <br />Recibir los resultados del procesamiento de los servicios de negocios. <br />Presentar estos resultados al usuario.<br />
  52. 52. Negocio<br /><ul><li>El nivel de servicios de negocios es responsable de:
  53. 53. Recibir la entrada del nivel de presentación.
  54. 54. Interactuar con los servicios de datos para ejecutar las operaciones de negocios para los que la aplicación fue diseñada a automatizar (por ejemplo, la preparación de impuestos por ingresos, el procesamiento de ordenes y así sucesivamente).
  55. 55. Enviar el resultado procesado al nivel de presentación.</li></li></ul><li>Datos<br />El nivel de servicios de datos es responsable de:<br />Almacenar los datos. <br />Recuperar los datos. <br />Mantener los datos. <br />La integridad de los datos.<br />
  56. 56. Aplicaciones de 3 capas<br />
  57. 57. Aplicaciones de N capas<br />
  58. 58. Arquitectura PAG<br />
  59. 59. Capa de Presentación<br /><ul><li>UI Components
  60. 60. Muestran información al usuario, generalmente se usan en ventanas o páginas (user components, server components)
  61. 61. UI Process Components
  62. 62. Implementan procesos de UI
  63. 63. Se pueden reutilizar desde distindos UI components y distintas capas de presentación</li></li></ul><li>Capa de Presentación<br /><ul><li>Model View Controller</li></ul>User<br />View<br />Model<br />Controller<br />
  64. 64. Capa de Presentación<br /><ul><li>Model View Controller
  65. 65. Tiene algunos “problemas” en su implementación:
  66. 66. Concepto de Proceso
  67. 67. Responsabilidad de navegación
  68. 68. Hace falta intercambiar más información entre el Controller y la View</li></li></ul><li>Demo UIP<br />
  69. 69. Capa de Lógica de Negocio<br />
  70. 70. Capa de Lógica de Negocios<br /><ul><li>Service Interface
  71. 71. Solo una capa de acceso a la lógica de negocio
  72. 72. Expuesta generalmente con WebServices o Remoting
  73. 73. Se pueden usar otras formas de acceso: BizTalk, Message Queue, etc.
  74. 74. Al ser el punto de acceso a toda la capa de negocio, por lo tanto se utiliza para implementar todos los servicios globales:
  75. 75. Transacciones, Seguridad, Monitoreo, Caching, etc.</li></li></ul><li>Capa de Lógica de Negocios<br /><ul><li>Demo de Service Interface
  76. 76. MBI es una implementación de Service Interface
  77. 77. Usando Remoting</li></li></ul><li>Capa de Lógica de Negocios<br /><ul><li>Business Entities
  78. 78. Son objetos solo con propiedades para mantener una instancia en memoria.
  79. 79. Deben soportar la distinción entre una instancia y un conjunto de instancias.
  80. 80. “Pueden” mapearse con las tablas de la base de datos, si la base está bien modelada.
  81. 81. El assembly en el que se definen se encuentra en Business Layer y Presentation Layer
  82. 82. Hay varias formas de implementar esto:
  83. 83. Datasets, Typed Datasets o Custom Objects
  84. 84. Discusión sobre este tema en “Designing Data Tier Components and Passing Data Through Tiers”</li></li></ul><li>Capa de Lógica de Negocios<br /><ul><li>Business Components
  85. 85. Son objetos que definen solo métodos que se ejecutan en el contexto de un Business Entity.
  86. 86. FacturaBO.AplicarDescuento( factura, descuento )
  87. 87. ClienteBO.ValidarCredito( cliente, monto, plazo )
  88. 88. Alunos métodos requieren acceder a la base de datos.
  89. 89. Porque están separados?
  90. 90. Separación de assemblies. Porque las entidades se usan en Business Layer y Presentation Layer, mientras que los Business Components solo están en Business Layer.
  91. 91. Es la única forma si se usan DataSets.
  92. 92. Evitar la propagación de la lógica de negocio.</li></li></ul><li>Capa de Lógica de Negocios<br /><ul><li>Business Workflow
  93. 93. Hay métodos que no pertenecen a ningún objeto. :S
  94. 94. Facturar( Vendedor, Cliente, Items[] )
  95. 95. Estos métodos se pueden “agrupar” en objetos o tener un objeto por método.
  96. 96. Idealmente
  97. 97. Hay un método de Service Interface por cada Business Workflow, pero hay métodos de la Service Interface que usar directamente los Business Object
  98. 98. Aunque
  99. 99. Si la Service Interface tiene “hardcoded” un método de Business Workflow un cambio, tiene impactos no deseados.</li></li></ul><li>Capa de Lógica de Negocios<br /><ul><li>Y donde programo …?
  100. 100. Validaciones
  101. 101. Locales
  102. 102. Globales
  103. 103. Formateo
  104. 104. Valores calculados (ej: Edad, Factura.Total)
  105. 105. ……</li></li></ul><li>Capa de Datos<br /><ul><li>Data Access Logic Components
  106. 106. Objetos sin comportamiento que solo saben guardar un Business Entity en la base de datos.
  107. 107. Generalmente son clases con métodos estáticos.
  108. 108. Utilizan alguna forma de acceso a datos simplificado como Data Access Application Block.
  109. 109. Debe ser una única clase que sea llamada por el Business Component de forma que no se tenga en cuenta el origen de los datos.
  110. 110. Realiza todas las conversiones y validaciones necesarias que estén relacionadas con el modelo de base de datos.</li></li></ul><li>Capa de Datos<br />User<br />View<br />Model<br />Controller<br />
  111. 111. Capa de Datos<br /><ul><li>Data Access Logic Components</li></ul>Database<br />DALC<br />Business<br />Entity<br />Business<br />Component<br />
  112. 112. Capa de Datos<br /><ul><li>Se puede implementar:
  113. 113. Escribiendo código ADO.NET para cáda método de cada objeto: Create, Open, Update, Delete, Find.
  114. 114. Usando SqlDataAdapter, si se usan DataSets como Business Entities.
  115. 115. Alguna herramienta de Object Relational Mapping.
  116. 116. Demo</li></li></ul><li>Demo Mini-Distributed App<br />
  117. 117. Capa de Datos<br /><ul><li>Data Access Application Block
  118. 118. Versión 1.0
  119. 119. Una sola clase con con todos métodos estáticos que soporta los siguientes features: ExecuteReader, ExecuteDataSet, ExecuteNonQuery, ExecuteXmlReader, cache de parámetros y discovery.
  120. 120. Versión 3.0
  121. 121. Una clase abstracta con los siguientes métodos: v1.0 más, FillDataSet, UpdateDataset. Execute_____TypeParams.
  122. 122. Todos los métodos están programados usando las interfaces de ADO.NET. Se usan proveedores muy simples para devolver las clases propias de cada driver ADO.NET.</li></li></ul><li>Capa de Datos<br /><ul><li>Data Sources
  123. 123. Representan los origenes de datos OLTP
  124. 124. Solo son accedidos por la capa DALC
  125. 125. Service Agents
  126. 126. Conectores para acceso a una fuente de datos externa
  127. 127. Generalmente son asincrónicos realizan una fuerte conversión de datos
  128. 128. External Services
  129. 129. Sistemas externos generalmente Batch que se acceden en forma sincrónica o asincrónica.
  130. 130. La conectividad puede estar apoyada por alguna tecnología de Store-and-Forward.</li></li></ul><li>Capa de Datos<br /><ul><li>Demo de Service Agent</li></li></ul><li>Capa de Infraestructura<br /><ul><li>Son servicios para las aplicaciones
  131. 131. Dado que no pertenecen a ninguna capa, se definen por fuera aunque en algunos casos se implementen o usen en alguna capa.
  132. 132. Son los siguientes:
  133. 133. Seguridad
  134. 134. AuthZ, AuthN, Comunicación segura, Aditoría, Manejo de Perfiles.
  135. 135. Operaciones
  136. 136. Manejo de excepciones, Monitoreo, Execución asincrónica, Metadatos, Configuración.
  137. 137. Comunicaciones
  138. 138. Formato, Protocolo, Asincronismo.</li></li></ul><li>Seguridad<br /><ul><li>Autenticación.
  139. 139. Generalmente se utiliza el soporte de la plataforma, en Windows: SSPI(Kerberos, NTLM), Passport, etc.
  140. 140. Para aplicaciones Web se usa el soporte de IIS
  141. 141. Aunque se puede implementar un soporte liviano basado en Forms y cookies.
  142. 142. Ver
  143. 143. “Improving Web Application Security: Threats and Countermeasures”
  144. 144. “Authentication in ASP.NET: .NET Security Guidance”
  145. 145. “Building Secure ASP.NET Applications”.
  146. 146. Autorización
  147. 147. Dado que basarse en el soporte de la plataforma es muy complicado, se desarrolla este soporte para la aplicación.
  148. 148. Ver “Designing Application-Managed Authorization”</li></li></ul><li>Seguridad<br /><ul><li>Comunicación segura
  149. 149. En .NET la comunicación está basada en Remoting, WebServices o algún tipo de comunicación propietaria.
  150. 150. Nuevamente se puede utilizar el soporte de base, sea SSL (WebServices), o algún canal seguro de Remoting (NamedPipes).
  151. 151. Es un problema de la capa de Service Interface
  152. 152. Aditoría
  153. 153. Registro de las operaciones realizadas:
  154. 154. Tecnico
  155. 155. Lógico
  156. 156. Manejo de Perfiles
  157. 157. Concepto de usuario de la aplicación que contiene configuración.
  158. 158. Todas las capas colaboran, soportada en conjunto con la Autorización.</li></li></ul><li>Operaciones<br /><ul><li>Manejo de excepciones
  159. 159. Registro de todas las excepciones
  160. 160. Dos tipos de excepciones (idea de MBI)
  161. 161. Tecnicas
  162. 162. Funcionales
  163. 163. Usar la InnerException
  164. 164. Usando Exception Management Application Block (EMAB) o Log4Net
  165. 165. Ver “Exception Management in .NET”
  166. 166. Responsabilidad de la capa Service Interface</li></li></ul><li>Exception Management Application Block<br />
  167. 167. Operaciones<br /><ul><li>Monitoreo
  168. 168. Control de la aplicación mientras está en ejecución
  169. 169. Performance Counters
  170. 170. WMI
  171. 171. Responsabilidad de la capa Service Interface
  172. 172. Ver “Monitoring in .NET Distributed Applications Design”
  173. 173. Execución asincrónica
  174. 174. Soportado internamente (Remoting Asincrónica) o externamente (MSMQ).
  175. 175. Se puede desarrollar un soporte genérico
  176. 176. Ver “Asynchronous Invocation Application Block”</li></li></ul><li>Operaciones<br /><ul><li>Metadatos
  177. 177. “Información sobre la información o la estructura del software”
  178. 178. Se puede usar en
  179. 179. Tiempo de diseño: generación de código
  180. 180. Tiempo de ejecución: aspectos estáticos (deployment, configuración, seguridad, etc)
  181. 181. Integración. Si se usan DataSets se pueden publicar los XSD de forma que el modelo de datos sea público. (Idea de MBI)</li></li></ul><li>Operaciones<br /><ul><li>Configuración
  182. 182. Configuración disponible en toda la aplicación.
  183. 183. Generalmente hay dos tipos
  184. 184. Capa de presentación
  185. 185. Ubicación de la capa de lógica (Remoting, WebService), propiedades de seguridad de Web o Windows, etc.
  186. 186. Capa de lógica y de datos.
  187. 187. Coneción a la base de datos, exposición de servicios, parámetros de seguridad, etc
  188. 188. Se puede implementar como un Singleton, con una clase aprovechando XmlSerialization.
  189. 189. Ver “Configuration Management Application Block” </li></li></ul><li>Operaciones<br /><ul><li>Demo Configuration Management Application Block</li></li></ul><li>Comunicaciones<br /><ul><li>Muy basado en las opciones de Remoting y WebServices
  190. 190. Puntos que se pueden configurar
  191. 191. Formato
  192. 192. Binario, SOAP, Custom Xml, Custom Binary.
  193. 193. Protocolo
  194. 194. HTTP, TCP, BiDirectional TCP, NamedPipes, SMTP, Jabber, IM, etc</li></li></ul><li>Comunicaciones<br /><ul><li>Intra-aplicación
  195. 195. Inter-aplicación</li></li></ul><li>Requerimientos comunes<br /><ul><li>Caching
  196. 196. Puede ser necesario en todas las capas
  197. 197. Presentación
  198. 198. Lógica
  199. 199. Datos
  200. 200. Soluciones
  201. 201. ASP.NET. Caching ASP.NET
  202. 202. Caching Application Block
  203. 203. Warnings
  204. 204. Sincronización en ambientes distribuidos
  205. 205. Soluciones: TTL o Metadatos
  206. 206. Mantenimiento
  207. 207. Flush, Disable, Failover</li></li></ul><li>Requerimientos comunes<br /><ul><li>Balanceo de Carga / Alta disponibilidad
  208. 208. Network Load Balancer.
  209. 209. Con WebServices 100% soportado
  210. 210. Con Remoting solo SingleCall
  211. 211. Basado en el servidor
  212. 212. Balanceo estadístico genérico
  213. 213. Custom ClientChannelSink
  214. 214. Que soporte un balanceo desde el cliente, itera por un listado de servidores cambiando el URI.
  215. 215. Puede ser un balanceo “inteligente”</li></li></ul><li>Requerimientos comunes<br /><ul><li>Concurrencia
  216. 216. Buscar una opción para mantener la concurrencia de datos
  217. 217. Dado que hay un ambiente distribuido sin estado en el servidor, hay que relajar la concurrencia de los datos = optimista.
  218. 218. Se puede usar
  219. 219. SqlDataAdapter
  220. 220. Un Object Relational Mapping tool</li></li></ul><li>Requerimientos comunes<br /><ul><li>Persistencia
  221. 221. Transacciones Distribuidas
  222. 222. Performance
  223. 223. Sesión
  224. 224. Reportes</li></li></ul><li>Requerimientos comunes<br /><ul><li>Persistencia
  225. 225. Programar los DALC puede ser bastante largo y repetitivo
  226. 226. Se pueden usar herramientas ORM
  227. 227. Generación de código usando CodeSmith, XSLT, etc.
  228. 228. Transacciones Distribuidas
  229. 229. No es un atributo del componente sino del contexto de ejecución
  230. 230. Implementar soporte transaccional en la capa de Service Interface</li></li></ul><li>Requerimientos comunes<br /><ul><li>Performance
  231. 231. Optimización del acceso a la base de datos
  232. 232. Atención al tamaño de los objetos para serializar
  233. 233. Paginación inteligente obligatoria
  234. 234. Sesión
  235. 235. Modelo totalmente state-less
  236. 236. La sesión se mantiene del Service Interface hacia adelante
  237. 237. En WinForms no hay demasiados problemas
  238. 238. En ASP.NET hay distintas opciones cada una con su costo asociado.</li></li></ul><li>Requerimientos comunes<br /><ul><li>Reportes
  239. 239. QUE PROBLEMA !!!
  240. 240. Depende de la herramienta que se use.
  241. 241. Si bien es un problema de Capa de Presentación algunas herramientas necesitan acceso directo a la base de datos.
  242. 242. Otras usan DataSets lo cual se complica si hay sets de datos muy grandes.
  243. 243. Recomendación: Sentido común.</li>

×