00 intro ducci on

16
Aplicaciones Distribuidas con PowerBuilder Por Rubén Pillaca

Upload: solin-castillo

Post on 09-Aug-2015

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 00 Intro Ducci On

Aplicaciones Distribuidas con

PowerBuilder

Por Rubén Pillaca

Page 2: 00 Intro Ducci On

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 [email protected], o en el teléfono 511 – 2612054.

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: [email protected] Telefono: 511-2612054 DEPOSITO LEGAL: Cert. Nro. 1501012004-0526 Ley 26905 – Biblioteca Nacional del Perú

Page 3: 00 Intro Ducci On

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.

Page 4: 00 Intro Ducci On

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 [email protected] 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.

Page 5: 00 Intro Ducci On

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 [email protected] 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.

Page 6: 00 Intro Ducci On

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.

Page 7: 00 Intro Ducci On

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 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 Botones en el PowerBar Acerca de los PowerTips El Clip window El Output Window

Creando y abriendo workspaces

Page 8: 00 Intro Ducci On

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

Page 9: 00 Intro Ducci On

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

Page 10: 00 Intro Ducci On

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 o Constructor, Activate, 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

Page 11: 00 Intro Ducci On

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

Page 12: 00 Intro Ducci On

• 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

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

Page 13: 00 Intro Ducci On

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

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 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 Página Web Generar y compilar un Java Stub

Creando una página HTML en PowerBuilder

Page 14: 00 Intro Ducci On

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 Usando objetos DataWindow existentes Configurando las propiedades HTML en el painter DataWindow

Los Web DataWindows en una página Web 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

Page 15: 00 Intro Ducci On

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

Page 16: 00 Intro Ducci On

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.