Title: Taking PowerBuilder Applications To The Web
1Taking PowerBuilder Applications To The Web
Donald D. Clayton and Bryan RobertsIntertech
Consulting, Inc.dclayton_at_intertech.us (713)
586-6481
2Todays 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
3Traditional PB-to-the-Web Options
- 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
4Elements to Consider
The PB to Web hurdles
- Datawindows
- Our best (and most important) option for
reusability. - Many options, with accurate display our primary
concern. - Most solutions provided out of the box from
Sybase. - Business Logic
- The (currently Powerscript) functions and
procedures that make the application robust. - This is the most difficult portion of the
application to convert (think PFC). - With care, this logic can be partitioned so that
the legacy PB app and the converted web app can
be utilizing the same logic codebase. - Graphical Logic
- This layer involves graphics, and
graphically-driven events (like drag and drop,
multi/single select, etc). - Some of these elements simply cannot be recreated
easily in the web environment. - Several different browser-side solutions can help
recreate the desired functionality.
5Solutions
The PB to Web hurdles
- Datawindows
- JSP / EAF / PBDW - These methods all use the
Sybase-provided dlls to generate the DW as an
html stream. There are several methods of
connection, and generation within these
solutions. - Appeon - Automatic
- Business Logic
- JSP Business logic can be stored in any type of
class, that can be called from within a JSP page.
The advantage here is the level of control from
within the JSP itself. - EAF Business logic can be transferred to PB
NVOs, and stored within Jaguar. This allows
reuse of the code, as well as leveraging existing
development talents. - Appeon - Automatic (even PFC!)
- Graphical Logic
- JSP / EAF Very little support for anything
short of simple graphical elements (buttons,
pictures, etc). Other elements will need to be
created manually. - Appeon VERY strong support, some features not
implemented.
6Moving 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
7Appeon Components
83 Easy Steps to the Web for Existing Apps
- Step 3 Click Deploy
- Click Appeon Wizard
- Choose Deployment Profile and Mode
- Auto-Create HTML, XML, and JavaScript
- Step 2 Modify Test
- Rewrite or remove any unsupported PB features or
code using standard PB programming - Test in PB IDE
- Step 1 Analyze
- Appeon scans the entire PowerBuilder application,
flagging any Web browser or Appeon unsupported
incompatibilities found
93 Easy Steps for New Web Development
- Step 3 Click Deploy
- Click Appeon Wizard
- Choose Deployment Profile and Mode
- Auto-Create Auto-Create HTML, XML, and JavaScript
- Step 2 Test
- Test PowerBuilder application in the PowerBuilder
IDE
- Step 1 Develop
- Quickly create new PowerBuilder Client/Server
Windows and DataWindows using Appeon supported
features
10Traditional PB to Web Options
11Two-Tier Architectures
Database Server
Client
Vendor / Platform-Specific API
- User interface
- Some business logic
- Data management
- Some business logic
12Multitier (Distributed) Architectures
Database Server
Client
13Distributed Application Development
Client
Middle Tier
Data
Web Server
Browser
Very Thin
PageServer
Browser
Thin
TransactionServer
Enterprise JavaBeans, COM, CORBA, PB NVOs
Client/ServerApplication
Rich
14Managing 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
15System Partitions
16System Architecture Layers
Layering is accomplished with generalization
(inheritance)
17System Architecture
A Combined Perspective
Note When designing distributed systems, always
know the layer and partition you are designing
for!
18Service-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
19Requester 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
20Web Services
21Web 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
22Web Services Technologies 101
- Web services benefits
- RAD
- Neutral
- Architecture language
- Leverage current investment
- Accessed through many different client types
23Technologies 101
High Level Architecture
Client
- Provider creates and publishes service
- A client searches a registry for that service
- The client is able to connect and call the service
24Technologies 101
- Protocols involved Web Services Stack
- WSFL
- UDDI
- WSDL
- SOAP
- XML
- TCP/IP, HTTP etc
Emerging Layers
Core Layers
25Web Services Technologies 101
- TCP/IP, HTTP
- Common Internet Transport Protocols
- Web services not tied to any one protocol
26Web Services Technologies 101
- XML
- Extensible Markup Language
- Widely accepted format to exchange data
semantics - Core building block for every layer in the Web
services stack
27Sample XML Schema
28XML Element to DW Column Mapping
29Technologies 101
- SOAP
- Simple Object Access Protocol,
- Represents a
- light-weight,
- wire-level protocol
- for messaging RPC communications
- Based on XML
30Web Services Technologies 101
- SOAP Message
- Envelope comprised of
- Header
- Body
- Body comprised of
- Requests
- Responses
- Status
- Attachments
Envelope
Header
Body
Requests
Response
Status
Attachments
31Web Services Technologies 101
- WSDL Document
- Comprised of
- Data types
- Message/method
- Port
- Binding
- Service
Document
Data Types
Message
Interface
Port
Binding
Implementation
Service
32Web 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
33Web Services Technologies 101
Client
UDDI
Provider
Lookup
Register
Service
34Creating Web Services with PowerBuilder
Jaguar Manager
PowerBuilder
Generate Stubs and Skeletons
EA Server
Component Development
Component / User Object
Deploy Component
Expose Component as Web Service
Component Proxy
Create Component Proxy
WSDL
Eclipse
Web Service Client
Create Web Service Proxy from WSDL
Internet
Web Service Development
35EAServer 5.1
IIOP
CICS
Stored Procs
36Topics
- Distributed Architecture Issues
- Role of a Jaguar Component Transaction Server
(CTS) - Jaguar CTS Environment
- Server
- Components
- Packages
- Repository
- Architectures for Building Web Applications
37Role of the Server Application
- Component instantiation and lifecycle
38Jaguar CTS Environment
Jaguar Server
IIOP requests
Class Libraries
9000
TDS requests
7878
HTTP requests
8080
Components
Package
Jaguar Manager
Repository
39Required Expertise
Business Developers
Lifecycle
Threads
Transactions
Security
GUI Developers
Connections
System Developers
40HTML DataWindow
Web Browser
Web Server
Page Server
HTML
41PowerBuilder 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)
42PowerBuilder as a Data Provider (Shell)
43PowerBuilder as a Data Provider (Shell)
44PowerBuilder 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
45PowerBuilder 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
- Its 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 (stringtab delimited for columns,
carriage return/line feed for rows) - HTML output
- Opportunity for web service functionality
46The 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
47The 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
48The 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
49EAF Administration Demo
50EAF Administration Demo
51Next Steps?
52Title Arial 28 pt.
Secondary Title Arial 16 pt.
- Subhead Arial Bold 20 pt.
- Body or secondary lines Arial16 pt.
- Body or secondary lines Arial16 pt.
53Title Arial 28 pt.
Secondary Title Arial 16 pt.