You are on page 1of 16

Aplicaciones Distribuidas con PowerBuilder

Por Rubn Pillaca

Dedicatoria Este libro est dedicado a mis padres Mara y Fernando, a mis hermanas y sobrinos. Notas sobre el autor Rubn Pillaca es un consultor tecnolgico de TechEra, una empresa que brinda servicios de Consultora, Capacitacin 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 enseando y utilizando PowerBuilder desde la versin 4, brindando capacitacin en las instituciones ms importantes del Per as como haber capacitado al personal de entidades pblicas y privadas del Per, constantemente es capacitado en las nuevas versiones de PowerBuilder, asistiendo a los eventos ms importantes orientados a esta Herramienta como el TechWave realizado por la Empresa Sybase Inc. de los Estados Unidos de Norteamrica, se le puede localizar en ruben@techeras.com, o en el telfono 511 2612054.

Queda prohibida la reproduccin 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 To 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 Tecnologa de PowerTeam Venezuela por compartir sus conocimientos, a Carson Hager Presidente de Cynergy Systems USA por el soporte brindado, a John Olson Jefe de Redaccin de la revista PowerBuilder Journal por brindarme un espacio en su revista, a Lourdes Gmez 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 ayudarn a distribuir este material en toda Latinoamrica 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, compaeros, 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 fcil y rpida 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 programacin, 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 aplicacin comercial paso a paso, utilizando las caractersticas propias de una herramienta orientada a objetos como la herencia, este desarrollo se caracteriza principalmente por la creacin de clases principales que nos van a permitir desarrollar una aplicacin reutilizando al mximo los objetos.

Importante
Este libro est orientado a ensearte los conceptos de las aplicaciones distribuidas y se van aplicando hacia la Mdulo de Ventas, para esto el autor te provee de unos archivos que los puedes bajar de la pgina Web www.techeras.com, estos archivos contienen las libreras de desarrollo, las libreras de solucin, 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 evaluacin en la Pgina Web de Sybase Inc. www.sybase.com/powerbuilder www.sybase.com/easerver Requisitos y consideraciones de los productos: PowerBuilder: Para instalar el PowerBuilder versin 9.0 y usar los Web Targets se debe tener instalado el Internet Explorer versin 5.5 superior. Se recomienda como mnimo 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 opcin 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 mnimo 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, tambin 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 direccin : http://www.sybase.com/downloads, escoges la opcin EBFs/Maintenance. Si no tienes un usuario de acceso, puedes generarte uno, luego procedes a descargar cada actualizacin de los productos. Adicionales: Para efectos de poder tener una relacin 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 gustara 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 Correccin: He realizado todo el esfuerzo para asegurarme de que no exista errores ni en el texto ni en el cdigo. Sin embargo, a veces estamos propensos a equivocarnos, y deseamos mantenerlo informado de cualquier fallo que hayamos encontrado y corregido, por lo que sera 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. Generacin. DTC. Desing Time Control.

CONTENIDO
Captulo 1 Aplicaciones Distribuidas Tema Pgina Aplicaciones Distribuidas La computacin Distribuida Las capaz de la aplicacin Interfaz de Usuario La lgica 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 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 Implementacin o Servidor Servidores de Aplicaciones Soportados por PowerBuilder PowerBuilder y EAServer estn totalmente integrados Microsoft Transaction Server (MTS) Diseando aplicaciones distribuidas Tres razones principales para moverse a una arquitectura distribuida Determinar los requerimientos de la Aplicacin Uso de tcnicas orientadas a objetos Seleccionar los objetos remotos cuidadosamente Resumen Capitulo 2 El nuevo ambiente de PowerBuilder Tema Acerca de PowerBuilder Aplicaciones Cliente/servidor y Distribuidas Aplicaciones Web Conceptos y trminos 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 Botones en el PowerBar Acerca de los PowerTips El Clip window El Output Window Creando y abriendo workspaces Pgina

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 lnea de comando Trabajando con los tools (herramientas) Para abrir un tool: Resumen de los Tools Resumen

Captulo 3 El servidor de Aplicaciones EAServer Tema El Enterprise Application Server EAServer Arquitectura del EAServer Roles de un Component Transaction Server (CTS) Administracin del Ciclo de Vida de los Componentes Cach de Conexiones Administracin 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 Conectndose al EAServer - Jaguar Manager Iniciando el Sybase Central en Windows Conectndose al plug-in del Jaguar Manager Conectndose 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 Pgina

Captulo 4 Componente con PowerBuilder Tema 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 Conectndose al Jaguar Estableciendo mltiples conexiones Usando el Connection Wizard Usando el objeto connection generado El evento error del objeto Connection Los cdigos de error del objeto Connection Generando el EAServer proxy La aplicacin cliente de las Operaciones Connectndose al EAServer Accesando al componente EAServer Creando el componente EAServer Ejecutando la aplicacin Destruyendo el EAServer proxy Resumen Captulo 5 El ciclo de vida de los componentes Tema Pgina 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 o Constructor, Activate, Deactivate, CanBePooled, Destructor Diseando 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 Desactivacin Temprana Instance pooling Soportando el instance pooling Tcnicas para construir y reusar componentes Propiedad Instance timeout Resumen Pgina

Captulo 6 El Connection Cache y el acceso a la base de datos Tema Pgina El Connection Cache Drivers El Connection Manager Administracin del connection cache Creando un connection cache Modificando un connection cache Propiedades del connection cache Determinando el nmero de conexiones en un cache Parmetros de conexin del Connection Cache Database Borrando un connection cache El utilitario Ping Pautas generales para la instalacin del connection cache Conectndose a una base de datos El objeto Transaction Encontrando una conexin 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 conexin a una base de datos de un objeto EAServer Resumen Captulo 7 Sincronizacin de los DataWindows Tema Pgina Trabajando con DataWindows en un ambiente Distribuido Recuperando datos usando el EAServer Obteniendo datos desde un componente EAServer Sincronizacin del DataWindow Como trabaja la sincronizacin del DataWindow Funcin GetFullState Funcin SetFullState Usando la sincronizacin del DataWindow para actualizar Funcin GetChanges Funcin SetChanges Creacin de la aplicacin Ventas Creacin del target ventas_server Declaracin de variables de instancias Programacin de los Eventos del objeto n_ancestro o Evento Constructor, Activate, Deactivate, Destructor, CanBePooled Heredar una clase de n_ancestro Grabar n_mantenimiento Creacin de funciones Compartir libreras Distribuyendo el componente Programando la interfaz del Cliente Creacin del Objeto Proxy Creacin del objeto Connection Declaracin de variables globales

Conectndose al servidor Jaguar Programando el objeto w_mantenimiento Programacin de los eventos Heredar un mantenimiento Ingreso de datos Tcnicas 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 Captulo 8 Transacciones con el EAServer Tema Pgina El manejo de las Transacciones Las Transacciones en el EAServer Definiendo como un componente participa en una transaccin Los Transaction coordinators Propiedad de Transaccin de los componentes Objeto TransactionServer Usando el objeto TransactionServer Las transacciones entre componentes Creando los componentes Transaccionales para la aplicacin Ventas Abrir el Workspace Heredando desde la clase n_ancestro el objeto n_cabecera_detalle Creacin del proyecto Creacin de los objetos para la Cotizacin Creacin del objeto Project Programando la interfaz del Cliente Creacin de los objetos Proxy Conectndose al servidor Jaguar Programando el objeto w_cabecera_detalle Programacin de los eventos Heredar para la cotizacin Programacin de los eventos Ejecucin de la aplicacin Componentes stateless y las transacciones Componentes stateful y las transacciones Configurando la propiedad Transaction Timeout Resumen Capitulo 9 Tipos de Componentes

Tema Pgina Tipos de componentes EAServer Componentes Standard Componentes Shared Manejando estados como un objeto shared Creando un componente Shared Declaracin de variables Creacin de funciones Programacin de eventos Desplegando un componente EAServer shared Ejecucin del componente Shared Programacin del objeto w_listado_pedido Ejecutando otros cliente Componentes Services Los componentes service Los mtodos start(), run(),stop() Implementando otras interfaces Creando un componente service Creacin del componente service con el wizard Creacin de funciones Instalando el componente service manualmente en el EAServer Refrescando los componentes service Revisando el Log de archivo El Atributo Transaction La opcin Automatic Demarcation/Deactivation Resumen Captulo 10 Accesando desde un cliente HTML a los componentes Tema Arquitectura del Ambiente Web Base de datos Application Server API EAServer PowerBuilder Web Targets Arquitectura para construir Aplicaciones Web Web Sites Estticas Web Sites Dinmicos Arquitectura WebOLTP Una solucin WebOLTP Arquitectura Desarrollando Web Targets en PowerBuilder Arquitectura Abierta 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 Creando los Web Targets El Sybase Central Llamando al EAServer desde una Pgina Web Generar y compilar un Java Stub Creando una pgina HTML en PowerBuilder Pgina

Quick Web Page Web Page 4GL Web Page Web DataWindow Page Frameset Page Script Cascading Style Sheet. Creando una Pgina Web 4GL Pginas Web 4GL Creando una pgina con el wizard 4GL Web Page Diseo de la pgina Crear una tabla Agregando controles Single Line Field Agregando controles List Box Agregando un control Button Centrando los controles Propiedades de Pgina Agregando variables a las pginas Propiedades de los controles Usando la ayuda para codificar en el Editor Web Importando pginas existentes, Imgenes y cdigo Configuraciones de Despliegue(Deploy) Asociar el PowerDynamo con el EAServer Ejecutando la aplicacin Web con la opcin Run Llamando manualmente a un componente EAServer Resumen Captulo 11 El Web DataWindow Tema Pgina 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 versin anterior del componente genrico 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 Diseando objetos DataWindow Usando objetos DataWindow existentes Configurando las propiedades HTML en el painter DataWindow Los Web DataWindows en una pgina Web El componente del servidor El Web DataWindow Page El editor de la pgina Web Insertando el control DataWindow Especificando un objeto DataWindow Grabando y desplegando hacia la base de datos del Web Site Ejecutando la aplicacin Web Agregando Link entre DataWindows Creacin del Enlace Clientes ricos versus clientes delgados Modificando las propiedades del DataWindow

Controlando el tamao del cdigo 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 Aadiendo HTML para un control Usando el control Button Acciones de botones no soportadas Imgenes GIF y JPEG para botones Uso de mtodos del control cliente Usando controles Picture Validacin y campos Computados en el objeto DW Creando el JavaScript caching para los mtodos 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 Mtodos del lado del servidor Resumen

INTRODUCCION PowerBuilder tiene ms de 10 aos en el Mercado y sigue siendo una de las Herramientas Lderes 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 programacin que est compuesto de diferentes componentes que permiten el desarrollo rpido de aplicaciones. Por ser una herramienta orientada a objetos permite aprovechar las caractersticas de esto, maximizando la reutilizacin 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 rpido con este lenguaje. Por ser una herramienta que corre en Windows puede trabajar con todos los controles estndares de este entorno como los botones, checkboxes, listboxs, etc.

You might also like