Title: Business Objects
1IA347Moving PowerBuilder To The Web
Larry Cermak lcermak_at_ctpartners.com
2Moving PowerBuilder To The Web
- Larry Cermak
- lcermak_at_ctpartners.com
3Moving PowerBuilder To The Web
- Larry Cermak
- lcermak_at_ctpartners.com
4Moving PB To The Web
- Larry Cermak
- 630 428-2650
- email lcermak_at_ctpartners.com
- www.ctpartners.com
- PowerBuilder Tips Techniques
5About Your Instructor
- Technology Partner - Corporate Technology
Partners, Inc. - Member of Team Powersoft
- Writer for PowerTimes Magazine and the Sybase
Developer Network - CPD Professional
- CPD Review Board Committee Member
- 1997 Chicago PowerBuilder User Group VP
- Started building systems in 1984
- PowerBuilder development since version 2
6About Your Instructor
- I believe in the KISS methodology
- (K)eep
- (I)t
- (S)imple
- (S)tupid
7Corporate Technology Partners
- Offices in Denver, Chicago, and Connecticut
- Sybase Premier Channel Partner
- eMap Partner
- Consulting and mentoring services
- Training
- EAStudio
- EAServer
- Web DataWindow
- 3 Members of Team Sybase on staff
8Introduction
- How technical will this session be?
- Detailed code and techniques
- Intended for beginners and experienced developers
- Sample code will be explained
- Lots of examples
- Real world techniques, not necessarily what the
textbooks say!
9Introduction
- Audience participation encouraged!
- Feel free to ask questions.
- Interaction makes the session more exciting.
- No question is stupid!!!
- I will make it as lively as possible!
10Who Is In Attendance
- Managers vs developers
- PowerBuilder experience
- Less than 6 months
- Less than 1 year
- 1-2 years
- More than 2 years
- More than 5 years
- Feel free to ask questions!
11Summary Of Course
- Review of Sybase
- Industry Development Trends
- Internet Terms
- Web Enabling PowerBuilder
- Enterprise Application Studio
- Enterprise Application Server
- Web-PB
- Web DataWindow
- PowerBuilder Integration With Jaguar
12Review of Sybase Industry Development Trends
13Sybase Today
SYBASE
14Sybase Today
- Lean-Mean Machine
- Reorganizing
- Reducing costs
- Stock is UP! (relatively speaking)
15Current State of Affairs
16Sybase Today - Companies
- Business Intelligence
- Complete Data Warehouse Solutions
- Data Movement, Transformation, Storage,
Presentation - Enterprise Solutions
- Data Replication, Connectivity and OLTP DBMS
- Internet Applications
- Open Development Solutions and Ecommerce
- EAServer, EAStudio, Financial Server
- Mobil Embedded Computing
17Industry Development Trends
18Industry Development Trends
Traditional 2-Tier Client/Server Model
Database Server
Client
Database Communication
Business Logic
Business Logic
User Interface
Data Management
19Industry Development Trends
- Issues with 2-Tier Model
- Deployment
- Change Management
- Business Logic Maintenance
- Bandwidth Requirements
- Database Bottlenecks
- Client Machine Requirements
20Industry Development Trends
N-Tier Computing Model
Application Server
Database Server
Client
User Interface Only
Data Management
Business Logic Caching Transaction
Management Data Abstraction Load Balancing
21Industry Development Trends
- N-Tier Fundamentals
- Centralized Business Logic
- Business Logic Components
- Data Access Abstraction
- Clients Communicate with Application Server
- User Interface Clients
22Industry Development Trends
- N-Tier Benefits
- Business Logic Reusability
- Increased Performance
- Increased Scalability
- Security
- Deployment Simplification
- Ease of Maintenance
- Much Smaller Bandwidth Requirements To The Client
- Simplified Deployment
23Who Has Implemented a TRUE N-Tier Application?
24Industry Development Trends
Internet Brings everyone together Brings data
sources together Lowers cost of
ownership Centralizes administration
25Industry Development Trends
Reality
Partners Clients Suppliers
HR Sales Customer Service
Applications
26Industry Development Trends
Theoretical
Applications
27Industry Development Trends
- Enterprise Solutions
- Internet/Web is integral part
- Strategic advantage
- Bridge gaps between existing infrastructure and
new technology - Dynamic content
- Improve end-to-end business processes
- Reduce costs and increase efficiencies
28Internet Terms
29Internet Terms
- Feedback from conference attendees and emails
about Jumpstart asked for an explanation of some
internet related terms - This is useful since many people are PowerBuilder
developers and are learning about distributed and
web applications - So, without further adieu
30Internet Terms
- ActiveX
- Third generation of OLE controls
- Uses COM to provide interoperability with other
types of COM components - Provides integration of controls into web browsers
31Internet Terms
- Applet
- Java program that runs in the client browser
- It is downloaded with the web page
- Has security restrictions
- Cannot perform actions like deleting files
- CGI
- Common Gateway Interface
- Method to let web pages communicate with programs
on an HTTP server - Starts a new process for every request
32Internet Terms
- Client-Side Scripting
- Scripting that executes within the web browser
- Since it runs on the client machine, there is no
round-trip to the server
33Internet Terms
- COM Components
- Microsoft Component Object Model
- Provides a standard way for software components
to supply services to each other, or to
communicate - COM specifies
- How objects are created and destroyed
- How the interfaces are exposed
- How their methods are invoked
34Internet Terms
- Cookies
- Small amount of text information about a page
that is stored by the browser on the client
machine. - Standard structure and syntax
35Internet Terms
- CORBA
- Common Object Request Broker Architecture
- Open architecture
- Defines how objects communicate with each other
- Defines how components and applications can be
built in a distributed fashion - Encourages the use of business objects
- Encourages separating the business rules from the
presentation layer
36Internet Terms
- Enterprise JavaBeans (EJB)
- Component architecture for Java
- Javas answer for ActiveX
- Defines a standard vendor independent way of
writing middle tier objects and provides standard
interfaces for the bean-writer to access services
such as transactions, naming, and security
37Internet Terms
- HTML
- HyperText Markup Language
- Mixes text with tags for formatting and layout
of information - For a basic tutorial check out
- http//junior.apk.net/jbarta/tutor/makepage/index
.html
38Internet Terms
- HTTP
- HyperText Transfer Protocol
- Set of rules for exchanging files on the internet
- HTTPS
- Secure Hypertext Transfer Protocol
- Internet protocol developed by Netscape that
encrypts and decrypts page requests
39Internet Terms
- IIOP
- Internet Inter-ORB Protocol
- An Object Oriented protocol that makes it
possible for distributed programs to communicate
over the internet - ISAPI
- Information Server API
- This is an alternative to CGI
- Allows DLLs to be associated with the server and
accessed at predefined entry points - Does not create a new process for each request
40Internet Terms
- JavaBean
- Component model that defined by JavaSoft
- Defined package of related class files that are
packaged into a single file - Wrapped to expose properties of the JavaBean
41Internet Terms
- JavaScript
- Scripting language that is embedded in web pages
(i.e. in the html) and is interpreted as the page
is loaded. It can access HTML information and
manipulate some attributes of the HTML. - There is client and server side JavaScript
- PowerDynamo uses a superset of JavaScript called
DynaScript
42Internet Terms
- NSAPI
- Netscape Server customization API
- Allows shared libraries (Unix) or DLLs to be
integrated with the server
43Internet Terms
- PERL
- Practical Extraction and Reporting Language
- Interpreted programming language
- Similar to C with some unix functionality such as
awk, sed, tr - Considered to be a good choice for developing CGI
programs because it has good text manipulation
facilities
44Internet Terms
- Server-Side Scripting
- Scripting that executes on the web or component
server - Typically JavaScript or VBScript
45Internet Terms
- Servlet
- Java object that emits/renders html
- SSL
- Secure Sockets Layer
- Protocol designed by Netscape to work at the
sockets layer and protects any higher level
protocols built on sockets (i.e. ftp, telnet,
HTTP)
46Internet Terms
- URL
- Uniform Resource Locator
- This is the address of a file or resource on the
internet
47Web Enabling PB
48Web Enabling PowerBuilder
The Million Dollar Question Is?
How do I move PB to the Web?
49Web Enabling PowerBuilder
- How reusable are my components?
- Is your application well designed regarding OO
practices? - Where is my business logic stored?
- NVOs (hopefully)
- Windows (hopefully not)
- DataWindows (probably not)
- What databases do I need to access?
- Other?
50Web Enabling PowerBuilder
PB Web Deployment Kit (quick dirty)
Enterprise Application Studio (reuse)
PowerJ (rewrite)
51(No Transcript)
52Enterprise Application Studio
enabling the development and deployment of
enterprise applications to employees,
partners, and customers anywhere
Enterprise application development and deployment
platform Integrated Web and non-Web access to
back office systems Exploit new technology while
leveraging existing skills, code, applications,
data
53Enterprise Application Studio
Enterprise Application Server 3.0
- Complete environment for developing and
deploying distributed, component-based
applications that distribute and integrate
information anywhere
PowerBuilder 7.0
PowerJ 3.0
54Enterprise Application Studio
55Enterprise Application Studio
Client Application
HTTPS
IIOP
Web Server
CGI, ISAPI, NSAPI
Enterprise Application Server
Script
JDBC, ODBC, native RDBMS
JDBC, ODBC, native RDBMS
56Enterprise Application Studio
Client Application
HTTPS
IIOP
Web Server
CGI, ISAPI, NSAPI
Enterprise Application Server
Script
JDBC, ODBC, native RDBMS
JDBC, ODBC, native RDBMS
57Enterprise Application Server
58Enterprise Application Server
Any Client
- Both Pages Components!
- Component Engine
- Jaguar CTS
- Page Engine
- PowerDynamo
- Embedded Database
- Adaptive Server Anywhere
Enterprise Application Server
Page Engine
Component Transaction Engine
59Enterprise Application Server
Web Server
HTTPS
IIOP
CGI, ISAPI, NSAPI
Enterprise Application Server
NT UNIX
Jaguar CTS
PowerDynamo
ActiveX
HTMLtemplate
JavaScript
IIOP
COM
JDBC, ODBC, native RDBMS
ODBC
Repository
60Enterprise Application Server
- Component Server
- Host business logic components
- Support for a variety of component types
- CORBA, EJB, COM, ActiveX
- In a variety of languages
- PowerBuilder NVOs, Java, C, C, VB
- Transaction Server
- Manage database connections and transactions
- Universal data access
- JDBC, Open Client, ODBC and Native Oracle
61Enterprise Application Server
- Page Server
- Dynamic web page generator
- Dynamic content publishing and update
capabilities - Web Server Extension
- Not a standalone server
- Extension of Web servers
- ISAPI, NSAPI CGI Supported
62Web-PB
63Web-PB
- This allows you to have a PowerBuilder NVO
listening on a port - It returns HTML to the calling client
- You must write the HTML
- Powersoft provided some templates for standard
objects like buttons - This was an interim solution provided as an
add-on to version 5 - Does not scale up
- Has anyone used this for any robust application?
64Web DataWindow
65Web DataWindow
- This is one of the, if not the most important
feature of PowerBuilder 7! - This is what PowerBuilder developers have been
waiting for!
66Web DataWindow
- Provides the ability to run a DataWindow in a web
browser without the PowerBuilder runtime DLLs - Total thin client solution
- Provides most DataWindow functionality
- Presentation
- Manipulation
- Updates to the database
- Client and server side scripting
67Web DataWindow
68Web DataWindow
Web Browser
Jaguar
Web Server
Page Server
PowerDynamo
HTML
69Web DataWindow
- How do we make this work?
- Create or take an existing DataWindow
- Decide where you want the processing to occur
(client/server/combination) - Set the various HTML options
- Web DataWindow
- HTML Table options tell the DataWindow how to
display in an HTML table
70Web DataWindow
Indicates the DataWindow will interface with a
server component
71Web DataWindow
72Web DataWindow
- HTML Generation options
- Generate JavaScript
- Generates JavaScript even if the browser is not
recognized - Portable, does not use browser specific features
- You must use this to update data!
- Client Events
- JavaScript code is to generate events is
generated in the HTML - Client Validation
- Generated JavaScript code for the DataWindow
validation expressions
73Web DataWindow
- HTML Generation options
- Client Computed Fields
- Generates JavaScript for computed fields and
computed in the client browser - Client Formatting
- Generated JavaScript for display formats of
fields that do not have focus - Client Scriptable
- Allows client side JavaScript to interface with
the DataWindow - Access to many DataWindow functions and events
74Web DataWindow
75Web DataWindow
- Thats all we need to do for the DataWindow
- Is it that simple?
- What else needs to be done?
- For this example, Jaguar and Dynamo will be used.
76Web DataWindow
- Configuring Jaguar
- The assumption is made that Jaguar is up and
running on your machine. I just want to show the
Web DataWindow specifics. - In the Jaguar Manager, install the existing
package DataWindow under the server. - Check the TreeView if you are not sure if it is
installed - If you are using the standard Web DataWindow
option, thats all you need to do - You can customize this package to determine what
pieces are included
77Web DataWindow
78Web DataWindow
- Configuring Dynamo
- The assumption is made that PowerDynamo is up and
running on your machine. I just want to show the
Web DataWindow specifics. - Make sure the default general settings section
has the Sun Java VM chosen - Create the JavaScript in dynamo
- This creates the Web DataWindow component from
Jaguar - Specifies the PBL and DataWindow
- Specifies the database connection info
- Issues a retrieve
79Web DataWindow
- Heres the main parts of the JavaScript
- dwLocal java.CreateComponent("DataWindow/HTMLGen
erator", "iiop//localhost9000", "jagadmin", "",
"DataWindow/HTMLGenerator") - retVal dwLocal.SetDWObject ("html_dw.pbl",
"d_products") - dwLocal.SetBrowser(document.GetServerVariable("HTT
P_USER_AGENT")) - dwLocal.SetHTMLObjectName ("dwMine")
- dwLocal.SetTrans("ODBC","ConnectString'DSNEAS
Demo DB V3UIDdbaPWDsql'", "", "", "", "", "") - retVal dwLocal.Retrieve()
- document.Write(dwLocal.Generate())
80Web DataWindow
- Here is some client side scripts for events
- Each issues an alert JavaScript function (similar
to MessageBox in PB) - function dwMine_ButtonClicking(row,objName)
-
- alert("ButtonClicking(" row "," objName
")\n") -
- function dwMine_ItemChanged(row, colName,
newValue) -
- alert("ItemChanged(" row "," colName
"," newValue ")\n")
81Web DataWindow
- How do the pieces fit together and what options
are there? - The server can run
- Directly in an application server like IIS
- In a component transaction server such as Jaguar
or MTS - Microsoft servers, EAStudio provides a COM server
component that can be accessed with ActiveX - Jaguar, the server component is PB custom class
user object that is deployed as a Java component
82Web DataWindow
- What are the options for creating the Web
DataWindow control? - These are listed in the order of least to most
complex. - PowerSite DTC no coding. Uses PowerSite object
model. - Writing the code yourself to use the PowerSite
object model - Writing the code yourself in a Page Server
directly against the server component - Writing the code in PowerScript against a
DataStore
83Web DataWindow
- How do you host the DataWindow in a browser?
- There are 4 ways, each having a specific purpose
- DataWindow plugin
- DataWindow Web ActiveX
- Web DataWindow control
- PowerSite DataWindow DTC
84Web DataWindow
- DataWindow plugin
- Basically this is a PSR viewer
- Typically used for predefined reports
- No database access or updates
- Browser must install the plugin
85Web DataWindow
- DataWindow plugin
- Positive
- No client side configuration required (other than
putting the plugin in the plugin directory) - PSRs are the most compact representation of the
definition and full data - Allows for viewing of batch produced reports
- Can be used in both Netscape and Internet Explorer
86Web DataWindow
- DataWindow plugin
- Negative
- No auto install of plugin
- SaveAs() and print are not really secure on the
client side - Read only
87Web DataWindow
- DataWindow Web ActiveX
- ActiveX control hosted in Internet Explorer
- Fully functional dataWindow control that can be
scripted on the client using JavaScript or
VBScript - Supports the following
- Full event model
- Many DataWindow functions
- DataWindow sync for 3 tier computing
- JDBC for database access
- Packages as a CAB file so can be downloaded from
the server
88Web DataWindow
- DataWindow Web ActiveX
- Positive
- Fully functional DataWindow control (including
events, functions and dynamic modification) - Can update the database
- Negative
- The one time download of the CAB file (a little
more than a Meg). - Only works in Microsoft Internet Explorer
89Web DataWindow
- Web DataWindow control
- Server component and page server work together to
translate a DataWindow into HTML - The server can run directly in the server or in a
transaction server (Jaguar/MTS) - Provides most of the functionality and look of
the DataWindow on the client - The majority of the processing occurs on the
server
90Web DataWindow
- Web DataWindow control
- Positive
- Pure thin-client solution
- Works a page at a time
- Supports modification and update
- All database connectivity runs on server (no
client side configuration required) - Some client side scripting and events
91Web DataWindow
- Web DataWindow control
- Negative
- Causes an added load on the component server
- Full DataWindow API not available
- Full DataWindow event model not available
- All page navigation, insert and delete involves
round trips to the server
92Web DataWindow
- PowerSite DataWindow DTC
- Reads a DataWindow definition out of a PBL and
generates server side JavaScript that - Does a database retrieve
- Generates the HTML that resembles the DataWindow
definition - Does some server side scripting for updates
93Web DataWindow
- PowerSite DataWindow DTC
- Positive
- Same as Web DataWindow control except no
scripting or DW events - No PowerBuilder DLLs required on web server
94Web DataWindow
- PowerSite DataWindow DTC
- Negative
- Same as Web DataWindow control plus the following
- HTML generation is not complete and is separate
from DataWindow generation (two separate code
lines) - Complexity of HTML generation is limited by its
implementation in JavaScript. - No client side scripting or DataWindow events
(form controls can trigger events) - Can only update using Freeform presentation style
95Questions Answers
96Thank You
- lcermak_at_ctpartners.com
- www.ctpartners.com
- 630 428-2650