TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.
-
Upload
ana-belen-velazquez-robles -
Category
Documents
-
view
222 -
download
0
Transcript of TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.
![Page 1: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/1.jpg)
TRES CAPAS CON
Desarrollo de Aplicaciones en Tres Capas con VisualWorks
Smalltalk y GemStone /S
![Page 2: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/2.jpg)
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
![Page 3: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/3.jpg)
Tres Capas
Breve introducción al diseño en capas
![Page 4: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/4.jpg)
Tres Capas - Descripción
Presentación al Usuario Modelo del Negocio Persistencia de Datos
![Page 5: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/5.jpg)
Tres Capas - Diagrama
![Page 6: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/6.jpg)
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
![Page 7: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/7.jpg)
Tres Capas - Negocio
Esta capa reúne todos los aspectos del software que apoyan los procesos de negocio que llevan a cabo los usuarios
![Page 8: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/8.jpg)
Tres Capas - Datos
Esta capa reúne todos los aspectos del software que tienen que ver con el manejo de los datos persistentes
![Page 9: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/9.jpg)
Tres capas - Smalltalk
Características de las herramientas de desarrollo
![Page 10: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/10.jpg)
Tres Capas – Smalltalk
Herramientas VisualWorks GemStone /S
Opciones Cliente Ventana, Cliente Web Servidor VW, Servidor GS Repositorio GS, RDBMS
![Page 11: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/11.jpg)
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
![Page 12: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/12.jpg)
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
![Page 13: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/13.jpg)
Diagrama de Despliegue
![Page 14: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/14.jpg)
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
![Page 15: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/15.jpg)
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)
![Page 16: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/16.jpg)
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
![Page 17: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/17.jpg)
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
![Page 18: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/18.jpg)
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
![Page 19: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/19.jpg)
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)
![Page 20: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/20.jpg)
Conexión Cliente/Servidor/Repositorio Opción visual
Definir los parámetros de conexión
![Page 21: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/21.jpg)
Conexión Cliente/Servidor/Repositorio
Agregar conectores entre los objetos /clases del modelo y los objetos / clases persistentes
![Page 22: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/22.jpg)
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
![Page 23: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/23.jpg)
Conexión Cliente Web
Como realizar la conexión entre el cliente web y el
servidor web
![Page 24: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/24.jpg)
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
![Page 25: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/25.jpg)
Web – Crear servidor Desde la consola de server se crea y
configura un Smalltalk HTTP Server
![Page 26: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/26.jpg)
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">
![Page 27: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/27.jpg)
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
![Page 28: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/28.jpg)
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/contactsenviroment = Smalltalkdescription = The contacts development sitehome = logon.ssp
Este se tiene que referenciar desde webtools.ini
contacts = contacts-site.ini
*contacts es el nombre del sitio web
![Page 29: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/29.jpg)
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
![Page 30: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/30.jpg)
Persistencia de Objetos
Como persistir los cambios realizados a los objetos del
negocio
![Page 31: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/31.jpg)
Persistencia de Objetos
Al loguearse a GS se replican en el cliente (ambiente VW) los objetos persistidos en el repositorio
![Page 32: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/32.jpg)
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
![Page 33: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/33.jpg)
Persistencia de Objetos
El objeto es modificado en el contexto del cliente
![Page 34: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/34.jpg)
Persistencia de Objetos El objeto modificado se marca como
sucio enviándole el mensaje markDirty
![Page 35: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/35.jpg)
Persistencia de Objetos Al comitear la transacción se actualizan
todos lo objetos marcados como sucios
![Page 36: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/36.jpg)
Persistencia de cambios
Ejemplo
aContactItemfirstName: firstName;lastName: lastName;homePhone: homePhone;workPhone: workPhone;email: email;markDirty
aGbsSession commit
![Page 37: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/37.jpg)
Ejemplo Práctico
Desarrollo de un ejemplo práctico utilizando las
herramientas descriptas
![Page 38: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/38.jpg)
Ejemplo - Definición
El ejemplo propuesto consiste en una agenda de contactos donde: Un usuario puede:
Agregar usuarios Agregar, modificar o eliminar contactos
![Page 39: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/39.jpg)
Estructura de Aplicación
![Page 40: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/40.jpg)
Ejemplo - Diagrama de Clases
+addProfileFor:()+allUserProfiles()+getOrAddProfileFor:()+inGemStone()+locateProfileFor:()+new()+changed:with:()+inGemStone()+initialize()
-user-contactItems
ContactBookUserProfile
+abort()+addConnectorsTo:()+commit()+createContactUserNamed:password:()+isLoggedIn()+loginIntoGemstone()+logout()+newClassConnectorFrom:to:()+newClassVarConnectorFrom:to:fromVariable:toVariable:()+newSessionParameters()+userContactData()+username()+users()
-session-userContactData-user
ContactBookSessionManager
+changed:with:()+defaultDisplayString()+displayFields()+displayString()+printOn:()
-user-firstName-lastName-homePhone-workPhone-email
ContactItem
+soleInstance()
ContactItems
+named:password:()+printOn:()
-username-password
ContactUser
+soleInstance()
ContactUsers
0..*
10..1
1
1
0..*
1
1
1
0..*1
0..*
![Page 41: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/41.jpg)
Ejemplo – Diagrama de Tres Capas
ContactBookUserProfile
ContactBookSessionManager
ContactItem ContactItems
ContactUser
ContactUsers
ServletAdd ServletMainServletModify ServletVerify
«interfaz»logon.ssp
«interfaz»LoginView
«interfaz»ContactsBrowserWindow
«interfaz»ContactItemEditView
«interfaz»main.ssp
«interfaz»details.ssp
«interfaz»new.ssp
ContactBookUserProfileContactItem
ContactItems ContactUser
ContactUsers
Presentación
Negocio
Datos
![Page 42: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/42.jpg)
Ejemplo – Diagrama de Componentes
PC Win Client
Application Server
Repository Server
Contacts List Window
Contacts Server
Contacts Repository
RPC/TCP
Session
GS Connector
RPC / TCP
Client Session
PC Web Client
web browser
HTTP
Servlet
![Page 43: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/43.jpg)
Preguntas
![Page 44: TRES CAPAS CON Desarrollo de Aplicaciones en Tres Capas con VisualWorks Smalltalk y GemStone /S.](https://reader036.fdocumento.com/reader036/viewer/2022062315/5665b4e51a28abb57c948f0a/html5/thumbnails/44.jpg)
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