martes, 24 de julio de 2012

Temario Anàlisis y Diseño Orientado a Objetos (ADOO)

Temario Anàlisis y Diseño Orientado a Objetos (ADOO)

Activity 17. ADOO. Por Iván Nashua. *(O_O)*.

Activity 17. ADOO. Por Iván Nashua. *(O_O)*.
Actividades Obligatorias.
Indique cinco ejemplos de sistemas de tiempo real basados en computadora. Indique que "estimulos" alimentan al sistema y qué dispositivos o situaciones controla o supervisa el sistema.
·         Robot móvil de inspección.
·         Control automático de velocidad y posición (50 ms).
·         Lectura del láser y evitación de obstáculos (100 ms).
·         Toma de imágenes y procesamiento (1 s).
·         Reconocimiento de objetos.
Proporcione tres ejemplos en los que los semáforos sean un mecanismo apropiados de sincronización de tareas.
·         Los semáforos de colas son primitivos de software que ayudan a gestionar el tráfico. Suministran un método para dividir varias colas. Por ejemplo colas de tareas en espera de recursos, acceso a bases de datos o dispositivos, así como colas de recursos y dispositivos. Los semáforos coordinan (sincronizan) las tareas en espera con lo que estén esperando, sin dejar que las tareas o recursos interfieran entre sí.

Obtenga información sobre una o más herramientas de análisis formales para sistemas de tiempo real.
·         Cada una de las herramientas consiguen las respuestas deseadas, si los recursos del sistema consiguen las respuestas deseadas, si los recursos del sistema serán suficientemente para satisfacer los requisitos computacionales o si los algoritmos de procesamiento se ejecutaran con la velocidad suficiente.

Describa las bases de datos en tiempo real.
·         Los sistemas de tiempo real generan alguna acción en respuesta a sucesos externos. Para realizar esta función, ejecutan una adquisición y control de datos a alta velocidad bajo varias ligaduras de tiempo y fiabilidad. Debido a que estas ligaduras son muy rigurosas, los sistemas de tiempo real están frecuentemente dedicados a una única aplicación.

Actividades sugeridas.
Explique los sistemas operativos en tiempo real.
·         Es el uso de una base de datos distribuida par aplicaciones de tiempo real divide el tráfico de entrada/salida y acorta las colas de las tareas en espera, para acceder a una base de datos raramente causará el fallo del sistema entero si se construyen con redundancia.

¿Cuáles son las características de un lenguaje de tiempo real?.
·         Pasa toda aquella información al instante desde cualquier parte donde se encuentren.

Mencione los requisitos funcionales de un sistema de tiempo real.
·         Gráficos de computadoras, comunicaciones locales y de largo alcance, sistemas aeroespaciales, prueba asistida por computadora y un vasto abanico de instrumentación industrial.

Autoevaluación.
1-¿En qué consisite el diseño en tiempo real?
·         En responder al ámbito del problema en un tiempo dictado por el ámbito del problema. Debido a que el software de tiempo real debe operar bajo restricciones de rendimiento muy rigurosas, el diseño del software esta conducido frecuentemente
2-¿Qué son los sistemas de tiempo real?
·         Son sistema basado en computadora, un sistema de tiempo real debe integrar hardware, software, hombres y elementos de una base de datos, para conseguir adecuadamente un conjunto de requisitos funcionales y de rendimiento.
3-¿En qué consiste la siscronización y comunicación de tareas?
·         Consisten en un sistema de multitarea debe suministrar un mecanismo porque el que las tareas se pasen información unas a otras, así como para asegurar su sincronización. Para estas funciones, los sistemas operativos y los lenguajes con soporte de tiempo real, utilizan frecuentemente semáforos de colas, buzones o sistemas de mensajes. Los semáforos suministran sincronización y señalización pero no contienen información.

jueves, 19 de julio de 2012

Activity 16. ADOO. NashuaBros Alvarado.

Activity 16. ADOO. NashuaBros Alvarado.
Actividades Obligatorias
·         Empleando publicaciones comerciales o recursos de internet de información de fondo, defina un conjunto de criterios para evaluar herramientas para la ingeniería de software cliente/servidor.
Un sistema raíz típicamente será una gran computadora, actúa como deposito de los datos corporativos. El sistema raíz esta conectado con servidores (típicamente son estaciones de trabajo potentes, o PC) y que poseen un doble papel. Los servidores actúan para actualizar y solicitar los datos corporativos mantenidos por el sistema raíz. Además mantienen sistemas departamentales locales y desempeñan un papel clave al poner en red los PC de nivel de usuario a través de una red de área local (LAN).

·         Investigue los últimos avances en el software para trabajo en grupo y desarrolle un resumen breve.
·         Sironta, aplicación P2P para el intercambio, creación y edición de documentos que requieren trabajo en grupo.
·         Workflux.net solución para administración, distribución y control de archivos y proyectos empresariales en español.
·         eGroupWare solución de trabajo en grupo vía web, de código abierto.
·         OpenGroupWare solución de trabajo en grupo vía web, de código abierto.
·         Assembla, herramientas de colaboración online para el desarrollo de software (wikis, mensajes, archivos compartidos, integración con Gdoc, repositorios, seguimiento de tareas y defectos.
·         Zimbra Collaboration Suite solución de trabajo en grupo (en varios idiomas, soporta correo, directorio, agenda, mensajería instantánea, calendario, espacios de trabajo).
·         TalkAndWrite (software interactivo en tiempo real que simula la interacción de dos personas que trabajan una al lado de la otra en un documento en común).
·         phpgroupware (en inglés, aunque cuenta con un demo con libre acceso en el cual pueden cambiarse las preferencias a idioma español).
·         Kolab (en varios idiomas, soporta correo, directorio, agenda y nativamente interactúa con KDE).
·         MediaWiki (el programa informático que utiliza Wikipedia).
·         BSCW, entorno telemático basado en espacios compartidos de trabajo. Las siglas corresponden a "Soporte básico para trabajo cooperativo". Comercial, con licencias gratuitas para fines educativos y está traducido, entre otros idiomas, al castellano.
·         Synergeia adaptación del entorno BSCW al mundo educativo. Es gratuito y está traducido, entre otros idiomas, al español.
·         Redianet aplicación para aprovechar una sala o aula con PC en red para colaboración y la compartición de medios.
·         XMPP, sistema de mensajería instantáneo.
·         Isabel, sistema de videoconferencia distribuido y en grupo.
·         Applications Server.
·         Coneix, intranet para la gestión de proyectos implementada en PHP y MySQL.
·         Moodle, aplicación educativa; programa de gestión de cursos.
·         K3-exchange (K3x) Soluciones para mejoras de productividad que combinan tecnologías del conocimiento y colaboración.
·         Open-Xchange, plataforma software libre de colaboración inteligente con interfaz web Ajax.
·         Scalix, alternativa software libre a Microsoft Exchange con interfaz web Ajax.
·         SharePoint (K3x) Software de Microsoft, para la colaboración e interacción en equipo para los ambientes Internet, Intranet y Extranet, incluye BI-Inteligencia de negocios, chat, foros e interacción de correo, blogs entre muchas otras funcionalidades.
·         TribalOS Plataforma de colaboración basada en Jquery, disponible a través de un sistema de suscripción.
·         Google Docs Es un programa gratuito basado en Web para crear documentos en línea con la posibilidad de colaborar en grupo. Incluye un Procesador de textos, una Hoja de cálculo, Programa de presentación básico y un editor de formularios destinados a encuestas.


·         Ofrezca ejemplos de de tres o cuatro mensajes que pudieran dar lugar a una solicitud de un método de cliente mantenido en el servidor.
Los clientes en el ejemplo SIC son los browsers WWW disponibles, los cuales no se conectan directamente a la red, por el contrario se conectan a los gateways que ofrecen los proveedores de Internet, como Compuserve, mediante un módem o una línea arrendada. Entonces, los clientes recuperan streams de datos desde los servidores httpd, los interpretan, e inician acciones tales como el despliegue de documentos en la pantalla, o la ejecución de applets de Java.

Clase
Servidor
Colaboradores
  • Broker

Clase
Cliente
Colaboradores
  • Broker
Responsabilidades
  • Implementa la funcionalidad del usuario.
  • Envía solicitudes a los servidores a través del proxy de lado del cliente.
  Proxy del lado del servidor

Responsabilidades
  • Implementa servicios.
  • Se registra a sí mismo con el broker local.
  • Envía respuestas y excepciones al cliente a través del proxy del lado del servidor.
  Proxy del lado del cliente


Broker

Un broker es un mensajero, responsable de la transmisión de solicitudes de clientes a servidores, así como de la transmisión de respuestas y excepciones de servidores a clientes. Localiza al receptor de una solicitud basándose en un sistema de identificadores únicos. Ofrece API’s a clientes y servidores que incluyen operaciones para el registro de servidores, y la invocación de métodos de servidores.

Cuando llega una solicitud dirigida a un servidor que es mantenido por el broker local, éste pasa la solicitud directamente al servidor. Si el servidor esta inactivo, el broker lo activa. El broker envía todas las respuestas y excepciones, producto de la ejecución de un servicio, al cliente que hizo la solicitud. Si el servidor especificado es mantenido por otro broker, el broker local encuentra una ruta al broker remoto y le envía la solicitud.
Un broker en el ejemplo SIC es la combinación de un gateway de Internet, y la infraestructura misma de Internet. Cada intercambio de información entre un cliente y un servidor pasa a través del broker. Un cliente especifica la información que requiere mediante URLs. Utilizando estos identificadores únicos, el broker localiza los servicios requeridos, y envía las solicitudes a los servidores apropiados. Cuando se agrega un nuevo servidor, éste debe registrarse con el broker. Los clientes y servidores utilizan el gateway de Internet como una interfaz al broker.


·         Investigue cuales son los componentes de software para sistemas cliente/servidor.
Componentes de aplicaciones.
Una infraestructura Cliente/Servidor consta de tres componentes esenciales, todos ellos de igual importancia y estrechamente ligados:
      Plataforma Operativa
      Entorno de Desarrollo de Aplicaciones.
      Gestión de Sistemas.
      Funciones de componentes.



      Plataforma Operativa.- La plataforma deberá soportar todos los modelos de distribución Cliente/Servidor, todos los servicios de comunicación, y deberá utilizar, preferentemente, componentes estándar de la industria para los servicios de distribución. Los desarrollos propios deben coexistir con las aplicaciones estándar y su integración deberá ser imperceptible para el usuario. Igualmente, podrán acomodarse programas escritos utilizando diferentes tecnologías y herramientas.

      Entorno de Desarrollo de Aplicaciones. - Debe elegirse después de la plataforma operativa. Un entorno de aplicación incremental, debe posibilitar la coexistencia de procesos cliente y servidor desarrollados con distintos lenguajes de programación y/o herramientas, así como utilizar distintas tecnologías (por ejemplo, lenguaje procedural, lenguaje orientado a objetos, multimedia), y que han sido puestas en explotación en distintos momentos del tiempo.

      Gestión de Sistemas. - Estas funciones aumentan considerablemente el costo de una solución, pero no se pueden evitar. Siempre deben adaptarse a las necesidades de la organización, y al decidir la plataforma operativa y el entorno de desarrollo, es decir, en las primeras fases de la definición de la solución, merece la pena considerar los aspectos siguientes:

          ¿Qué necesitamos gestionar?
          ¿Dónde estarán situados los procesadores y estaciones de trabajo?
          ¿Cuántos tipos distintos se soportarán?
          ¿Qué tipo de soporte es necesario y quién lo proporciona?
Una Metodología de Infraestructura para Sistemas Distribuidos que permita definir una infraestructura para el sistema Cliente/Servidor y evalúe la puesta en marcha del proyecto sobre una base racional.
El enfoque estructurado de dicha Metodología comprende los pasos siguientes:
      Captación de las necesidades. Definir, analizar y evaluar, aunando los requerimientos del negocio con las aportaciones tecnológicas.
      Diseño conceptual en el que se sitúan los principales bloques funcionales y de datos del sistema, mostrando la relación y comunicación entre ambos.
      Detalle de los principales componentes funcionales, selección de procesos, determinando los principios que deben aplicarse a la selección de software o diseño de los módulos.

Actividades sugeridas
·         Sugiera cinco aplicaciones en las cuales un servidor principal parezca una estrategia de diseño adecuada.

1.    Sironta, aplicación P2P para el intercambio, creación y edición de documentos que requieren trabajo en grupo.
2.    Workflux.net solución para administración, distribución y control de archivos y proyectos empresariales en español.
3.    eGroupWare solución de trabajo en grupo vía web, de código abierto.
4.    OpenGroupWare solución de trabajo en grupo vía web, de código abierto.
5.    Assembla, herramientas de colaboración online para el desarrollo de software (wikis, mensajes, archivos compartidos, integración con Gdoc, repositorios, seguimiento de tareas y defectos.

·         Investigue un lenguaje de consulta estructurado (SQL) y proporcione un breve ejemplo de la forma en que se podría caracterizar una transacción empleando ese lenguaje.
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en estas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.

Autoevaluación
1.      ¿En qué consiste el diseño en ambiente de redes?
El diseño de bases de datos se utiliza para definir y después especificar la estructura de los objetos de negocios que se emplean en el sistema cliente/servidor. Es preciso desarrollar toda una gama de informaciones de diseño durante el diseño de base de datos.
2.      ¿Cómo se debe ser la estructura de los sistemas cliente / servidor?
  • Entidades: se identifican en el diagrama entidad relación del nuevo sistema.
  • Archivos: que implementan las entidades en el diagrama entidad relación.
  • Relación entre campo y archivo: establece la disposición de los archivos al identificar los campos que están incluidos en cada archivo.
  • Campos: define los campos del diseño (el diccionario de datos).
  • Relaciones entre archivos: identifican los archivos relacionados que se pueden unir para crear vistas lógicas o consultas.
  • Validación de relaciones: identifica el tipo de relaciones entre archivo o entre archivos y campos que se utilicen para la validación.
  • Tipos de campo: se utiliza para permitir la herencia de características de campos procedentes de superclases del campo (por ejem.: fecha, texto, numero, valor, precio).
  • Tipo de datos: las características de los datos contenidos en el campo.
  • Tipo de archivo: se utiliza para identificar cualquiera de las ubicaciones del archivo.
  • Función de campo: clave, clave externa, atributo, campo virtual, campo derivado, etc.
  • Valores permitidos: identifica los valores permitidos para los campos de tipo de estado.
  • Reglas de negocios: reglas para editar, calcular campos derivados, etc.

3.      ¿Cuáles son las cinco configuraciones diferentes para la asignación de componentes de software?
·         Extracción manual. Se permite al usuario copiar manualmente los datos adecuados de un servidor a un cliente. Este enfoque resulta útil cuando el usuario requiere unos datos estáticos, y cuando se puede dejar el control de la estación en manos del usuario.
·         Instantánea. Esta tecnica automatiza la extracción malual al especificar una "instantánea" de los datos que deberan de transferirse desde un cliente hasta un servidor a intervalos predefinidos. Este enfoque es útil para distribuir unos datos relativemtne estaticos que solamente requieran actualizaciones infrecuentes.
·         Duplicación. Se puede utilizar esta tecnica cuando es preciso mantener multiples copias de los datos en distintos centros. En este caso, el nivel de complejidad se incomplementa porque la consistencia de los datos, las actualizaciones, la seguridad, y el procesamiento deben de coordinarse entre los multiples centros.
·         Fragmentación. Este enfoque, la base de datos del sistema se fragmenta entre multiples máquuienas. Aunque resulta intrigante en teoria, la fragmentación es excepcionalmente dificil de implementar, y haste el momento no es frecuente encontrarla.


4.      ¿Cómo debe ser el diseño para sistemas cliente/servidor?
Una infraestructura Cliente/Servidor consta de tres componentes esenciales, todos ellos de igual importancia y estrechamente ligados:
      Plataforma Operativa
      Entorno de Desarrollo de Aplicaciones.
      Gestión de Sistemas.
      Funciones de componentes.

5.      ¿Para qué es necesario el diseño de bases de datos en el ambiente de redes?
El diseño de bases de datos se utiliza para definir y después especificar la estructura de los objetos de negocios que se emplean en el sistema cliente/servidor. Es preciso desarrollar toda una gama de informaciones de diseño durante el diseño de base de datos. Esta información, implementada mediante el uso de una base de datos relacional.