00 intro ducci on
TRANSCRIPT
![Page 1: 00 Intro Ducci On](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/1.jpg)
Aplicaciones Distribuidas con
PowerBuilder
Por Rubén Pillaca
![Page 2: 00 Intro Ducci On](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/2.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/3.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/4.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/5.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/6.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/7.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/8.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/9.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/10.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/11.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/12.jpg)
• 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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/13.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/14.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/15.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081801/557212fa497959fc0b91558f/html5/thumbnails/16.jpg)
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.