Transcript Taking PowerBuilder to the Web
Taking PowerBuilder Applications To The Web
Donald D. Clayton and Bryan Roberts Intertech Consulting, Inc.
[email protected] (713) 586-6481
Today’s Agenda: PB to Web Strategies
There are a number of different approaches to moving PB to the web, including:
“Screen Scraping” with Appeon Application Partitioning (moving business logic to middle tier) PB NVOs as Web Services providers Integrating PB Business Objects with other languages .Net
C++ Java/JSP/Struts Using the DataWindow for Web Reporting Using other PB to Web Frameworks
Traditional PB-to-the-Web Options
1.
2.
3.
Complete Rewrite in Java/J2EE, HTML and JavaScript Complete rewrite of everything taking years and costing a lot of money Complete Rewrite in .NET, HTML, and JavaScript Complete rewrite of everything taking years and costing a lot of money PowerBuilder and EAServer in Java/J2EE, HTML and JavaScript Reuse all DataWindows (up to 60% of avg. app) and all Business Logic NVOs (0-15% of avg. app) Rewrite user interface and navigation with JSPs and JavaScript taking months and suggest you get help on first project
Moving PB to the Web with Appeon
Appeon ® for PowerBuilder ® Applications
– Deploy existing PB applications to the Web
Developers
– Using only PB skills, build NEW Web applications immediately with unparalleled productivity
Users
– Same rich-client GUI but running in standard IE browser
Appeon Components
3 Easy Steps to the Web for Existing Apps
Step 1 – Analyze
Appeon scans the entire PowerBuilder application, flagging any Web browser or Appeon unsupported incompatibilities found • •
Step 2 – Modify & Test
Rewrite or remove any unsupported PB features or code using standard PB programming Test in PB IDE • • •
Step 3 – Click Deploy
Click Appeon Wizard Choose Deployment Profile and Mode Auto-Create HTML, XML, and JavaScript
3 Easy Steps for New Web Development
Step 1 – Develop
Quickly create new PowerBuilder Client/Server Windows and DataWindows using Appeon supported features •
Step 2 – Test
Test PowerBuilder application in the PowerBuilder IDE • • •
Step 3 – Click Deploy
Click Appeon Wizard Choose Deployment Profile and Mode Auto-Create Auto Create HTML, XML, and JavaScript
Traditional PB to Web Options
Two-Tier Architectures
Client Database Server
Vendor / Platform-Specific API
User interface Some business logic Data management Some business logic
Multitier (Distributed) Architectures
Client Application Server Database Server User interface Business logic Caching Load balancing Transaction management Data location transparency Data management
Very Thin Thin Rich
Distributed Application Development Client Browser Browser Components Client/Server Application Components Middle Tier Web Server Data
File System
HTML Pages Transaction Server Page Server Templates, Scripts Enterprise JavaBeans, COM, CORBA, PB NVOs Production Data Production Data Production Data Production Data Production Data
Managing Complexity
Creating an enterprise system that will support diverse client types with shared business components requires
Increased emphasis on analysis and design Increased usage of OO techniques to manage complexity
Common Techniques include
System Partitioning System Layering Service-based architectures
System Partitions Problem Domain Partition User Interface Partition System Management Partition
System Architecture Layers
Layering is accomplished with generalization (inheritance)
System Architecture
A Combined Perspective
Note: When designing distributed systems, always know the layer and partition you are designing for!
Service-Oriented Architectures
Service-based architectures are popular in distributed computing and in n-tier environments Two main components:
Requester class Service class
The key concept here is the delegation of behavior
Rather than the encapsulation of behavior Results in highly specialized, task-based classes
Proxy objects are used to facilitate service-based architectures in an n-tier environment
Requester and Service Class Example
Requesters delegate work to services
Contain predefined operations to and call services Contain attributes that refer to the service classes
Service classes respond to requesters, and return results Requestor/service model follows the client/server metaphor
Requester Class Service Class
Web Services
Web Services Technologies 101
What are Web services ?
Made up of standards that describe business processes
Self describing Searchable in a registry of services Sync or Async Loosely coupled and cross platform Reusable
Web Services Technologies 101
Web services benefits
RAD Neutral Architecture & language Leverage current investment Accessed through many different client types
Technologies 101
High Level Architecture Provider Registry Service Client
Provider creates and publishes service A client searches a registry for that service The client is able to connect and call the service
Technologies 101
Protocols involved – Web Services Stack
WSFL UDDI WSDL SOAP XML TCP/IP, HTTP etc
Emerging Layers Core Layers
Web Services Technologies 101
TCP/IP, HTTP
Common Internet Transport Protocols Web services not tied to any one protocol
Web Services Technologies 101
XML
E
x
tensible
M
arkup
L
anguage Widely accepted format to exchange data & semantics Core building block for every layer in the Web services stack
Sample XML Schema
XML Element to DW Column Mapping
Technologies 101
SOAP
Simple Object Access Protocol,
Represents a
light-weight, wire-level protocol for messaging & RPC communications
Based on XML
Web Services Technologies 101
SOAP Message
Envelope comprised of
Header Body
Body comprised of
Requests Responses Status Attachments Envelope Header Body Requests Response Status Attachments
Web Services Technologies 101
WSDL Document
Comprised of
Data types Message/method Port Binding Service Document Data Types Message Port Binding Service Interface Implementation
Web Services Technologies 101
UDDI
Universal Description, Discovery and Integration
SOAP-based Web service
Allows
Providers to register services Clients to lookup services
Uses WSDL to describe services
Web Services Technologies 101
Provider
Register Service
UDDI
Lookup
Client
Creating Web Services with PowerBuilder
Component Development
Jaguar Manager PowerBuilder Generate Stubs and Skeletons Component / User Object Deploy Component Component Proxy Create Component Proxy
Web Service Client
Create Web Service Proxy from WSDL
Web Service Development
Web Service Proxy EA Server WSDL Internet Expose Component as Web Service Eclipse
EAServer 5.1
PB Clients Java Clients HTML Clients Web Services Enterprise Application Server PB EJB Corba ActiveX Application Integrator Security IIOP Stored Procs CICS
Topics
Distributed Architecture Issues Role of a Jaguar Component Transaction Server (CTS) Jaguar CTS Environment
Server Components Packages Repository
Architectures for Building Web Applications
Role of the Server Application
Component instantiation and lifecycle
To efficiently manage:
Database connections Transactions Threads Security
Jaguar CTS Environment
IIOP requests
Class Libraries
TDS requests 9000 HTTP requests 7878 8080
Jaguar Manager Jaguar Server
Package
Repository
Components
Required Expertise Business Developers Lifecycle GUI Developers System Developers
HTML DataWindow Web Browser Web Server Page Server HTML
PowerBuilder as a Data Provider – (Shell)
Integrating PB Business Objects with other languages… real world example
3 Tier client/server application… Unix, PB, C/C++, Oracle Entera – “Early Application Server”: Operated within Distributed Computing Environment (DCE) using Remote Procedure Calls (RPC) to manage C/S communication, Security, DB access, memory management, etc.
Client: PowerBuilder 5, 285 windows, 600 DWs (1300 Objects/360K lines of code), etc. Server: C & C++ (business logic), 80 server components (750 files)
PowerBuilder as a Data Provider – (Shell)
Entera
PowerBuilder as a Data Provider – (Shell)
EAServer
PowerBuilder as a Data Provider – (Shell)
Moving from Entera to EAServer because…
Entera Server Components often hang up and block client access Memory leaks – server components must be recycled each night Clients sometimes endure long waiting times Obsolete product – No support since 2001 Obsolete technology – Comparable to Windows 3.1 & DOS today No support for new UNIX libraries
Development tools & utility libraries on UNIX are 1996 versions, no longer supported by OS Unable to upgrade server OS (UNIX). Random load balancing
PowerBuilder as a Data Provider – (Shell)
Power & Simplicity with Custom PB Data Abstraction Layer (DAL)
PowerBuilder data access
•
10+ years in database access experience
• •
EAServer Connection management
It’s the DataWindow!!!
SQL statements decoupled from C++ components PowerBuilder dynamically created DataWindows from cached SQL Native PowerBuilder DataWindow data manipulation/access
•
Data by rows (tab delimited array strings)
• • •
Data by columns (column arrays) Stream (string —tab delimited for columns, carriage return/line feed for rows) HTML output Opportunity for web service functionality…
The EAF 4.0
Features
Web Based Administration
Seamless Data Update and Retrieve PDF and Excel Reports XML Argument Service XML Messaging Service Enhanced Error Messaging Web DataWindow Wizard Global Debugging Database Logging and Log Filtering Email Queuing Services Multi-Web DataWindow Transactions Extensive Documentation
The EAF 4.0
Strengths
EAF 4.0 bundled with PowerBuilder 10.0
Only PowerBuilder Web development framework to be endorsed by Sybase Sybase has developed many case studies on EAF users Open Source Utilizes existing PowerBuilder Skills Reuses PowerBuilder code and DataWindows DataWindows become updateable Web pages in minutes Robust server side event model Powerful yet flexible retrieve and update model Total control over the process
The EAF 4.0
Strengths (continued)
6 Years in action on large & small production systems
• • • • • •
Over 1,000 companies and organizations using EAF Worldwide
•
Alberta Gaming and Liquor Commission
• • •
Apache Corporation Halliburton ESG HR Fidelity KeyLink Solutions QuoteCommand.com
State of Montana United States Department of Energy United States Library of Congress University of Houston Louis Stokes Alliance for Minority Participation
•
University of Sydney
EAF Administration Demo
EAF Administration Demo