Taking PowerBuilder Applications To The Web Donald D. Clayton and Bryan Roberts Intertech...
-
Upload
carlee-holloway -
Category
Documents
-
view
224 -
download
1
Transcript of Taking PowerBuilder Applications To The Web Donald D. Clayton and Bryan Roberts Intertech...
Taking PowerBuilder Applications To The Web
Donald D. Clayton and Bryan RobertsIntertech Consulting, [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. Complete Rewrite in Java/J2EE, HTML and JavaScript Complete rewrite of everything taking years and costing a lot of money
2. Complete Rewrite in .NET, HTML, and JavaScript Complete rewrite of everything taking years and costing a lot of money
3. 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
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
Moving PB to the Web with Appeon
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 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 – Develop Quickly create new
PowerBuilder Client/Server Windows and DataWindows using Appeon supported features
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
3 Easy Steps for New Web Development
Traditional PB to Web Options
Two-Tier Architectures
Database ServerClient
User interface Some business logic
Data management Some business logic
Vendor / Platform-Specific APIVendor / Platform-Specific API
Multitier (Distributed) Architectures
Client
User interface Data management
Application Server
Business logic Caching Transaction management Data location transparency Load balancing
Database Server
Distributed Application Development
Components
Browser
Components
Client/ServerApplication
Browser
ProductionData
ProductionData
ProductionData
ProductionData
ProductionData
Enterprise JavaBeans, COM, CORBA, PB NVOs
Templates,Scripts
PageServer
HTML Pages
FileSystem
Very Thin
Thin
Rich
Web Server
Components
TransactionServer
ClientClient Middle TierMiddle Tier DataData
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
Managing Complexity
System Partitions
Problem DomainPartition
UserInterfacePartition
SystemManagement
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
Requester Class
Service 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
ClientRegistryProvider
Service
Provider creates and publishes service A client searches a registry for that service The client is able to connect and call the service
High Level Architecture
Core Layers
Emerging Layers
Technologies 101
Protocols involved – Web Services Stack
WSFL
UDDI
WSDL
SOAP
XML
TCP/IP, HTTP etc
Web Services Technologies 101
TCP/IP, HTTP Common Internet Transport Protocols Web services not tied to any one protocol
Web 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
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
Message
Port
Binding
Service
Data Types
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
ClientProvider
Service
UDDI
Lookup
Register
Creating Web Services with PowerBuilder
Component Development
Component / User Object
Component Proxy
Web Service Proxy
Jaguar Manager
EclipseWeb Service Client
Internet
Expose Component as Web Service
EA Server
PowerBuilder
Generate Stubs and Skeletons
Create Web Service Proxy from WSDL
Deploy Component
Create Component Proxy
Web Service Development
WSDL
EAServer 5.1
IIOP
CICS
PBPB ClientsClients
JavaJavaClientsClients
HTMLHTMLClientsClients
Stored Procs
PBPB EJBEJB ActiveXActiveX ApplicationApplicationIntegratorIntegrator
Enterprise Application Server
CorbaCorba SecuritySecurity
Web Web ServicesServices
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
To efficiently manage:
Database connections
Component instantiation and lifecycle
Transactions Threads Security Server
Jaguar CTS Environment Jaguar Server
9000
RepositoryJaguar Manager
IIOP requests
PackageComponents
7878
TDS requests
8080
HTTP requests
Class Libraries
Required Expertise
Lifecycle
ThreadsSecurity
Connections
Tran
sact
ions
GUI Developers
System Developers
Business 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
Next Steps?