Presentation is loading. Please wait.

Presentation is loading. Please wait.

Taking PowerBuilder Applications To The Web

Similar presentations

Presentation on theme: "Taking PowerBuilder Applications To The Web"— Presentation transcript:

1 Taking PowerBuilder Applications To The Web
Donald D. Clayton and Bryan Roberts Intertech Consulting, Inc. (713)

2 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

3 Traditional 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 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 There are 5 possible ways to move PB to web. Note the cost and time involved in each method. Note also the ROI on the re-used apps. For options 3 and 4, emphasize that very few PB customers have migrated to true OO programming where people use a service-based architecture with NVOs as it defeats the purpose of the RAD environment and is slower in design and dev. This is why Appeon is so appealing since it is focused on normal RAD Client/Server dev that is so fast.

4 Elements to Consider Datawindows Business Logic Graphical Logic
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.

5 Solutions Datawindows Business Logic Graphical Logic
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.

6 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

7 Appeon Components Appeon makes development easy as it installs a new Appeon Developer toolbar into the PB IDE. There is no Appeon-specific coding as the Appeon Developer toolbar is all Configuration and Property-based. This shows some of the functionality in the Appeon Developer, which can be grouped into Web Previews, Configuration, Analysis, Deployment, Runtime Monitoring, and Help.

8 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

9 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

10 Traditional PB to Web Options

11 Two-Tier Architectures
Database Server Client Vendor / Platform-Specific API User interface Some business logic Characteristics of two-tier applications include: Work group/departmental You control the number of clients, and therefore the number of transactions. You control the platform(s). Provide an overview of the two-tier architecture to bring the class to a common starting point. Data management Some business logic

12 Multitier (Distributed) Architectures
Database Server Client Application Server Business logic Caching Transaction management Data location transparency Load balancing User interface Data management Multitier architecture Characteristics Unpredictable number of clients/transactions Open applications to the Internet/extranet Why is there a push toward distributed architecture? The Internet! Multitier Architecture Principles Encapsulate or “partition” business logic into objects. Move or “distribute” business objects to a dedicated machine. Provide access to or “host” the objects in a server application. The server application receives requests for processing from clients. The server directs requests to business objects for processing. Examples Business logic: Loan approval, credit card authorization Cache static data: States, parts/products Services for specialized resources: Gateway to mainframe/fax server, real-time feed from wire services (stock quotes) Provide an overview of a distributed architecture. This discussion should be review for many students, so solicit information from these students to keep them engaged.

13 Distributed Application Development
Client Middle Tier Data Web Server Very Thin Browser Production Data HTML Pages File System Page Server Production Data Templates, Scripts Browser Thin Transaction Server Production Data Components Components Production Data Client/Server Application Enterprise JavaBeans, COM, CORBA, PB NVOs Rich Production Data Components

14 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 This is an intro slide – don’t overkill these topics!

15 System Partitions Problem Domain Partition User Interface System Management

16 System Architecture Layers
Another way of looking at the problem is by layers. This usually involves abstraction, and the use of generalization, or inheritance, to implement. Layering is accomplished with generalization (inheritance)

17 System Architecture A Combined Perspective
Note: When designing distributed systems, always know the layer and partition you are designing for!

18 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

19 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

20 Web Services

21 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

22 Web Services Technologies 101
Web services benefits RAD Neutral Architecture & language Leverage current investment Accessed through many different client types

23 Technologies 101 High Level Architecture Client 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

24 Technologies 101 Protocols involved – Web Services Stack
WSFL UDDI WSDL SOAP XML TCP/IP, HTTP etc Emerging Layers Core Layers

25 Web Services Technologies 101
TCP/IP, HTTP Common Internet Transport Protocols Web services not tied to any one protocol

26 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

27 Sample XML Schema

28 XML Element to DW Column Mapping

29 Technologies 101 SOAP Represents a Based on XML
Simple Object Access Protocol, Represents a light-weight, wire-level protocol for messaging & RPC communications Based on XML

30 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

31 Web Services Technologies 101
WSDL Document Comprised of Data types Message/method Port Binding Service Document Data Types Message Interface Port Binding Implementation Service

32 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

33 Web Services Technologies 101
Client Provider UDDI Lookup Register Service

34 Creating 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 Web Service Proxy Web Service Development Internet

35 Enterprise Application Server
EAServer 5.1 PB Clients Java Clients HTML Clients Web Services PB EJB ActiveX Application Integrator Enterprise Application Server Corba Security Remove the Windows and Java Clients on this slide and the following slide - just want to have HTML Client on these 2 slides. Also, all of the changes made inside the box on previous slides should be carryed forward to all slides. Is there anyway to callout the PoerDynamo piece of this slide. PowerDynamo is the orange box inside EAServer on the left (it has white boxes with script and HTML…..). What I’m thinking is that if we could call this out it would bring attention to it. Then when we get to the Jaguar Slides, we call out the box to the right (with CORBA at the top). Same goes for Application Integrator IIOP CICS Stored Procs

36 Topics Distributed Architecture Issues
Role of a Jaguar Component Transaction Server (CTS) Jaguar CTS Environment Server Components Packages Repository Architectures for Building Web Applications

37 Role of the Server Application
Component instantiation and lifecycle To efficiently manage: Database connections Transactions Server Threads Security Do not discuss the details of these major services. They are detailed in later modules. Stay at a high level, providing a solid overview of each. Justify the need for each service in an application server.

38 Jaguar CTS Environment
Jaguar Server C++ IIOP requests Class Libraries 9000 TDS requests 7878 HTTP requests 8080 The Jaguar CTS environment consists of: Server Jaguar Manager (a plug-in for the Java Sybase Central utility) Components Packages (containers for related components) Repository (a collection of readable files containing property information for components) A set of class libraries to support various languages/tools ORB and IDL compilers The Jaguar server accepts IIOP requests because IIOP is a CORBA standard. It accepts TDS requests for backward compatibility with versions 1.x. Finally, the server accepts HTTP requests and can be used as a page server, but it is really intended to be a component transaction server. Considering demonstrating the product at this time. Start the Jaguar server and Jaguar Manager. Navigate the Jaguar Manager. Start the File Viewer display. In Explorer, show the directory structure, the repository, and the srv.log file. Components Package Jaguar Manager Repository

39 Required Expertise Business Developers Lifecycle Threads Transactions
Security Jaguar handles much of the system-level development for you, so you can focus on the business logic. Emphasize the complexity involved in writing a multiuser, multithreaded server. Jaguar meets this challenge with a simple point-and-click interface and class libraries. The students can focus on their business logic and user interface. GUI Developers Connections System Developers

40 HTML DataWindow Web Browser Web Server Page Server HTML

41 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)

42 PowerBuilder as a Data Provider – (Shell)

43 PowerBuilder as a Data Provider – (Shell)

44 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

45 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…

46 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 Queuing Services Multi-Web DataWindow Transactions Extensive Documentation

47 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

48 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 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

49 EAF Administration Demo

50 EAF Administration Demo

51 Next Steps?

52 Title Arial 28 pt. Subhead: Arial Bold 20 pt.
Secondary Title: Arial 16 pt. Subhead: Arial Bold 20 pt. Body or secondary lines Arial16 pt.

53 Title Arial 28 pt. Secondary Title: Arial 16 pt. Legend

Download ppt "Taking PowerBuilder Applications To The Web"

Similar presentations

Ads by Google