Sei sulla pagina 1di 16

Aplicaciones Distribuidas con PowerBuilder

Por Rubén Pillaca

Aplicaciones Distribuidas con PowerBuilder Por Rubén Pillaca

Dedicatoria

Este libro está dedicado a mis padres María y Fernando, a mis hermanas y sobrinos.

Notas sobre el autor

Rubén Pillaca es un consultor tecnológico de TechEra, una empresa que brinda servicios de Consultoría, Capacitación y Desarrollo de Sistemas, radicada en Lima – Perú, es un Programador de PowerBuilder e Instructor de esta herramienta, es miembro del International Sybase User Group (ISUG); ha estado enseñando y utilizando PowerBuilder desde la versión 4, brindando capacitación en las instituciones más importantes del Perú así como haber capacitado al personal de entidades públicas y privadas del Perú, constantemente es capacitado en las nuevas versiones de PowerBuilder, asistiendo a los eventos más importantes orientados a esta Herramienta como el TechWave realizado por la Empresa Sybase Inc. de los Estados Unidos de Norteamérica, se le puede localizar en ruben@techeras.com, o en el teléfono 511 – 2612054.

en ruben@techeras.com , o en el teléfono 511 – 2612054. Queda prohibida la reproducción total o
en ruben@techeras.com , o en el teléfono 511 – 2612054. Queda prohibida la reproducción total o

Queda prohibida la reproducción total o parcial de esta obra sin el consentimiento expreso de su auor.

Copyright: Ruben Pillaca – TechEra e-Learning Email: ruben@techeras.com

Telefono: 511-2612054 DEPOSITO LEGAL: Cert. Nro. 1501012004-0526 Ley 26905 – Biblioteca Nacional del Perú

Reconocimientos

Muchas personas han ayudado para hacer posible este libro, agradecezco a mis amigos Roberto Merino por darme muchos ánimos por realizar este libro con sus sabios consejos, a mi Tío Pedro Quispe Pillaca, a Jorge Chuquitaype Consultor de Consulting Asociados por brindarme apoyo con sus instalaciones de Consulting y ser mi auspiciador, a Marco La Torre de Sybase Perú por su apoyo con sus apreciaciones, a Lilibeth DaSilva Directora de Tecnología de PowerTeam Venezuela por compartir sus conocimientos, a Carson Hager Presidente de Cynergy Systems USA por el soporte brindado, a John Olson Jefe de Redacción de la revista PowerBuilder Journal por brindarme un espacio en su revista, a Lourdes Gómez de Sybase Latinoamerica por ayudarme a impulsar mis proyectos sobre PowerBuilder, a Sam Lakkundi de Sybase Inc. por brindarme material sobre PowerBuilder, a Mauricio Vetrano de Sybase Latinoamerica por el apoyo brindado, a los miembros del International Sybase User Group (ISUG) quienes me brindaron su apoyo de dar a conocer mi libro, a los Instructores de PowerBuilder y EAServer de Sybase Inc. quienes me brindaron mucho material, a mis amigos Latinos que me ayudarán a distribuir este material en toda Latinoamérica y a todos los asistentes del TechWave 2004 realizado en Orlando Florida por apreciar mi trabajo sobre este Libro y darme muchos consejos y a mis amigos, compañeros, profesores y alumnos del Instituto SISE.

A quien va dirigido este Libro?

Este libro ha sido confeccionado para aquellas personas que quieren aprender esta herramienta de una manera fácil y rápida para el desarrollo de Aplicaciones Distribuidas y Web con PowerBuilder.

Asimismo cabe recalcar que para poder tener buenos resultados los lectores deben tener conocimientos de PowerBuilder y de programación, porque este Libro trata acerca del desarrollo de Aplicaciones Distribuidas con PowerBuilder y se requiere un nivel adecuado de PowerBuilder, pero si el lector no tiene mucha experiencia con esta herramienta podrá seguir los ejercicios para tener un panorama sobre esta nueva arquitectura con PowerBuilder.

Para poder asegurar el aprendizaje el lector podrá tener el avance de una aplicación comercial paso a paso, utilizando las características propias de una herramienta orientada a objetos como la herencia, este desarrollo se caracteriza principalmente por la creación de clases principales que nos van a permitir desarrollar una aplicación reutilizando al máximo los objetos.

Importante

Este libro está orientado a enseñarte los conceptos de las aplicaciones distribuidas y se van aplicando hacia la Módulo de Ventas, para esto el autor te provee de unos archivos que los puedes bajar de la página Web www.techeras.com, estos archivos contienen las librerías de desarrollo, las librerías de solución, la base de datos, y una guia para poder utilizarlas, asimismo puedes enviar un correo a cursos@techeras.com y te enviaremos esos archivos.

Productos a usar

Es importante indicar al lector, que para el mejor uso de este Libro, el lector debe de contar con las siguientes versiones de los productos:

PowerBuilder 9.0

EAServer 4.2

Anywhere 8.0

PowerDynamo 3.6.

Estos productos, se encuentran disponibles de forma gratuita para efectos de desarrollo y evaluación en la Página Web de Sybase Inc.

www.sybase.com/powerbuilder

www.sybase.com/easerver

Requisitos y consideraciones de los productos:

PowerBuilder:

Para instalar el PowerBuilder versión 9.0 y usar los Web Targets se debe tener instalado el Internet Explorer versión 5.5 ó superior. Se recomienda como mínimo 128 MB de memoria RAM. Puede ser instalado en Sistemas Operativos Windows 2000 professional, Windows 2000 Server o Windows XP. Cuando se Instala PowerBuilder se debe de escoger la opción Custom/Full para tener todas las opciones intaladas.

EAServer:

El EAServer por ser un servidor requiere ser instalado en Sistemas Operativos Windows 2000 professional, Windows 2000 Server o Windows XP.

Se recomienda como mínimo 256 MB de Memoria RAM por realizar tareas de servidor de Aplicaciones y Servidor Web

Cuando se Instala el EAServer se debe de escoger todas las opciones para poder manipularlas, por defecto se instala el servidor de nombre Jaguar, tener cuidado con confundir el producto EAServer con el servidor Jaguar, este producto puede tener muchos servidores y uno de ellos es Jaguar, también se pueden crear otros servidores.

EBFs/Maintenance:

Sybase constantemente, corrige algunos bugs de sus productos y es conveniente tener actualizado las versiones de los productos, para el PowerBuilder y EAServer existen actualizaciones, se tiene actualmente el parche para PowerBuilder 9.0.1 y EAServer 4.2.2, esto los puedes descargar de la siguiente dirección :

http://www.sybase.com/downloads, escoges la opción EBFs/Maintenance.

Si no tienes un usuario de acceso, puedes generarte uno, luego procedes a descargar cada actualización de los productos.

Adicionales:

Para efectos de poder tener una relación constante con los lectores así como de enviarte material extra, ejemplos y hacerte participe de los eventos, y de lo nuevo que vendrá en un futuro con PowerBuilder, nos gustaría que nos enviaras los siguientes datos:

Nombre Completo:

Email:

Fecha de Nacimiento:

Empresa:

Ciudad:

Pais:

Herramientas Utilizadas:

DBMS:

Estos datos pueden ser enviados al correo cursos@techeras.com

Foro de PowerBuilder:

Asimismo para poder ayudarte en las consultas referentes a los temas de PowerBuilder y EAServer, contamos con un foro dedicado exclusivamente a apoyarte con tus consultas.

Erratas y Corrección:

He realizado todo el esfuerzo para asegurarme de que no exista errores ni en el texto ni en el código. Sin embargo, a veces estamos propensos a equivocarnos, y deseamos mantenerlo informado de cualquier fallo que hayamos encontrado y corregido, por lo que sería necesario que nos enviara sus datos para tenerlo registrado y poder actualizarlo constantemente.

Abreviaciones:

IIOP.- Internet Inter ORB Protocol CORBA.- Common Object Request Broker Architecture ORB.- Object Request Broker EAServer.- Enterprise Application Server NVO.- Non visual Object ASE.- Adaptive Server Enterprise SDI.- Simple Document Interface MDI.- Multiple Document Interface PFC.- PowerBuilder Fundation Class IDL.- Interface Defination Languaje RMI .- Remote Method Invocation API.- Application Program Interface CCUO.-Custom Class User Object URL.- Uniform Resource Locator FTP.- Protocolo de transferencia de archivos (File Transfer Protocol) 4GL.- Lenguaje de 4ta. Generación. DTC. Desing Time Control.

CONTENIDO

Capítulo 1 Aplicaciones Distribuidas

Tema

Página

Aplicaciones Distribuidas La computación Distribuida Las capaz de la aplicación

Interfaz de Usuario La lógica de Negocio Los Datos

La arquitectura two-tier o cliente/servidor Ventajas de la arquitectura cliente/servidor Problemas con la arquitectura cliente/servidor Fallas en la seguridad El trabajo de clientes pesados Arquitectura Distribuida

El trabajo de clientes pesados Arquitectura Distribuida Ventajas y Desventajas de la Arquitectura Distribuida

Ventajas y Desventajas de la Arquitectura Distribuida Arquitecturas Distribuidas

Microsoft DCOM JavaSoft RMI OMG CORBA

o

CORBA - Stubs

o

Object Request Broker (ORB)

o

CORBA – Skeleton

o

Implementación

o

Servidor

Servidores de Aplicaciones Soportados por PowerBuilder

PowerBuilder y EAServer están totalmente integrados Microsoft Transaction Server (MTS)

Diseñando aplicaciones distribuidas Tres razones principales para moverse a una arquitectura

distribuida Determinar los requerimientos de la Aplicación Uso de técnicas orientadas a objetos

Seleccionar los objetos remotos cuidadosamente Resumen

Capitulo 2 El nuevo ambiente de PowerBuilder

Tema

Página

Acerca de PowerBuilder

Aplicaciones Cliente/servidor y Distribuidas Aplicaciones Web Conceptos y términos Workspaces y targets

PowerScript, Web target

El ambiente de PowerBuilder

Cuando inicias PowerBuilder El System Tree window

El tab page Workspace, Page, Language, Components El PowerBar

El tab page Workspace, Page, Language, Components El PowerBar

Botones en el PowerBar Acerca de los PowerTips El Clip window El Output Window

Botones en el PowerBar Acerca de los PowerTips El Clip window El Output Window
Botones en el PowerBar Acerca de los PowerTips El Clip window El Output Window

Creando y abriendo workspaces

Creando un workspace

Abriendo un workspace

Para cambiar workspaces

Para cambiar el workspace para un reciente workspace:

Acerca de los wizards

Los tipos de wizard relacionados Creando un target

Tipos de Target Los targets PowerScript application El wizard del Target Application

El wizard del Target Template Application

o

Los MDI, SDI y PFC-based Application

El wizard del target Existing Application

Los targets PowerScript component

El wizard del target EAServer Component

El wizard del target COM/MTS Component

El wizard del target Automation Server

Los Web targets El wizard del target Dynamo Web Site El wizard del Target Web Site El wizard del Migrate PowerSite 7.1 Project El wizard del target Source Controlled Web

Manejando workspaces Adicionando un target existente a un workspace Removiendo un target desde un workspace Especificando las propiedades del Workspace Especificando el orden de los target

Vista preliminar del Despliegue Construyendo workspaces En el ambiente de desarrollo Desde una línea de comando

Trabajando con los tools (herramientas)

Para abrir un tool:

Resumen de los Tools Resumen

Capítulo 3 El servidor de Aplicaciones EAServer

Tema

Página

El Enterprise Application Server EAServer Arquitectura del EAServer Roles de un Component Transaction Server (CTS) Administración del Ciclo de Vida de los Componentes Caché de Conexiones Administración de Transacciones Seguridad

Soporte de Clientes y Tipos de Componentes en el EAServer

Clientes stub y proxy Soporta J2EE

El Ambiente del EAServer Servidor Inicializando el servicio del EAServer Conectándose al EAServer - Jaguar Manager Iniciando el Sybase Central en Windows Conectándose al plug-in del Jaguar Manager Conectándose al Jaguar Manager

Jaguar Manager Shutting down, reiniciar, o refrescar el servidor Examinando el Log del Servidor Protocolos de Red soportados Packages

Creando un nuevo package

Instalando el package en un servidor

Borrando un package

Componentes Administrando componentes desde el Jaguar Manager Instalando componentes Modificando componentes Borrando componentes Repositorio Class Libraries / Virtual Machines Resumen

Capítulo 4 Componente con PowerBuilder

Tema

Página

Desarrollo de Componentes Creando un profile de EAServer El wizard del componente EAServer

Construyendo el objeto operaciones

Haciendo deploy al objeto EAServer

Aplicaciones cliente PowerBuilder Construyendo un cliente EAServer en PowerBuilder El objeto Connection

Propiedades del objeto Connection

El Userid, pasword, y el connectstring

Las propiedades del EAServer connection

Funciones y Eventos del objeto Connection

Conectándose al Jaguar

Estableciendo múltiples conexiones

Usando el Connection Wizard

Usando el objeto connection generado

El evento error del objeto Connection

Los códigos de error del objeto Connection Generando el EAServer proxy La aplicación cliente de las Operaciones

Connectándose al EAServer

Accesando al componente EAServer

Creando el componente EAServer

Ejecutando la aplicación

Destruyendo el EAServer proxy Resumen

Capítulo 5 El ciclo de vida de los componentes

Tema

Página

Manejando el comportamiento de los Componentes

Los Componentes EAServer El ciclo de vida (life-cycle) del componente EAServer

Eventos del ciclo de vida de componentes EAServer

Activate,

o

Constructor,

Deactivate,

CanBePooled,

Destructor Diseñando los componentes Componente Stateful Configurando un componente para ser stateful Ejecutando el ejemplo

Componentes Stateless Configurando un componente para ser stateless Haciendo los componentes stateless

Manejando estados para los componentes stateless Componentes Stateful Versus Stateless Desactivación Temprana Instance pooling

Soportando el instance pooling Técnicas para construir y reusar componentes Propiedad Instance timeout Resumen

Capítulo 6 El Connection Cache y el acceso a la base de datos

Tema

Página

El Connection Cache

Drivers

El Connection Manager

Administración del connection cache

Creando un connection cache

Modificando un connection cache

Propiedades del connection cache

Determinando el número de conexiones en un cache Parámetros de conexión del Connection Cache Database Borrando un connection cache El utilitario Ping Pautas generales para la instalación del connection cache Conectándose a una base de datos

El objeto Transaction

Encontrando una conexión a la base de datos en el cache

Objeto Transaction en el EAServer Opciones del DBPARM

EL CacheName

El UseContextObject

El GetConnectionOption

El ReleaseConnectionOption

Adicionando la conexión a una base de datos de un objeto EAServer

Resumen

Capítulo 7 Sincronización de los DataWindows

Tema

Página

Trabajando con DataWindows en un ambiente Distribuido

Recuperando datos usando el EAServer

Obteniendo datos desde un componente EAServer

Sincronización del DataWindow Como trabaja la sincronización del DataWindow

Función GetFullState

Función SetFullState

Usando la sincronización del DataWindow para actualizar

Función GetChanges

Función SetChanges

Creación de la aplicación Ventas

Creación del target ventas_server

Declaración de variables de instancias

Programación de los Eventos del objeto n_ancestro

o

Evento

Constructor,

Activate,

Deactivate,

Destructor, CanBePooled Heredar una clase de n_ancestro

Grabar n_mantenimiento

Creación de funciones

Compartir librerías

Distribuyendo el componente

Programando la interfaz del Cliente

Creación del Objeto Proxy

Creación del objeto Connection

Declaración de variables globales

Conectándose al servidor Jaguar

Programando el objeto w_mantenimiento

Programación de los eventos Heredar un mantenimiento

Ingreso de datos

Técnicas para enviar datos

Pasando datos usando una cadena

Pasando elementos en cada tiempo

Pasando datos como un string tab-delimited

Usando un objeto structure para pasar datos

Copiando datos para un origen non-DataWindow

Usando el objeto ResultSet Resumen

Capítulo 8 Transacciones con el EAServer

Tema

Página

El manejo de las Transacciones Las Transacciones en el EAServer Definiendo como un componente participa en una transacción Los Transaction coordinators Propiedad de Transacción de los componentes

Objeto TransactionServer

Usando el objeto TransactionServer Las transacciones entre componentes

Creando los componentes Transaccionales para la aplicación Ventas

Creando los componentes Transaccionales para la aplicación Ventas

Abrir el Workspace Heredando desde la clase n_ancestro el objeto n_cabecera_detalle

Abrir el Workspace Heredando desde la clase n_ancestro el objeto n_cabecera_detalle

Creación del proyecto Creación de los objetos para la Cotización Creación del objeto Project Programando la interfaz del Cliente

Creación de los objetos Proxy

Conectándose al servidor Jaguar

Programando el objeto w_cabecera_detalle

Programación de los eventos

Heredar para la cotización

Programación de los eventos

Ejecución de la aplicación

Componentes stateless y las transacciones Componentes stateful y las transacciones Configurando la propiedad Transaction Timeout Resumen

Capiítulo 9 Tipos de Componentes

Tema

Página

Tipos de componentes EAServer Componentes Standard Componentes Shared

Manejando estados como un objeto shared Creando un componente Shared

Declaración de variables

Creación de funciones Programación de eventos Desplegando un componente EAServer shared Ejecución del componente Shared Programación del objeto w_listado_pedido

Ejecutando otros cliente Componentes Services Los componentes service Los métodos start(), run(),stop() Implementando otras interfaces

Creando un componente service Creación del componente service con el wizard Creación de funciones Instalando el componente service manualmente en el EAServer Refrescando los componentes service Revisando el Log de archivo El Atributo Transaction La opción Automatic Demarcation/Deactivation Resumen

Capítulo 10 Accesando desde un cliente HTML a los componentes

Tema

Página

Arquitectura del Ambiente Web

Arquitectura del Ambiente Web

Base de datos Application Server API EAServer PowerBuilder Web Targets

Base de datos Application Server API EAServer PowerBuilder Web Targets
Base de datos Application Server API EAServer PowerBuilder Web Targets
Base de datos Application Server API EAServer PowerBuilder Web Targets

Arquitectura para construir Aplicaciones Web

Web Sites Estáticas Web Sites Dinámicos Arquitectura WebOLTP Una solución WebOLTP

Arquitectura Desarrollando Web Targets en PowerBuilder

Arquitectura Abierta

Ambiente de desarrollo del Web Target Creando PowerBuilder Web Targets

Ambiente de desarrollo del Web Target Creando PowerBuilder Web Targets

Los Web targets Dynamo Web Site Web Site El wizard del Target JSP Migrate PowerSite 7.1 Project Source Controlled Web

Los Web targets Dynamo Web Site Web Site El wizard del Target JSP Migrate PowerSite 7.1
Los Web targets Dynamo Web Site Web Site El wizard del Target JSP Migrate PowerSite 7.1
Los Web targets Dynamo Web Site Web Site El wizard del Target JSP Migrate PowerSite 7.1
Los Web targets Dynamo Web Site Web Site El wizard del Target JSP Migrate PowerSite 7.1

Creando los Web Targets El Sybase Central Llamando al EAServer desde una Página Web Generar y compilar un Java Stub

Creando una página HTML en PowerBuilder

Quick Web Page

Web Page

4GL Web Page

Web DataWindow Page

Frameset Page

Script

Cascading Style Sheet.

Creando una Página Web 4GL Páginas Web 4GL Creando una página con el wizard 4GL Web Page Diseño de la página Crear una tabla Agregando controles Single Line Field Agregando controles List Box Agregando un control Button Centrando los controles Propiedades de Página Agregando variables a las páginas Propiedades de los controles Usando la ayuda para codificar en el Editor Web Importando páginas existentes, Imágenes y código Configuraciones de Despliegue(Deploy) Asociar el PowerDynamo con el EAServer Ejecutando la aplicación Web con la opción Run Llamando manualmente a un componente EAServer Resumen

Capítulo 11 El Web DataWindow

Tema

Página

El Web DataWindow HTML DataWindow Como trabaja el Web DataWindow Accesando a un Web DataWindow El Web DataWindow, el componente del servidor y el control del cliente El componente del servidor Usando una versión anterior del componente genérico

las definiciones del objeto DataWindow El wizard del Web DataWindow Container project Creando el proyecto Web DataWindow container con el Wizard Desplegando los DataWindows Mostrando el System Tree Diseñando objetos DataWindow

Configurando las propiedades HTML en el painter DataWindow Los Web DataWindows en una página Web

Usando objetos DataWindow existentes

El componente del servidor

El Web DataWindow Page

El editor de la página Web

Insertando el control DataWindow

Especificando un objeto DataWindow

Grabando y desplegando hacia la base de datos del Web Site Ejecutando la aplicación Web

Agregando Link entre DataWindows Creación del Enlace

Clientes ricos versus clientes delgados Modificando las propiedades del DataWindow

Controlando el tamaño del código generado Usando expresiones

Codificando el lado del cliente Los eventos del contro cliente Codificando en el objeto DataWindow Usando controles botones en el objeto DataWindow Enviando HTML para controles en un Web DataWindow Añadiendo HTML para un control Usando el control Button Acciones de botones no soportadas Imágenes GIF y JPEG para botones Uso de métodos del control cliente Usando controles Picture Validación y campos Computados en el objeto DW

Creando el JavaScript caching para los métodos del Web DataWindow

Configurando la propiedad JavaScript Caching El wizard del Web DataWindow JavaScript Generator Codificando eventos del lado del servidor

Codificando en el lado del servidor Métodos del lado del servidor Resumen

INTRODUCCION

PowerBuilder tiene más de 10 años en el Mercado y sigue siendo una de las Herramientas Líderes en el Desarrollo de Aplicaciones cliente/servidor, el nuevo reto de esta Herramienta es el Desarrollo de Aplicaciones Distribuidas y Aplicaciones Web, contando para esto con nuevas funcionalidades que ayudan mucho a los programadores a poder migrar sus desarrollos cliente/servidor a esa nueva Arquitectura de una manera menos costosa que con otros productos, viene ahora integrada totalmente con el Servidor de Aplicaciones EAServer, un producto que brinda buenas opciones para este tipo de Desarrollo.

PowerBuilder es una herramienta de programación que está compuesto de diferentes componentes que permiten el desarrollo rápido de aplicaciones. Por ser una herramienta orientada a objetos permite aprovechar las características de esto, maximizando la reutilización de objetos y clases creadas, así como el de poder utilizar objetos creados por otras herramientas, el lenguaje utilizado es el PowerScript, un lenguaje totalmente amigable que tiene muchas similitudes con otros lenguajes permitiendo a los desarrolladores familizarse rápido con este lenguaje. Por ser una herramienta que corre en Windows puede trabajar con todos los controles estándares de este entorno como los botones, checkboxes, listboxs, etc.