1 / 44

TRES CAPAS CON

TRES CAPAS CON. Desarrollo de Apl icaciones en Tres Capas con Visual Works Smalltalk y GemSt one /S. Tres Capas con Smalltalk. Introducción al Diseño en Capas Características de las Herramientas Conexión entre capas Persistencia de Objetos Ejemplo Práctico. Tres Capas.

nolen
Download Presentation

TRES CAPAS CON

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TRES CAPAS CON Desarrollo de Aplicacionesen Tres Capas con VisualWorks Smalltalk y GemStone/S

  2. Tres Capas con Smalltalk • Introducción al Diseño en Capas • Características de las Herramientas • Conexión entre capas • Persistencia de Objetos • Ejemplo Práctico

  3. Tres Capas Breve introducción al diseño en capas

  4. Tres Capas - Descripción • Presentación al Usuario • Modelo del Negocio • Persistencia de Datos

  5. Tres Capas - Diagrama

  6. Tres Capas - Presentación • Esta capa reúne todos los aspectos del software que tienen que ver con las interfaces y la interacción con los diferentes tipos de usuarios humanos

  7. Tres Capas - Negocio • Esta capa reúne todos los aspectos del software que apoyan los procesos de negocio que llevan a cabo los usuarios

  8. Tres Capas - Datos • Esta capa reúne todos los aspectos del software que tienen que ver con el manejo de los datos persistentes

  9. Tres capas - Smalltalk Características de las herramientas de desarrollo

  10. Tres Capas – Smalltalk • Herramientas • VisualWorks • GemStone /S • Opciones • Cliente Ventana, Cliente Web • Servidor VW, Servidor GS • Repositorio GS, RDBMS

  11. VisualWorks • Multiplataforma (Windows – Linux – AIX – Solaris – MacOSX) • Completo Editor de Ventanas • Soporte para aplicaciones Web (Web Services, Smalltalk Server Pages, Servlets) • Soporte a protocolos standard como FTP, POP, SMTP, IMAP • Seguridad (SSL) • Soporte para CORBA y COM • Soporte para mapeo Objeto – Relacional (Top Link – GLORP)    • Código abierto

  12. Gemstone /S • Multiplataforma (Windows – Linux – AIX – Solaris – MacOSX) • Servidor de objetos multiusuario • Soporte transaccional y control de concurrencia • Soporte para consultas • Soporta índices para procesar los objetos • Soporte de conexión a repositorios de datos externos (OODBMS – RDBMS) • Administración de cuentas y seguridad • Integración con VW a través de GemBuilder

  13. Diagrama de Despliegue

  14. Conexión entre Capas Como realizar las conexiones entre las capas de presentación al usuario y el servidor y entre el servidor y el repositorio de objetos

  15. Conexión entre Capas • Estilo de Aplicación: • Repositorio de Datos GemStone/S • Servidor de Aplicaciones sobre GemStone/S • Cliente Ventana Smalltalk • Cliente Web (servlets – ssp pages)

  16. Herramientas Necesarias • Cargar las parcelas* • GbsTools para poder conectarse a GemStone (servidor-repositorio) • WebToolKit (herramientas web) • ContactsModel, ContactsUI y ContactsWeb (el código fuente del ejemplo) (*) Una parcela es un archivo externo que contiene un grupo de clases, objetos y dependencias

  17. Conexión Cliente/Servidor/Repositorio • Opción programática • Definir los parámetros de conexión al servidor • Definir los parámetros de conexión al repositorio | parameters | parameters := GbsSessionParameters newWithGemStoneName: ‘!@localhost!gemserver61’ username: ‘DataCurator’ password: ‘swordfish’ hostUsername: '' hostPassword: '' gemService: ‘!@localhost!gemnetobject’ *hostUsername y hostPassword son necesarios cuando el application server corre en un host diferente al del repositorio

  18. Conexión Cliente/Servidor/Repositorio • Agregar conectores entre los objetos /clases del modelo y los objetos / clases persistentes | connector | (connector := GbsClassConnector stName: ‘ContactItem’ gsName: ‘ContactItem’ dictionaryName:‘ContactsClasses’). parameters addConnector: connector | connector | (connector := GbsClassVarConnector stName: ‘ContactItems’ gsName: ‘ContactItems’ dictionaryName: ‘ContactsClasses’ stvarName: ‘SoleInstance’ gsvarName: ‘SoleInstance’) beForwarderOnConnect. parameters addConnector: connector

  19. Conexión Cliente/Servidor/Repositorio • Loguearse al repositorio de objetos parameters loginRpc • Una vez hecho esto: • Queda establecida la conexión entre el servidor de aplicación y la base de datos • Se replicó la clase ‘ContactItem’ • Se conecto la variable de clase ‘SoleInstance’ de la clase ContactItems entre la imagen servidor y la imagen cliente (todos los mensajes enviados a esta en el cliente se forwardean al servidor)

  20. Conexión Cliente/Servidor/Repositorio • Opción visual • Definir los parámetros de conexión

  21. Conexión Cliente/Servidor/Repositorio • Agregar conectores entre los objetos /clases del modelo y los objetos / clases persistentes

  22. Conexión Cliente/Servidor/Repositorio • Loguearse al repositorio de objetos Para conectarse a equipos remotos debe utilizarse la opción Login Rpc • Una vez hecho esto el resultado obtenido es el mismo que al realizarlo programáticamente

  23. Conexión Cliente Web Como realizar la conexión entre el cliente web y el servidor web

  24. Servicios Web • Definir un servidor (Smalltalk HTTP Server) • Crear el/los servlets necesarios • Escribir las páginas dinámicas (Smalltalk Server Pages –ssp-) que hagan falta • Configurar el sitio web

  25. Web – Crear servidor • Desde la consola de server se crea y configura un Smalltalk HTTP Server

  26. Web - Servlets • Un servlet es una clase que es invocada desde una página web (puede ser html, ssp, jsp o asp) • Debe ser subclase de HttpServlet • Protocolo: doPost, doGet, doPost:response: y doGet:response: <form action="servlet/ServletVerify" method="post" name="loginForm">

  27. Web – Smalltalk Server Pages • Son páginas web que contienen código smalltalk embebido en el código html • El código smalltalk se ejecuta en el servidor <tr> <td colspan=2 align=center> <% msg := request anyParameterValueAt: 'msg'. msg notNil ifTrue: [ response write: '<p align="center" class="redbutton">'; write: msg; write: '</p>']. %> </td> </tr

  28. Web – Configuración del sitio • En el directorio $(VISUALWORK)/web debe existir un archivo de configuración (.ini) para el sitio [configuration contacts-site.ini] #Note: Configuration parameters are case sensitive. #Configuration file of contacts site directory = $(VISUALWORKS)/web/contacts enviroment = Smalltalk description = The contacts development site home = logon.ssp • Este se tiene que referenciar desde webtools.ini contacts = contacts-site.ini *contacts es el nombre del sitio web

  29. Web – Configuración del sitio • Una vez creado y levantado el web server, escribiendo http://localhost:8008 en el browser podemos ver la herramienta de configuración de VisualWorks Web Toolkit • Si esta todo bien, en la parte inferior se va a encontrar el site contacts (configurado anteriormente) • Se puede acceder a los detalles del sitio para ver y/o modificar su configuración

  30. Persistencia de Objetos Como persistir los cambios realizados a los objetos del negocio

  31. Persistencia de Objetos • Al loguearse a GS se replican en el cliente (ambiente VW) los objetos persistidos en el repositorio

  32. Persistencia de Objetos • Luego de modificar algún objeto del modelo, ese cambio debe persistirse en la base de datos • La manera de persistir / actualizar un objeto en la base de datos es la siguiente: • enviándole el mensaje markDirty al objeto, lo marcamos como que fue modificado y que este cambio debe verse reflejado en la base • al ejecutar el commit de la transacción es cuando se aplica el cambio

  33. Persistencia de Objetos • El objeto es modificado en el contexto del cliente

  34. Persistencia de Objetos • El objeto modificado se marca como sucio enviándole el mensaje markDirty

  35. Persistencia de Objetos • Al comitear la transacción se actualizan todos lo objetos marcados como sucios

  36. Persistencia de cambios • Ejemplo aContactItem firstName: firstName; lastName: lastName; homePhone: homePhone; workPhone: workPhone; email: email; markDirty aGbsSession commit

  37. Ejemplo Práctico Desarrollo de un ejemplo práctico utilizando las herramientas descriptas

  38. Ejemplo - Definición • El ejemplo propuesto consiste en una agenda de contactos donde: • Un usuario puede: • Agregar usuarios • Agregar, modificar o eliminar contactos

  39. Estructura de Aplicación

  40. Ejemplo - Diagrama de Clases

  41. Ejemplo – Diagrama de Tres Capas

  42. Ejemplo – Diagrama de Componentes

  43. Preguntas

  44. Consejo • Si algo se pone muy complicado de seguro estamos haciendo algo mal, tomarse cinco minutos y repensar las cosas • Aplicar la filosofía K.I.S.S. Keep It Simply Stupid

More Related