Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 1
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Revisando la Arquitectura Two-Tier
Arquitecturas Multitier (Distribuida)
CORBA
1-2 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 2
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para:
z Listar la ventajas y desventajas de la arquitectura Distribuida
z Definir los componentes del estándar CORBA
IDL
Stubs
Skeletons
1-3 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 3
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Architecture (Object-Oriented)
Deploy
1-4 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
A un nivel alto, desarrollando una aplicación two-tier, particionando una aplicación consiste
de los pasos mostrados en la diapositiva. No se tiene que abandonar la experiencia que se
tiene para desarrollar aplicaciones multitier con el EAServer. Aunque hay unas diferencias,
se puede perfeccionar lo que ya se sabe.
Este curso se focaliza en los detalles de implementación para los componentes de negocio
desplegados al EASErver y los cambios necesarios en la aplicación cliente para usar estos
componentes.
Esta no es una clase de Diseño; sin embargo, los pasos de diseño son críticos para este
ambiente. Muchos desarrolladores ven que ellos tienen más cambios en la fase de diseño que
la fase de implementación de una aplicación multitier. Esta clase señala las buenas y malas
estrategias y le da la oportunidad para definir y construir un componente EAServer ancestro
para sus componentes de negocio. Se debería, sin embargo, buscar información adicional
para la fase de diseño.
1- 4
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Servidor de
Cliente Base de Datos
Vendor / Platform-
Platform-Specific API
1-5 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 5
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1-6 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 6
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Servidor de
Cliente Servidor de Aplicaciones base de datos
1-7 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 7
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Ventajas / Desventajas
Ventajas Desventajas
z Cientes “más delgados” z Cambios en los hábitos de
z Disminuye la administración del programación
cliente z Más curvas de aprendizaje
z Encapsulación de la lógica z Mayor tiempo en el inicio del
z Mejor perfomance diseño y desarrollo
z Escalabilidad z Más puntos de falla
z Consistencia, control y
seguridad
z Reutilización de componentes
existentes
z Posicionamiento para la Web
1-8 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 8
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1-9 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 9
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
CORBA
C C
Java Java
PB PB
ORB ORB
IIOP
ORB
C
Java
PB
1 - 10 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 10
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
CORBA C++ / C
ActiveX
1 - 11 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Los Enterprise Java Beans pueden ser accesado desde clientes PowerBuilder a través de los
mappings EJB-CORBA.
1- 11
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
¿Qué es CORBA?
Common Object Request Broker Architecture
Estándar de la arquitectura del objeto distribuido desarrollada
z No incluye Microsoft
1 - 12 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 12
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Implementación
on
off
Interfaz
Interfaz remoto=
Stub (o Proxy)
1 - 13 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 13
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
on
off
1 - 14 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Implementation
Client Object
Object
9. Invoca la
1. Invoca el método
implementación
5. Reenvia el
3. Envía el requerimiento
requerimiento 7. Invoca el método
ORB ORB
Para la invocación estática, la aplicación cliente necesita tener conocimiento de los servicios del objeto
que deberá necesitar, así que la especificación IDL debe ser incorporada en el cliente como un objeto
servidor, usando el lenguaje de programación escogido. Se debe tener cuidado de esto por usar el
compilador del IDL (proporcionado por el vendedor de su ORB) para compilar el IDL en las rutinas del
stub en el lado del cliente y código del skeleton del lado del servidor.
Este diagrama muestra los procesos de un método en un objeto remoto. Porque el objeto está en una máquina
diferente, el requerimiento simplemente no puede enviarse de un objeto a otro. Esto puede ser empaquetado
(encriptado) para que esto puede ser enviado sobre la red. Ambos tanto la máquina que envia y la que recibe deben
tener el mismo protocolo (Internet Inter-ORB Protocol, o IIOP). El requerimiento entonces necesita ser
desempaquetado (desemcriptado) y finalmente, los métodos de la implementación pueden ser invocados.
el objeto stub encripta los requerimientos y los somete al ORB del lado del cliente.
el ORB encuentra el ORB destino en la red y envia el requerimiento.
el IIOP define una norma para enviar el requerimiento del ORB encima de algunos protocoloes de comunicación
de bajo nivel.
el ORB destino recibe los requermientos y direcciona al objeto apropiado.
The skeleton unmarshals the request and invokes the implementation object.
el objeto de la implementación contiene la lógica que comprende las reglas de negocio.
1- 15
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
CORBA - Stubs
Objetos proxy local
Empaqueta los requerimientos de la
programación
1 - 16 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
El stub contiene todos las firmas de un objeto remoto sin los detalles de la implementación.
El stub también contiene la lógica para empaquetar todas las invocaciones de los métodos
para que esto pueda ser enviado sobre la red.
1- 16
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 17 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 17
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
CORBA - Skeleton
Implementa los mecanismos para los requerimientos de
invocación hacia el servidor para ser desempaquetados y
direccionados al método correcto.
Son la colas de la implementación del objeto para el runtime
del ORB
Desempaqueta los argumentos de los métodos
1 - 18 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 18
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Implementación
Define el comportamiento para todas las operaciones y
atributos de la interfaz que soporta
Es creado usando un lenguaje de programación o modelo de
1 - 19 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 19
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Servidor
Programa que contiene la implementación de uno o más
tipos de objetos
Provee un ambiente para almacenar los componentes
Aplica la seguridad
Maneja:
z Transacciones
z Failover
z Balanceo de carga
1 - 20 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 20
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
CORBA separa la interfaz de la implementación de un
componente.
La interfaz de un objeto es descrito usando el Lenguaje de
1 - 21 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 21
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Módulo 2: El EAServer
1- 22
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Los problemas con la Arquitectura Distribuida
Roles de un Component Transaction Server (CTS)
z Servidor
z Componentes
z Packages
z Repositorio
1 - 23 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 23
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para:
z Iniciar el EAServer
z Conectarse a un servidor EAServer a través del EAServer
EAServer Manager
z Describir el rol de un Component Transaction Server (CTS) y
dar ejemplos
1 - 24 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 24
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
componentes?
Quiénes pueden acceder al servidor?
1 - 25 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 25
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
z Transacciones
z Seguridad:
Server
1 - 26 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 26
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Experiencia Requerida
Business Developers
Ciclo de vida
es
Th
accion
rea
ds
Trans
Se
u g
rida
d
es
GUI Developers ccion
Co n e
Componentes
System Developers
1 - 27 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
EAServer maneja mucho del desarrollo de los niveles del sistema, así que se puede focalizar
en la lógica de negocio.
1- 27
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 28 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 28
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 29 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 29
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El Connection Caching
Los Componentes comparten un pool de conexiones pre-
asignadas al servidor de la base de datos remoto
Connection
Cache
1 - 30 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Controlar el número de conexiones y el tiempo de una conexión física que necesita ser
creado y destruido en ambientes impredecibles son criticos para una performance eficiente.
El Connection Caching le permite controlar el número de conexiones a su base de datos.
1- 30
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 31 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Ud. Puede determinar como los componentes EAServer pueden manejar las transacciones y
que roles pueden jugar en una transacción. Ud puede cambiar el manejo de la transacción
sin cambiar el código en su componente, haciendo cambios en la hoja de propiedades con el
Jaguar Manager.
1- 31
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Administración de la Seguridad
El soporte basado en roles para la autenticación y
autorización de usuarios
La autenticación de los usuarios cuando la aplicación cliente
crea los stub
La lista de control de acceso para componentes que
determina que usuarios pueden ser permitidos para invocar
el componente
z Si un usuario no está autorizado, falla la creación del stub
Soporta certificados digitales
Soporta el Secure Socket Layer (SSL)
1 - 32 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 32
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Java COM
HTML
IIOP/TDS
MASP CORBA
1 - 33 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Java: JDK 1.22, 1.3 usando un EAServer CORBA-compliant ORB o cualquier otro
C++ ORB
Métodos como stored procedures (MASP); cualquier database-aware lenguaje/herramienta
CORBA (un cliente CORBA es una aplicación escrita lenguaje con mappings CORBA)
Java: Java Development Kit (JDK) 1.1 o superior; soporta la especificación EJB (1.0, 1.1,
2.0) ActiveXs (solo Windows NT o Windows 2000): la interfaz MTS soportada permite
mover fácilmente los componentes almacenados en el Microsoft Transaction Server (MTS)
al EAServer
C, CORBA C++
1- 33
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Soporta J2EE
EJB 2.0
J2EE applications
Object Caching
1 - 34 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 34
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes
Package
1- 35
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Servidor EAServer
Provee un ambiente de ejecución para los componentes
Maneja los requerimientos de los clientes
Instancia los componentes
Maneja la seguridad, transacciones, el conection caching, el
balanceo de carga y el failover.
Definido usando el EAServer Manager
El servidor por defecto es nombrado JAGUAR
1 - 36 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 36
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Iniciando el EAServer
1 - 37 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 37
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 38 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
El Jaguar Manager es un Java Sybase Central especial, que maneja los
componentes, la seguridad. Esto es una herramienta de administración.
Para los desarrolladores PowerBuilder, algunas de las funcionalidades del Jaguar
Manager es ahora localizada en el PowerBuilder IDE via el System Tree y las hojas
de propiedades desde los objetos projects.
1- 38
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El EAServer Manager
1 - 39 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 39
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 40 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 40
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
z Soporte de transacciones
1 - 41 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 41
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 42 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 42
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El Repositorio EAServer
El Repositorio EAServer
contiene:
z Información de la
configuración para
cada servidor
EAServer
z Los datos para los
packages,
componentes y
métodos de la
aplicación
El servidor EAServer
usa el repositorio para
encontrar e invocar los
componentes
1 - 43 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
El repositorio es un conjunto de archivos que ud. Puede revisar con un editor de texto.
Los servidores en la misma instancia del EAServer comparten los mismos archivos del
repositorio.
1- 43
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 44 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 44
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 45 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Hay una nueva Declarative Component Property definida en EAServer 3.6 y superior para
soportar los múltiples PowerBuilder VMs. Esto es
com.sybase.jaguar.component.pb.version. Esta propiedad no es presentada para
componentes PowerBuilder desplegados desde PowerBuilder 7.x. Si la propiedad no es
presentada por defecto en EAServer (Jaguar) para PowerBuilder 7.x VM. Los componentes
desplegados desde PowerBuilder 8.0 tiene esta propiedad definida automática con el
EAServer.
1- 45
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
EAServer provee un framework para desplegar la lógica de la
capa media.
EAServer provee soporte para el ciclo de vida de los
1 - 46 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 46
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
EAServer soporta clientes PowerBuilder Java, ActiveX, C++,
MASP, y HTML.
Un package es una colección de componentes que trabajan
en conjunto con aspectos de la lógica de negocio de la
aplicación.
El Jaguar Manager es usado para configurar y manejar los
servidores, packages y componentes.
1 - 47 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 47
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
z Iniciando el EAServer
z Iniciando el Jaguar Manager
1 - 48 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 48
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 49 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 49
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 50
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Evento Error
Sentencias de Manejo de los Exception
Emitiendo Exceptions
1 - 51 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 51
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, Ud. será capaz de
z Crear un Custom Exception Class
z Modificar el signature de un método para emitir un exception
Exceptions
1 - 52 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 52
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Evento Error
Todavía mantenido para compatibilidad con versiones
anteriores
Si no hay código en el evento Error, la información será
1 - 53 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Los eventos de Error pueden también ser emitidos por un error de comunicación
encontrados en una conexión cliente al EAServer
El evento Error todavía es contenido en los siguientes objetos:
z Connection
z DataWindow
z DataStore
z JaguarORB
z OLE
z OLEObject
z OLETxnObject
1- 53
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Qué es un Exception?
Los Exceptions son objetos que se activan en alguna
condición o error y son usados para describrir la condición o
error encontrado.
Ejemplos:
z Referencia a objeto Null
z División por cero
1 - 54 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Los errores Standard, como una referencia a un objeto nulo o división por cero, son
típicamente emitos por el runtime system. Estos errores podrían ocurrir en cualquier parte de
la aplicación y Ud. puede incluir cláusulas catch en cualquier script ejecutable para poder
controlar estos errores.
Manejar un Exception le permite a Ud. diseñar una aplicación para que pueda recuperar
desde condiciones excepcionales y continuar la ejecución. Cualquier exceptions que son un
descendiente de RuntimeError que Ud. no captura son manejados por el runtime system y
puede resultar en la finalización de la aplicación. En PowerBuilder esto es manejado por el
evento del Application el SystemError.
1- 54
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 55 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Con la adición del manejo del exception, los clientes PowerBuilder están hábiles para
capturar los exceptions a través de los componentes EAServer (CORBA, EJB, PB) y
recuperarlo desde estos. Los componentes desarrollados con PowerBuilder pueden también
definir y emitir sus propios tipos de exception, haciéndoles más consistentes con otros tipos
de Componentes EAServer como Java.
El manejo del Exception es realizado como los Lenguajes Orientados a Objetos, como
Java, C++ y Ada. La implementación en PowerBuilder es similar a la implementación del
manejo de exception en Java.
Esto significa que Ud. puede manejar los errores de código en cualquier parte de su
aplicación en lugar de un solo evento del error global.
1- 55
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 56 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
TRY – Inicia un bloque de código que puede posiblemente emitir uno o varios exceptions
que Ud. desee, sin tener el exception que ser enviado al evento SystemError del objeto
Application. El bloque TRY puede contener uno o más sentencias PowerScript. Esto debe
ser seguido por uno o más bloques CATCH o un FINALLY.
CATCH – Especifica el tipo de exception que Ud. desea capturar explicitamente. El
bloque CATCH puede manejar y procesar el exception permitiendo a la aplicación
recuperarse y continuar adelante o esto puede re-emitir el exception.
FINALLY – Es una cláusula opcional que aparece después de todos los bloques CATCH
dentro del bloque TRY. Los bloques FINALLY son usados para continuar el código que
Ud. ejecuta sin tener en cuenta si el bloque TRY generó un exception o no.
END TRY – Es usado para indicar el fin de un bloque TRY..CATCH..FINALLY y
1- 56
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Checked
Unchecked
1 - 57 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Los PowerBuilder runtime errors son representados por la clase jerarquica RuntimeError. El
RuntimeErrors puede ser capturado en bloque de código TRY-CATCH-FINALLY-END TRY. No
es necesario declarar donde una condición de error pueda Ocurrir (PowerBuilder lo hace por Ud.
desde donde un error de Sistema puede suceder en cualquier momento que la aplicación que se está
ejecutando). Estas exception classes son conocidas como Unchecked exceptions.
El system class Exception puede ser usado como una clase ancestro para tipos de exception
definidos por usuario. Es la clase raíz para todos los exceptions checked. Checked exceptions son
exceptions definidos por el usuario que deben ser capturados en un error de TRY-CATCH, o debe
ser declarado en el prototipo de un método cuando emite fuera de un bloque TRY-CATCH.
1- 57
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Manejando un Exception
Double ld_num
ld_num = Double (sle_1.text)
TRY
sle_2.text = string (acos (ld_num))
CATCH (runtimeerror e1)
MessageBox("Runtime Error", e1.GetMessage())
FINALLY
// Adicione el código de limpieza
this.of_cleanup()
END TRY
MessageBox(“Después", “Hemos finalizado.")
1 - 58 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 58
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
z Connection
z JaguarORB
Evento SystemError
1 - 59 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
PowerBuilder proporciona tres capas de manejo de error que pueden ser usados por clientes
que se conectan a EAServer:
Un mecanismo, usando bloques try/catch/finally, para el manejo de exceptions emitidos por
componentes ejecutándose en EAServer.
Todos los errores system y runtime son convertidos en objetos que descienden del tipo
RuntimeError.
El evento Error en los objetos Connection y JaguarORB para manejar errores que ocurren
en el contexto de una conexión EAServer.
El evento SystemError de un objeto Application para manejar errores que no han sido
capturados por otros mecanismos.
1- 59
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 60 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Una aplicación cliente puede manejar los errores de comunicación de varias maneras.
Por ejemplo, si un cliente se conecta a un servidor y proeba el invocar a un método de un
objeto que no existe, el cliente puede desconectarse del servidor, conectarse a un
servidor diferente y reintentar la operación. Alternativamente, el cliente puede mostrar
un mensaje al usuario y darle la oportunidad para controlar lo siguiente.
Cuando un error ocurre, si el cliente se conecta a un nuevo servidor para reintentar la
operación, esto debe instanciar el objeto remoto del nuevo servidor antes de invocar un
método del objeto remoto.
CORBA proporciona una manera estándar para que los componentes indiquen el error o
warnings. CORBA soporta dos tipos de exceptions:
1. System exceptions, Un system exception es uno de los erroes estándar levandos
por el servidor. Estos exceptions son definidos en la especificaciónCORBA.
2. Exceptions definidos por el usuario, un user-defined exception es un error o
warning defnido en el IDL del componente. Un exception de usuario es un
nuevo tipo de dato que describe un conjunto de elementos de datos que son
retornados al cliente cuando el exception es levantado.
1- 60
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
desea poner.
1 - 61 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 61
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 62 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Throwable es la clase ancestro de todos los exceptions, para ambos el Checked y el Unchecked. Los
descendientes que crea del Throwable son Exceptions Checked. En la mayoría de situaciones Ud. no estaría
utilizando este tipo de Standard Class User Object. En cambio use el Exception para definir su propia clase
Checked Exception.
El RuntimeError debe ser utilizado cuando Ud. desea crear una exception Unchecked que no necesita ser
capturado por un bloque TRY CATCH. Si no lo captura explícitamente, las Exceptions Unchecked se irán al
evento SystemError del Objeto Application dentro de una aplicación PowerBuilder.
El Exception es el ancestro común para los Exceptions Checked que Ud. crea. Como todas las jerarquías
de herencia, definir una clase base de exception proporciona la flexibilidad para hacer cambios y mejoras
que serán realizados por todos los descendientes de un solo origen. Este es el tipo de clase que es utilizado
para crear clases custom exception para componentes PowerBuilder desplegados al EAServer.
1- 62
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 63 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 63
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Propiedad
Propiedadpara
para
Sostener la
Sostener la
sentencia
sentenciade
deError
Error
Funciones
Funcionespara
para
Obtener y Poner
Obtener y Poner
sentencias
sentenciasde
deError
Error
1 - 64 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
La propiedad text es usado para contener la sentencia de error, la razón por la que ocurrió
el exception.
El Getmessage() proporciona una interfaz programatica para obtener el valor del texto y
1- 64
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 65 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
El Setmessage() puede ser extendido pero no el Getmessage(). Esto es debido a las
1- 65
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 66 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
THROW – Sentencia usada para emitir un exceptión con código. Debe seguirse
1- 66
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 67 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 67
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 68 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 68
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Un Exception es un objeto que puede ser emitido en el
evento de condición excepcional o error.
PowerBuilder 9 soporta exceptios Checked y Unchecked.
de un script.
Exceptions Checked deben ser manejados, un error de
1 - 69 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 69
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Las sentencias CATCH deben ser ordenadas basadas en su
jerarquía de herencia, Iniciando con los descendientes.
El bloque FINALLY siempre se ejecuta sin saber si se ejecutó
un exception o no.
El GetMessage y SetMessage pueden ser usados para
Objects
Tres tipos de Standard Class para escoger:
1 - 70 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 70
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab 3 –1
Crear una clase exception user-defined nex_negative
Modificar la signatura de una función para emitir un
exception
Manejar el exception desde un cliente
1 - 71 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 71
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab 3
1 - 72 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 72
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab 3 Interrogantes
Prototipo de una función throws exception
Signature
refleja el
exception que
será emitido
Debe ser
instanciado
Emite cuando
detecta un
error
1 - 73 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 73
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab 3 Interrogantes
Todos los exceptions emitidos de una función deben ser capturados en
un Exception Handler. El compilador fuerza esto.
1 - 74 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 74
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 75
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El objetivo
Mover desde un Two-Tier a... Multitier
Lógica de Negocio
embedida en un
control de interfaz calculate( )
EAServer
Loan
1 - 76 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
En este laboratorio previo del capítulo, se puede particionar la aplicación Loan Calculator y
separar la lógica de negocio de la interfaz. Ud. Hará esto creando un NVO y cree un método
en el NVO para que realice el cálculo que es realizado presionando el botón.
Una vez que la lógica comercial es dividida, esto puede ser distribuida al EAServer.
Distribuir la lógica de Negocio al EAServer proporciona un ambiente de escalabilidad con
opciones de ayudarte a manejar los connection caches, administrar las transacciones, el pool
de instancias, y la seguridad.
Distribuir la lógica de negocio también le permite reusar la lógica de negocio en otras
aplicaciones clientes como Java, C++ y clientes Web.
1- 76
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Modelo de desarrollo de Alto Nivel
Procesos de Desarrollo
z Conectándose al EAServer
z Generando un Proxy
z Inicializando el Proxy
1 - 77 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 77
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para:
z Crear un Componente EAServer desde el EAServer
Component Wizard
z Desplegar un componente EAServer
en PowerBuilder
z Crear una instancia de un Componente EAServer
1 - 78 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 78
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Architecture (Object-Oriented)
Deploy
1 - 79 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Este es un modelo de desarrollo de alto nivel que puede ser familiar para el trabajo en un
ambiente two-tier.
Aunque un ambiente multitier con EAServer difiere del ambiente two-tier, Ud. Será capaz
de poder usar sus conocimientos actuales.
Este curso se enfoca en lo siguiente:
Implementando la lógica de negocio
Conectar la lógica de negocio con el origen de datos
Combinar la interfaz y la lógica de negocio
1- 79
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Procesos de Desarrollo
Librerías Cliente Librerías del Servidor
1. Define un Componente
2. Deploy al Componente
4.Generar un Proxy
Para distribuir la lógica de negocio desde el cliente al Jaguar y entonces llamar la lógica de
negocio almacenada en el Jaguar, Ud. Puede seguir este proceso simple. PowerBuilder
proporciona wizards para ayudarte con estos pasos.
Una vez que se está familiarizado con este proceso, te puedes mover a un escenario más
complejo como la llamadas de entre componentes y configurar a los componentes para las
transacciones, que son cubiertas en módulos posteriores. En este tiempo, se tiene que
focalizar en este simple proceso para dominar los conceptos básicos.
Cada paso incluye una serie de sub pasos e información adicional que es especificada en la
Guía de Tareas.
1- 80
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
3) Project para
deploy del
componente
1 - 81 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Hay EAServer Component wizards en varias páginas del diálogo New …. Dependiendo
donde se encuentre determine que wizard utilizará.
1- 81
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 82 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Este EAServer Component wizard en el tab page Target crea las 3 piezas necesarias
z 1) Un PBL nuevo para contener su NVO y objeto project
z2) Un custom class user object vacio – que debe ser personalizado para contener la
funcionalidad que se desea desplegar.
z 3) Un objeto project con propiedades que tu especificas.
El EAServer Component wizard en el tab pate PB Object asume que tu tienes un target y
solo creará los pasos 2 y 3 de arriba
The EAServer Component wizard en el tab pate Project asume que tienes un target PBL y
un custom class user object. Esto simplificará crear un objeto project para desplegar el
componente o componentes que tu especifiques.
1- 82
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 83 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 83
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Cuando presionas click en el icono Deploy en el objeto project, el objeto project despliega el
NVO al EAServer y crea los skeletons en el servidor.
El EAServer Component wizard crea un objeto project para ti automáticamente.
Ud. También puede crear el objeto project usando el EAServer Component wizard en el tab
Project.
Una vez que el objeto es desplegado al EAServer, deberías estar hábil para ver esto en el
Jaguar Manager (se puede necesitar refrescar el Jaguar Manager).
1- 84
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Conectándose al EAServer
El Connection Object wizard crea un objeto connection para que te puedas conectar a un
servidor EAServer.
Deberías estar hábil para ver el nuevo objeto connection en el System Tree después
presionas el botón Finish en el wizard. El Connection Object es un objeto no visual de
PowerBuilder (CCUO)
1- 85
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Conectándose al EAServer
// Instanciando el objeto connection
gn_connect = CREATE n_jaguar_connect
// Conectarse al Jaguar
ll_rc = gn_connect.ConnectToServer()
1 - 86 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Se debería instanciar el objeto connection después de que este fue definido por el
Connection Object wizard. Después de instanciar el objeto, llamar a la función
ConnectToServer( ) para conectarse al EAServer.
El objeto connection y conectarse al EAServer son análogos a un objeto transaction que se
conecta a un base de datos.
1- 86
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Revisón:
Volver a llamar, el PowerBuilder Provee 3 capas de manejos de errores que puede ser usado
por los clientes para conectarse al EAServer:
Un mecanismo, usando bloques try/catch/finally, para manejar excepciones thrown por
componentes ejecutándose en EAServer.
Todos los errores de sistema o en tiempo de ejecución son convertidos en objetos que
descienden desde el tipo RuntimeError.
Este slides ilustra usando los bloques try/catch en un manejo estándar del exception
El siguiente slide ilustra usando el evento Error de un objeto Connection
1- 87
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 88 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
En este ejemplo, asume un standard class user object n_jaguar_connect, que descienden del
tipo connection que fue creado. Este tiene una función of_logError que registra la
información del error.
Nota: este método para manejar el error y el uso del evento SystemError ambos son
mantenidos para compatibilidad con versiones anteriores. El método del bloque de try/catch
es preferible ser usado por los desarrolladores.
1- 88
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 89 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Use el EAServer Proxy wizard en el tab Project para definir un objeto project que pueda
crear un proxy. Este wizard no crea el proxy por si mimos. Esto crea el objeto project que
debes de desplegar para generar el proxy.
El Proxy están en el lado del cliente. Hace pensar al cliente que el objeto está
localmente.
1- 89
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 90 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
El wizard del proxy tendrá que seleccionar todos los componentes para los cuales deseas
crear proxies. Tu puedes seleccionar el package entero o solo algunos.
1- 90
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 91 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 91
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 92 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Una vez que el objeto project es definido, click en el botón Deploy para generar el proxy.
Tu puedes ver el nuevo proxy en el System Tree y el Library painter.
1- 92
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Inicializando el Proxy
// Inicializando el proxy
ll_rc = gn_connect.CreateInstance(in_rules, &
“SurfsideVideoPB/n_businessrules" )
1 - 93 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 93
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 94 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Después el proxy es instanciado, se puede invocar los métodos del componente usando la
notación familiar <object>.<method>.
1- 94
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 95 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
La programación Drag and drop está disponible desde el System Tree. Localice el proxy en
el System Tree y abra las funciones. Localice el método que deses para llamar y entonces
drag and drop y sueltalo en el código del objeto window. Podrás modificar este código para
usarlo con tu variable usando la notación familiar<object>.<method>.
1- 95
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Invocación de Métodos
Implementation
Client Object
Object
3) Invoca el Método
PowerBuilder
provides
Stub Object Skeleton
2) CreateInstance( )
EAServer
provides
ORB ORB
1) ConnectToServer( )
IIOP
1 - 96 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Si cualquier caja no está creada o si cualquier línea entre las cajas no está establecida, la
invocación del método fallará. Use este diagrama como un checklist para asegurarte que
tienes establecido cada objeto y todos los enlaces entre los objetos.
1- 96
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Invocando un método en un Componente EAServer involucra
estos seis procesos:
1. Definiendo un Componente EAServer
2. Desplegando un Componente EAServer
3. Conectándose al EAServer
4. Generando un Proxy
5. Inicializando el Proxy
6. Invocando Métodos en un Componente EAServer
Los Wizards te ayudan a crear los Componentes EAServer,
los objetos connection, y los projects para desplegar
componentes y generar proxys
1 - 97 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 97
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Client
calculate( )
EAServer
Loan
1 - 98 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 98
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Laboratorios Opcionales
Lab 4-2 (Opcional): Usando un Servidor Remoto
Lab 4-3 (Opcional): Administrando el mantenimiento
1 - 99 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Seguir el Libro de Laboratorio para completar estos laboratorios adicionales. Ud. puede
realizar estos laboratorios en cada orden. Según su interés. El Libro de Laboratorio
proporciona referencias a la Guía de Tareas, la documentación de PowerBuilder, y/o la
documentación de EAServer para ayuda adicional.
1- 99
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab
Declare una referencia al proxy
n_loan in_loan
Instanciación (hacerlo en el Open en este caso)
in_loan = CREATE n_loan
Llamar al método
double ld_amount, ld_payment, ld_interest = 6.625
int li_months
ld_amount = Double ( sle_amount.text )
li_months = integer( ddlb_months.text )
try
ld_payment = in_loan.calculate(ld_amount, li_months)
catch (nex_negative e1)
MessageBox(“Captura un Exception ", e1.getMessage())
end try
sle_payment.text = string ( ld_payment )
1 - 100 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 100
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 101
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El objetivo
Responder estos tipos de preguntas:
z Cuándo es instanciado y destruido un componente?
z Cuándo un componente es ligado a un cliente?
1 - 102 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 102
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
El ciclo de vida de un Componente EAServer
Eventos del ciclo de vida en EAServer
El Instance Pooling
1 - 103 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 103
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para:
z Modificar un custom class user-object que contiene eventos
EAServer
z Diferenciar entre los componentes Stateful y Stateless
1 - 104 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 104
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Espera
Activación
ligar al cliente
Reciclar
Ejecutar el método
Si
Si
Automatic Pooling
deactivation Desactivación support No
Destrucción
No
Desactivación
Primitive
1 - 105 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 105
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 106 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 106
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Beneficios
z Minimiza el número de objetos creados y destruidos
z Maximiza la compartición y reuso de recursos
1 - 107 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 107
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
z Deactivate
z CanBePooled
z Destructor
1 - 108 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 108
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Deactivate
z Invocado cuando el componente es desligado del cliente
z Usado para liberar recursos
1 - 109 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 109
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Destructor
z Invocado cuando el componente es destruido
z El evento destructor es estándar para cualquier CCUO
1 - 110 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Evento CanBePooled :
Este evento es llamado solo cuando la opción instance Pooling es desactivada.
si el evento retorna 1, entonces la intancia es reusada.
El EAServer Component wizard no declara automáticamente esto para ti. Tu debes de
insertar un evento y asignarle el event ID apropiado. Ver la Guía de Tareas para más
detalles.
1- 110
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Estrategias de diseño
Los componentes pueden ser diseñados para ser:
z Stateful
La instancia permenece ligado al cliente entre llamadas de
métodos
Las instancias pueden almacenar estados de información
El desarrollador es responsable para inicializar la desactivación
z Stateless
La Instancia es automáticamente desactivada después de
cada llamada del método.
Para cada llamada del método, Ud. no puede asumir que la
instancia será ligada al cliente.
El desarrollador es responsable para inicializar la instancia.
1 - 111 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Los componentes Stateful son buenos para almacenar información sobre el cliente para ser
usados en el manejo de una transacción. Por ejemplo, un componente que ubica una orden
puede tener muchos métodos para permitir al cliente configurar un customer ID,
información sobre la orden, e información sobre cada item de la orden. En esta caso, tu
puedes usar componentes stateful para retener la información entre la invocación de
métodos.
En muchos casos, sin embargo, un componente no tiene que mantener la información entre
la llamada de métodos. Si el componente es stateful, el componente podría ser asignado al
cliente por un periodo largo y la performance de la aplicación se degradaría porque el
servidor necesita instanciar más instancias del componente.
1- 111
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes Stateful
Instance Pool
1 - 112 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Componentes Stateful:
Mantener la información sobre un cliente entre la invocación de métodos
Almacena la información en propiedades (variables de instancia)
Exponga los métodos para manipular las propiedades
1- 112
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes Stateful
setAmount(15000) 15000
setMonths(24) 24
calculate( )
return 725
Instance Pool
1 - 113 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 113
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes Stateful
Como el cliente libera una instancia?
Que sucede si el cliente se olvida de liberar la instancia?
Instance Pool
1 - 114 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Una vez que el cliente desactiva o libera la instancia, la instancia retorna al pool y puede ser
usada por otros clientes.
1- 114
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes Stateless
Instance Pool
1 - 115 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 115
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes Stateless
Calculate(15000,24)
return 725
Instance Pool
1 - 116 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 116
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes Stateless
Instance Pool
1 - 117 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 117
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 118
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
automáticamente es
desactivada cuando el
método es retornado
1- 119
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El Instance Pooling
Permite a una sola instancia de un componente para
sucesivamente servir a múltiples clientes
La instancia es removida del pool
Instance Pool
1 - 120 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
El pool de instancias es similar al pool de conexiones. Crear una conexión física para una
base de datos o inicializar una instancia física de un componente es una operación que
consume bastante tiempo que degrada la performance. El pool de instancias reduce el
número de tiempo que el EAServer debe físicamente crear y destruir una instancia de un
componente.
El objetivo es reducir el número de objetos instanciados.
Los Beneficios de esto incluyen:
Mejor escalabilidad
1- 120
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 121 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 121
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 122 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Esta diapositiva muestra la hoja de propiedades de un objeto project que despliega un NVO
al EAServer.
Se puede activar la opción instance pooling en la hoja de propiedades. Por defecto soporta el
instance pooling.
Nota: muchas propiedades que se configure (como este) pueden también ser configurado en
el Jaguar Manager. Sin embargo, si tu configuras enel Jaguar Manager, la propiedad deberá
sobreescribirlo en el siguiente tiempo que despliegues desde PowerBuilder. El lugar
apropiado para poner estas configuraciones es en la hoja de propiedades de PowerBuilder.
1- 122
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Propiedad Timeout
1 - 123 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Esta hoja de propiedad es mostrada desde el painter del objeto Project in PowerBuilder
La propiedad Timeout permite configurar un periodo máximo del tiempo que una instancia
puede ser ligada a un cliente. Cuando el timeout expira, el EAServer desactiva la instancia
desde el cliente. Vea la documentación para más información.
1- 123
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Si el componente es stateful,
entonces el desarrollador debe llamar a los métodos
primitives para desactivar las instancias
1 - 124 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 124
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 125 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 125
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
TransactionServer Primitives
Métodos TransactionServer:
z SetComplete( ) – Desactiva el componente
z SetAbort( ) * – Desactiva el componente
Ejemplo
// el método ejecuta la lógica de negocio
…
//Llama al EAServer para desactivar la
//instancia
its_jag.SetComplete()
return
* Cubierto en el Módulo 7, “Manejando Transacciones.”
1 - 126 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 126
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Ejemplo 1
Qué método(s) deberían desactivar la instancia?
setAmount(15000) 15000
setMonths(24) 24
calculate( )
Instance Pool
1 - 127 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 127
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Ejemplo 2
Asuma que un componente customer es stateful con los
siguientes métodos:
z Retrieve( ) retorna los datos almacenados
z Update( ) aplica los cambios a los datos almacenados y los
actualiza
Qué método (s) deberían desactivar la instancia?
retrieve(blob)
update(blob)
Customer
1 - 128 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 128
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Already no Instance no
bound? in pool?
si Recycled
si
Execute method Bind to client Instantiate
Activate Constructor
si si
Automatic Deactivate CanBe
Pooling
deactivation no Pooled
no no
Deactivate
Primitive
EnableCommit( ) / SetComplete( ) /
DisableCommit( ) SetAbort( ) Destructor
1 - 129 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 129
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 130 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 130
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
El ciclo de vida de un componente refiere a como las
instancias son creadas, ligados a un cliente, desligados de
un cliente y destruidos.
Los componentes stateless son desactivados en el retorno
del método.
Los componentes stateful permanecen ligados al cliente.
El desarrollador del componente es responsable de
desactivar un componente usando los state primitives.
1 - 131 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 131
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 132 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 132
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab 5 Preguntas
Preguntas?
Preguntas a los alumnos sobre el Lab 5-3
1 - 133 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 133
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 134
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El objetivo
Cliente
Save( )
EAServer
GetData( )
Customer
1 - 135 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 135
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Qué es un Connection Cache?
Instalando un Connection Cache
1 - 136 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 136
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para
z Instalar un Connection Cache en el EAServer
z Hacer Ping al cache en el Jaguar Manager
PowerBuilder
z Definir y codificar un método que retorne un result set usando
1 - 137 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 137
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El Connection Management
IIOP
Connection
Cache
Connection
Cache
El Connection
Manager
1 - 138 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
EAServer te permite que establezcas un pool de conexiones a varias base de datos. Cuando
un componente necesita una conexión, esto pregunta al Connection Manager para esto. El
Connection Manager provee una conexión desde el pool si existe uno, o establece una nueva
conexión física si no hay conexiones disponibles en el pool.
Cuando un componente libera una conexión, el Connection Manager retorna la conexión al
pool pero no se desconecta de la base de datos.
1- 138
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
z User ID y password
z Base de datos
z Librerías de Conectividad
1 - 139 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Todas las conexiones en un cache comparten el mismo user ID, password, base de datos, y
librerías de conectividad.
Sin embargo, muchas aplicaciones WebOLTP pueden asignar usuarios a los grupos y crear
connection caches sobre estos grupos. En estos casos, se puede obtener grandes beneficios
desde un connection cache.
1- 139
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 140 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 140
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 141 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
hay una manera para especificar un número mínimo de conexiones que el EAServer debería
establecer al inicializarse?
Respuesta: No hay una propiedad en el Jaguar Manager que permite especificar un número
mínimo de conexiones al EAServer cuando se inicializa. El EAServer provee eventos que
pueden ser codificados. Hay un evento Start que el cual se puede especificar un número fijo
de conexiones. Tu puedes codificar el evento en C en este tiempo.
1- 141
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 142
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 143
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 144
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Laboratorios 6
Lab 6-1: Instalando un Connection Cache
Lab 6-2: Familiarizarse con la Aplicación los Los Logos
1 - 145 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 145
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 146 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 146
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El GetConnectionOption
JAG_CM_FORCE
JAG_CM_NOWAIT
JAG_CM_WAIT
1 - 147 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 147
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 148 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 148
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
// Evento Activate
If NOT IsValid(itr_trans) then // Evento Deactivate
itr_trans = CREATE transaction //Release the connection
END IF Disconnect using itr_trans;
Itr_trans.dbms = “ODBC”
Itr_trans.DBParm =&
“UseContextObject=‘Yes’,CacheName=‘EASDemoDB’”
CONNECT USING itr_trans;
If itr_trans.sqlcode <> 0 THEN … process error
1 - 149 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 149
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 150 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 150
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Datos
Flags de Status
1 - 151 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 151
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Función Descripicón
GetFullState( ) Empaqueta un
DataWindow en un blob
1 - 152 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 152
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componente
data
GetFullState( ) store
blob
Retrieve( )
Data
Window SetFullState( )
1 - 153 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 153
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componente
data
SetChanges( ) store
blob
Update( )
Data
Window GetChanges( )
1 - 154 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 154
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Recuperando un DataWindow
en un Componente EAServer
Client Application Component
Deactivate
// Release the connection
DISCONNECT USING itr_trans;
1 - 155 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Este ejemplo asume que el componente es stateless, y que el componente debería ser
reusado. Note que el objeto transaction y el DataStore no necesitan ser recreados. Ellos
pueden ser creados y reusados por cada cliente para que la instancia sea ligada. Ud. No
necesita realizar la instanciación y destrucción de estos objetos cada vez se Activa y
Desactiva una instancia. Cuando la instancia es retornada al pool, este toma su objeto
transaction y datastore con él. Sin embargo, asegurarse para inicializar estos objetos en el
evento Activate y liberar todos los recursos en el evento Deactivate.
Nota: Se podría también reestablecer el DataStore en el evento Deactivate para liberar
cualquier dato de memoria.
1- 155
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Actualizando un DataWindow
en un Componente EAServer
Codifique el cliente y el componente del servidor
Revise la Guía de Tareas
1 - 156 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 156
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Un connection cache es un pool de conexiones disponibles
para una base de datos específica.
Usando connection caches mejora la performance y
escalabilidad de la aplicación.
Se define un connection cache usando el EAServer Manager.
desde un componente
1 - 157 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 157
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
GetData( )
Customer
1 - 158 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 158
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Save( )
EAServer
Customer
1 - 159 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 159
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Laboratorios
Lab 6-3:
z Examine el código del n_customer para el método getData()
z Revise los procesos
Laboratorio
Lab 6-4
z Examine el código del n_customer para el método save()
1 - 160 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 160
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 161
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Qué es una Transacción?
Transacciones en un ambiente basado en Componentes
Manejando Transacciones
1 - 162 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 162
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para:
z Modificar la propiedad del componente que determine el
soporte de transacción
z Identificar el tipo de transacción y los valores de la propiedad
falla
1 - 163 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 163
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 164 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Ejemplo: Asumir que se desea transferir dinero desde una cuenta de ahorros para una cuenta
corriente. Hay dos pasos en este proceso:
1) Debitar desde su cuenta de ahorros.
2) Depositar a su cuenta corriente.
Porque ambos pasos son necesarios para que sean satisfactorios, ellos necesitan estar
ejecutados en una transacción. Si el débito fue satisfactorio, pero el depósito falla, se debería
desear desactivar el débito. Solo si todos los pasos son satisfactorios debería realizar un
commit para la transacción.
1- 164
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Ejemplo
transferencia
Cajero Savings
1. retiro
Checking
2. deposito
Log
3. escribir
Qué sucede si al escribir el Log falla?
1 - 165 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Este ejemplo demuestra una función de transferencia en una cuenta bancaria. Una
transferencia de ahorros a corriente debe satisfacer el débito y acreditar la verificación.
El root instance coordina la transacción.
1- 165
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Transacciones 2 Tier
/* Si el Log es parte de /* Si el Log es separado
la transacción*/ de la transacción*/
IF Savings.withdraw()ok IF Savings.withdraw()ok
THEN THEN
IF Checking.deposit()ok
IF Checking.deposit()
THEN
IF log.write() ok ok THEN
THEN COMMIT;
COMMIT; ELSE
ELSE ROLLBACK;
ROLLBACK; ELSE
ELSE ROLLBACK;
ROLLBACK; END IF
ELSE IF log.write() ok THEN
ROLLBACK;
COMMIT;
END IF
ELSE
ROLLBACK;
1 - 166
END IF
TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 166
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 167 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
La transacción en una aplicación two-tier fue manejada en el código para verificar el código
de retorno desde los métodos y codificar un commit o rollback. Si la lógica cambia requiere
un cambio en como la transacción es manejada, el código también necesitará ser cambiado.
EAServer permite que definas y cambies la salida de una transacción a través del property
sheets. Cambiar a la transacción puede ser hecho también a través de código.
1- 167
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
deployment-time
La propiedad Deployment-time descrie como los
de método
Trabaja solo con conexiones obtenidas desde el EAServer
Connection Manager
1 - 168 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Se debe usar un Connection Cache en orden para usar el administrador de transacciones del
EAServer cuando el EAServer es configurado para usar el Shared Connection transaction
coordinator
1- 168
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Demo
Ejecutar la aplicación Bank con el Log como parte de la
Transacción
z Realice la transferencia exitosa y escriba
z Falle y escriba al log
1 - 169 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 169
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Manejando Transacciones
1. Determine el soporte de transacciones de los componentes
2. Configurar la propiedad Transaction Support
3. Invocar los state primitive de una transacción
1 - 170 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
El Transaction Manger del EAServer asegura que los cambios a la base de datos realizados
por la participación de componentes sean todas guardadas o deshechos.
EAServer asegura que todos los componentes participantes en la transacción usen la misma
conexión física si el Shared Connection coordinator es seleccionado. Cuando un
componente requiere una conexión desde un connection cache, EAServer automáticamente
asegura que el componente obtenga la misma conexión como otros componentes en la
misma transacción.
1- 170
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
z Supports
z Not Supported
z Mandatory*
z Never*
z OTS Style*
1- 171
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Never
1 - 172 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Mandatory – los métodos pueden ser solo invocados por otros componentes que tienen
una transacción excelente. Llamando a este componente cuando no hay transacción
excelente genera un error en tiempo de ejecución.
OTS Style – el componente puede manejar las transacciones. Esto puede heredar una
transacción del cliente. Si llamó sin una transacicón, el componente puede explícitamente
iniciar, guardar, y deshacer transacciones usando una instancia del objeto de servcio de
contexto CORBACurrent.
Never – los métodos no pueden ser invocados cuando hay una transacción excelente.
Llamando estos componentes cuando hay una transacción excelente genera un error en
tiempo de ejecución.
1- 172
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El Root Instance
Usando la tabla en la Guía de Tareas, puede A y B estar
siempre en la misma transacción si ambos son llamados
directamente desde el cliente?
Component A
Component B
1 - 173 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 173
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Root Instance
Coordinator Component A
Component B
1- 174
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Root Instance
Savings
Cajero 1. Retiro
Checking
2. Depósito
Log
3. Escribir
1- 175
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 176 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 176
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Desactiva No Desactiva
1 - 177 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Un voto para satisfactorio significa que el rol del componente en la transacción fue satisfactoria. Algunas otros
componentes podría todavía causar que la transacción falle.
un voto para fallar significa que el rol del componente en la transacción fue insatisfactoria, y sin embargo la
transacción es obligada a fallar.
El diseño de un componente en el EAServer debería ser complementametne encapsulada. El componente debería no
necesitar conocer la salida de la transacción o que otros componentes están participando en la transacción. El
componente simplemente debería indicar donde será su participación en la transacción que fue satisfactoria..
Cuando es una instancia desactivada?
z En el retorno del método, si el Automatic demarcation/deactivation es configurado en TRUE
z En el retorno del método, después del SetComplete( ) o SetAbort( )
z Si instancia está participando en una transacción, después el root instance guarda la transacción con el
1- 177
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Satisfactorio o Fracaso
return
END IF
1 - 178 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
PREGUNTAS: Si una transacción falla, se tiene que usar la función SetAbort( ) otra vez, si
es esto fue llamado por otro componente?
RESPUESTA: No se necesita llamar a SetAbort( ) para causar que la transacción falle si
otro componente ya había llamado a SetAbort(). En este caso, porque la transacción falla, la
función SetAbort maneja el ciclo de vida del componente y instruye al EAServer para
desactivar la instancia.
1- 178
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 179 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 179
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
this.GetContextService ( &
"TransactionServer", its_jag )
its_jag.CreateInstance ( in_order, &
"orderentry/n_order" )
in_order.add()
1 - 180 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Usando el shortcut requiere menos código y es más simple. Sin embargo, si el componente
está siempre ubicado en diferentes máquinas, entonces este código no debería funcionar.
1- 180
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Si la transacción es abortada?
Usar el IsTransactionAborted( ) para verificar si la
transacción pueda ser deshecha
El Método del TransactionServer retorna un valor Boolean
Ejemplo
1 - 181 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 181
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 182 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
EAServer 4 ofrece transaction coordinators: el Shared Connection coordinator, el Microsoft Distributed Transaction
Coordinator (DTC), y el OTS/XA Transaction Coordinator, y el JTS/XA Transaction Coordinator. (no mostrado en
este pantalla)
1) Para el Shared Connection coordinator, todos los componentes participantes en una transacción deben compartir
una sola conexión física a la base de datos. Los componentes participantes utilizan el transaction management service
para votar para un éxito o falla. Al final de la acción de la transacción comercial el servicio de administración de la
transacción usa la información proporcionada por los componetnes para decidir donde hace un commit o un rollback la
transacción en la base de datos.
2) EAServer proporciona soporte para usar el Microsoft DTC, que maneja transacciones que usan múltiples
conexiones físicas de la base de datos. El DTC soporta el two-phase commits y requiere la plataforma Wintel (NT,
2000, XP), ODBC, y una base de datos DTC-compliant.
3) La opción OTS/XA (Object Transaction Service X/Open Architecture Transactions) usa el Transarc Encina
transaction coordinator que es creada en el EAServer. El Encina transaction coordinator usa two-phase commit para
coordinar las transacciones entre las base de datos múltiples. El OTS/XA transaction coordinator habilita para el
control del EAServer basado en transacciones desde un aplicación cliente EAServer.
1- 182
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Una transacción es una secuencia de sentencias SQL que
completan una unidad lógica de trabajo.
EAServer provee el manejo implicito de las transacciones.
componente o método.
1 - 183 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 183
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Root Instance
n_cart n_order
n_order_items
1 - 184 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 184
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab 7 – Laboratorio
Identifique los posibles tipos de transacción para
z n_cart
z n_order
z n_order_items
1 - 185 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 185
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 186
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
El objetivo
Cliente
EAServer
add( )
n_order
n_cart
add( ) placeOrder( )
n_order_items
1 - 187 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 187
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Actualizando un componente con una Lista
Definiendo un componente ancestro
1 - 188 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 188
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para:
z Identificar tareas comunes que realiza un componente
EAServer
z Declarar variables de instancias en un componente ancestro
ancestro
z Codificar la inicialización típica de la funcionalidad en los
eventos EAServer
1 - 189 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 189
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Distributed
PowerBuilder
PowerBuilder
???
CCUO
CCUO
EAServer
Component
1 - 190 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 190
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Actualizando un Componente
Crear grupos de 2–3
Preparar una lista de items que tienen que cambiar para
1 - 191 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 191
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 192 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 192
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Variables Constructor
instancias Activate
Deactivate
CanBePooled
n_ancestro Destructor
1 - 193 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 193
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Los Objetos no visuales Two-tier y distributed requieren
cambios para tener funcionalidad en el Jaguar.
Use el checklist en la Guía de Tareas cuando actualice un
objeto no visual.
Use un componente ancestro para el Jaguar.
1 - 194 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 194
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Laboratorio 8
Lab 8-1
z Identificar las tareas comunes que un componente EAServer realiza
z Declare variables de instancias relacionadas a EAServer en un
componente ancestro
z Inserte eventos relacionados a EAServer en un componente ancestro
z Codifique la funcionalidad típica de inicialización en eventos EAServer
Lab 8-2
z Identifique las tareas necesarias para actualizar un componente
z Implementar el EAServer vote-style transaction management
z Invoque un método de otro componente EAServer
1 - 195 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 195
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
EAServer
add( )
n_order
n_cart
add( ) placeOrder( )
n_order_items
1 - 196 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 196
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab 8 Interrogantes
Revisar el código del Lab 8-1 y Lab 8-2
Preguntas / Discusiones?
1 - 197 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 197
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 198
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Piense sobre
Cliente Cliente Cliente
getData( )
getData( ) getData( )
Jaguar
Product
Product
Product
1 - 199 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 199
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
ServiceProduct Product
1 - 200 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 200
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Componentes Shared
Componentes Service
1 - 201 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 201
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para
z Describir los beneficios y características de un componente
shared
z Definir y desplegar un componente shared
service
z Definir y desplegar un componente service
1 - 202 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 202
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes Shared
Tipo de componente EAServer
Puede ser usado por múltiples clientes
muchos usuarios
Reduce el número de conexiones a la base de datos
1 - 203 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 203
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Constructor?
1 - 204 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 204
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
z Activar el DataStore
1 - 205 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 205
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 206 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Este es la hoja de propiedades del objeto project que despliega un componente al EAServer.
1- 206
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Componentes Service
Los Componentes Service realizan procesos internos o
proporcionan los servicios comunes como:
z Manteniendo las copias comunes de los datos usados
z Moviendo o replicando datos entre los origenes durante la
espera del servidor
z Maneja los archivos log de las aplicaciones
EAServer activa los servicios cuando es iniciado
1 - 207 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 207
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 208 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 208
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 209 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 209
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 210 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 210
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
JagSleep( )
Usado si escribimos en versiones anteriores de PowerBuilder
y no tenemos la función Sleep( ).
Declare una subrutina local external
1 - 211 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 211
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Los componentes Shared permiten trabajar con datos
persistentes y compartidos.
Los componentes Shared proveen acceso conveniente a los
datos comunes.
Los componentes Shared no soportan el instance pooling.
servicios comunes.
1 - 212 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 212
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Product
1 - 213 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 213
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
EAServer
Product ServiceProduct
1 - 214 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 214
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1- 215
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Tópicos
Ambiente Web / Arquitectura
Ambiente de Desarrollo de los Web Target
1 - 216 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 216
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Objetivos
Al finalizar este módulo, se debe estar hábil para
z Crear un Web Target y el profile de Deployment
z Crear una página 4GL Web usando el 4GL Web Page Wizard
capacidades de 4GL
z Escribir código usando el Coding Aids desde el System Tree
1 - 217 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 217
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
HTTP Web
Server
Browser API
Application
Server (JSP/
ASP)
PowerBuilder
Web Targets Corporate
EAServer
Data
1 - 218 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Base de datos
Almacena los recursos Web y los datos. Estos podrían combinarse en la misma
base de datos. A menudo ellos están separados en su propia base de datos.
Application Server
Extiende la funcionalidad del Web Server. PowerDynamo (incluido en EAServer)
es un servidor de páginas que permite crear páginas web dinámicas. Microsoft
ASP es otro ejemplo para la creación de páginas web dinámicas.
API
Soporta las comunicaciones entre el Web server y el servidor de páginas
(PowerDynamo).
EAServer
Almacena los componentes que pueden procesar la lógica de negocio, el manejo
de las transacciones y la seguridad.
Los Web Targets de PowerBuilder
Es el ambiente de desarrollo integrado para desarrollar páginas Web, las
utilidades incluyen la generación rápida de documentos HTML, rápida generación
de código para el lado del cliente y del lado del servidor, depuración JavaScript,
Wizards para la creación y despliegue, design time controls y property sheets
“programming by property”. Se puede desplegar las páginas web a sites FTP, a
una base de datos en PowerDynamo y sitios Active Server Pages.
1- 218
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
WebOLTP
1 - 219 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Estos son los tres tipos de soluciones que los negocios desean implementar en el Internet.
Como los productos Sybase encajan en las soluciones para estas necesidades comerciales
comunes?
1- 219
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
HTML HTTP
Web Browser
Web Server
1 - 220 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
El primer desafio para muchas compañías es ir a a la Web. Las compañías desean una
presencia en Internet, siempre que la presentacia ea limitada para una colección de páginas
Web Estáticas.
PowerBuilder 9 permite la creación de Web Targets. Con los Web Targets, los usuarios
pueden créar páginas a través de un editor WYSIWYG. PowerBuilder Web Targets puede
también importar páginas web creadas con otras herramientas Web como Microsoft
Frontpage y Macromedia DreamWeaver.
1- 220
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
JSP
HTML HTTP
Web Browser
Web Server
1 - 221 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Para publicar páginas Web dinámicas, PowerDynamo es un servidor de páginas rápido que
puede acceder a una base de datos y formatear el contenido dinámico. PowerBuilder te
brinda el editor HTML WYSIWYG HTML con soporte para:
Codificar
Funcionalidad drag & drop desde el System Tree
4GL Web Pages para la fácil integración con los componentes EAServer
Design Time Controls para los Web DataWindow
Property Sheets para habilitar el “coding by property”
Esto es una solución Web pura. Sin embargo, la lógica de Negocio escrita en script
PowerDynamo o JavaScript no es fácil reusar. El manejo de Transacciones, multithreading,
y el soporte de conexión debe codificarse. Esto es perfecto para usar los Componentes
EAServer.
Generalmente, esto es una buena solución para aplicaciones que no son transaccionales,
stateless, o no interactivos: la publicación de la base de datos – Revisar el perfil del cliente
(por ejemplo, frecuencia de millas de vuelo), mostrar la lista de productos y colección de
datos (por ejemplo, registro en línea para eventos, seminarios y así sucesivamente).
1- 221
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
WebOLTP
Enterprise
Application Server
JSP
Java COM Web Server
HTML HTTP
IIOP
PowerBuilder
CORBA
EAServer
1 - 222 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 222
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
arquitectura WebOLTP
z JSP – incluido en el EAServer
1 - 223 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 223
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Arquitectura
1 Base de datos
3
6
4
2
1 - 224 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 224
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
soportados
Automatiza el manejo de los links de los recursos Web
1 - 225 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 225
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Arquitectura Abierta
El modelo de objeto Basic Web Target object soporta
codificación para mútlples applications servers
Permite el despliegue a múltiples application servers
z VBScript
z JScript
z Etc..
1 - 226 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 226
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Script Editor
Frameset Editor
1 - 227 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 227
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Ambiente de Desarrollo
Creando PowerBuilder Web Targets
Importando páginas existentes, imágenes y código
1 - 228 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 228
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 229 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Un Web target es una aplicación Web, que contiene todos los elementos necesarios para construir un
Web site, archivos HTML, scripts, imágenes, componentes downloaded, como opciones de
configuración de conexiones a una base de datos, y despliegue.
PowerDynamo Web Site, Este wizard crea una base de datos ODBC que deberá contener al web
target. Esto configura un mapping ODBC para el website, crea la base de datos, publica la base de
datos y configura el despliegue por defecto para esta base de datos. También crea un mapping para la
URL para acceder a los archivos desde el web server.
Web Site, Este wizard simplifica las preguntas para el nombre del web target y crea un target vacío en
la ubicación que se especifique. Este wizard debería ser usado cuando el web target no está bajo el
mando de source control y si es un nuevo target (no un proyecto PowerSite existente creado en una
versión anterior de PowerSite)
JSP Target, Se usa el wizard del target JSP para construir una aplicación Web y te ayuda a configurar
las opciones de despliegue para desplegar una aplicación Web hacia un application server, como
EAServer o Tomcat.
Migrate PowerSite 7.1 Project, Use el wizard del Migrate PowerSite 7.1 Project para traer un proyecto
de PowerSite a PowerBuilder como un Web target. Se debe mantener una copia accesible a la base de
datos del Component Manager en orden para migrar los proyectos PowerSite.
Nota: PowerSite fue herramienta para diseñar páginas Web que venía con el PowerBuilder 7.0 a partir
de la versión 8.0 fue integrada a PowerBuilder y ahora es representada por los Web Target.
Source Controlled Web, Se usa el wizard del target Source Controlled para abrir un Web target que se
encuentra dentro de un sistema de source control.
1- 229
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 230 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Presionar el botón derecho en el Web target donde deseas importar los archivos. Se puede
importar uno o más archivos de un directorio o todo el directorio.
Import Files… permite que se pueda seleccionar uno o más archivos en el Web
Target.
Import Folder… permite que se puede seleccionar e importar un directorio con todo
su contenido. Un fólder con el mismo nombre como fue seleccionado debe ser
creado en el Web Target.
1- 230
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 231 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Quick Web Page, es usado para poner una página rápida en el editor web.
Web Page, es un wizard simple que crea una página web simple. El wizard
pregunta alguna información básica acerca del cascading style sheet,
headers/footers y la imagen para el background.
4GL Web Page, es un wizard más sofisticado que configura las propiedades del
4GL. La Página Web 4GL permite que se pueda declarar la creación e
instanciación de componentes EAServer, crea variables, maneja errores y otras
opciones. Esto deberá ser discutido en detalle en este capítulo como una manera
de acceder a los NVOs de PowerBuilder y otros componentes CORBA y EJB.
Web DataWindow Page, es un wizard sofisticado que consulta al usuario para
poner un DataWindow existente en un design time control en la página web.
Frameset Page, es un wizard que consulta al usuario para crear una página
HTML frame. El wizard te pide la ubicación y el nombre de los framesets.
Script, crea un archivo de texto en el web target que contendrá el código que
haya escrito el usuario (como un archivo JavaScript para ser incluido en una
página Web).
Cascading Style Sheet, este es el wizard que induce al usuario a crear una hoja
de estilo con formato propio para asignarlas a las páginas que se van a crear,
como para tener un estándar de desarrollo.
1- 231
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 232 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 232
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 233 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 233
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Configuraciones de Deployment
Las configuraciones de
Deployment pueden ser
modificadas o adicionadas
accediendo a las
propiedades del web target
Ud. puede tener múltiples
configuraciones de
Deployment (Dynamo,
ASP, basic)
El orden de las
configuraciones puede ser
modificado
1 - 234 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Si se crea un Web Target usando el PowerDynamo WebSite Wizard, una configuración de
deployment fue configurada para el web Target.
Se puede crear configuraciones de deployment adicionales accediendo a las propiedades de
los Web Target.
z Dynamo
z ASP
z Basic (static file or FTP)
Para Desplegar un web target es similar a desplegar cualquier objeto objeto project de
PowerBuilder. Se presiona el botón derecho en el target en el system tree y se selecciona
Deploy desde el menú popup.
1- 234
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 235 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 235
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
8 y 9)
Page Properties
Programación Drag & Drop
1 - 236 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 236
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 237 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 237
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
<HTML><TITLE>Result.stm</TITLE><BODY><H1>Loan
Calculator</H1>
<!--script
/* Inicilizar el Java stub */
var loan = java.CreateComponent("finance/n_loan",
"iiop://localhost:9000", "jagadmin", "");
/* Invocar el método del componente EAServer */
var payment = loan.of_calculate(document.value.amount,
document.value.months);
/* Procesar el resultado de la llamada del método */
document.WriteLn(“Su pago mensual es: "+payment);
-->
</BODY></HTML>
1 - 238 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 238
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
codificación
Procesos de depuración de páginas
1 - 239 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 239
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 240 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Si se está creando una nueva página web, se puede usar el 4GL Web Page Wizard. El Wizard puede
acceder a los componentes EAServer que puedes necesitar usar, opciones de depuración y otras
opciones.
Si ya hay una página web existente, se puede modificar esto para que se convierta en una página
web 4GL, activando el Checkbox en las propiedades de la página la opción es “Enable the 4GL Web
Server Side Event Model”.
1- 240
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 241 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
La cración de variables para toda una sesión se ha simplificado con las páginas Web 4GL.
En páginas Web no 4GL, las variables son declaradas en código. Las variables Session son
creadas llamando a métodos en el script del servidor. Con 4GL Web Pages, sin embargo,
este proceso es simplificado declarando variables en las propiedades de las páginas web.
1- 241
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 242 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
Una vez que las variables son declaradas ellos pueden se ligados a los controles en las
páginas Web 4GL. Ligando el el single line edit a la variable session username en este
ejemplo, cuando el usuario ingrese algo en el singleline edit en tiempo de ejecución, la
variable contendrá lo ingresado. Esta variable entonces puede ser usado en scripts del
servidor según el tiempo de vida especificado para esta variable.
1- 242
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
STEP 2
Localizar el método en el componente EAServer en el tab Components
del System Tree. Use la programación Drag & Drop para su server
script (o simplemente digitar la llamada de la función)
1 - 243 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 243
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Revisar
1 Database
3
6
4
2
1- 244
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Un Web target es una colección de archivos y componentes
usados para crear una aplicación Web que puede
representar todo un Web site.
Los Web sites Database pueden ser replicados para proveer
1 - 245 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 245
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Resumen
Se puede invocar los métodos de los componentes EAServer
desde un cliente HTML.
Las Páginas Web 4GL simplifican
z El reporte de Errores
z Creación de Variables
z Instanciación de componentes
1 - 246 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 246
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
Lab 10-1
Crear Stubs/Skeletons para el componente Loan
Crear un Web Target para la aplicación Loan
del Componente
Desplegar y probar
1 - 247 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 247
Derechos Reservados de TechEra e-Learning
PowerBuilder Distributed Developer v10.0 PBDD10
Módulo 1: Arquitectura Distribuida
1 - 248 TechEra e-Learning 2005 – Derechos Reservados, este producto solo puede ser usado para uso personal y no para otros fines
1- 248
Derechos Reservados de TechEra e-Learning