Business Objects - PowerPoint PPT Presentation

1 / 96
About This Presentation
Title:

Business Objects

Description:

Defines how components and applications can be built in a distributed fashion ... configuration required (other than putting the plugin in the plugin directory) ... – PowerPoint PPT presentation

Number of Views:176
Avg rating:3.0/5.0
Slides: 97
Provided by: markjp
Category:
Tags: business | objects

less

Transcript and Presenter's Notes

Title: Business Objects


1
IA347Moving PowerBuilder To The Web
Larry Cermak lcermak_at_ctpartners.com
2
Moving PowerBuilder To The Web
  • Larry Cermak
  • lcermak_at_ctpartners.com

3
Moving PowerBuilder To The Web
  • Larry Cermak
  • lcermak_at_ctpartners.com

4
Moving PB To The Web
  • Larry Cermak
  • 630 428-2650
  • email lcermak_at_ctpartners.com
  • www.ctpartners.com
  • PowerBuilder Tips Techniques

5
About 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

6
About Your Instructor
  • I believe in the KISS methodology
  • (K)eep
  • (I)t
  • (S)imple
  • (S)tupid

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

8
Introduction
  • 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!

9
Introduction
  • 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!

10
Who 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!

11
Summary 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

12
Review of Sybase Industry Development Trends
13
Sybase Today
SYBASE
14
Sybase Today
  • Lean-Mean Machine
  • Reorganizing
  • Reducing costs
  • Stock is UP! (relatively speaking)

15
Current State of Affairs
16
Sybase 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

17
Industry Development Trends
18
Industry Development Trends
Traditional 2-Tier Client/Server Model
Database Server
Client
Database Communication
Business Logic
Business Logic
User Interface
Data Management
19
Industry Development Trends
  • Issues with 2-Tier Model
  • Deployment
  • Change Management
  • Business Logic Maintenance
  • Bandwidth Requirements
  • Database Bottlenecks
  • Client Machine Requirements

20
Industry 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
21
Industry Development Trends
  • N-Tier Fundamentals
  • Centralized Business Logic
  • Business Logic Components
  • Data Access Abstraction
  • Clients Communicate with Application Server
  • User Interface Clients

22
Industry 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

23
Who Has Implemented a TRUE N-Tier Application?
24
Industry Development Trends
Internet Brings everyone together Brings data
sources together Lowers cost of
ownership Centralizes administration
25
Industry Development Trends
Reality
Partners Clients Suppliers
HR Sales Customer Service
Applications
26
Industry Development Trends
Theoretical
Applications
27
Industry 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

28
Internet Terms
29
Internet 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

30
Internet 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

31
Internet 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

32
Internet 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

33
Internet 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

34
Internet Terms
  • Cookies
  • Small amount of text information about a page
    that is stored by the browser on the client
    machine.
  • Standard structure and syntax

35
Internet 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

36
Internet 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

37
Internet 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

38
Internet 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

39
Internet 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

40
Internet 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

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

42
Internet Terms
  • NSAPI
  • Netscape Server customization API
  • Allows shared libraries (Unix) or DLLs to be
    integrated with the server

43
Internet 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

44
Internet Terms
  • Server-Side Scripting
  • Scripting that executes on the web or component
    server
  • Typically JavaScript or VBScript

45
Internet 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)

46
Internet Terms
  • URL
  • Uniform Resource Locator
  • This is the address of a file or resource on the
    internet

47
Web Enabling PB
48
Web Enabling PowerBuilder
The Million Dollar Question Is?
How do I move PB to the Web?
49
Web 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?

50
Web Enabling PowerBuilder
PB Web Deployment Kit (quick dirty)
Enterprise Application Studio (reuse)
PowerJ (rewrite)
51
(No Transcript)
52
Enterprise 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
53
Enterprise 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
54
Enterprise Application Studio
55
Enterprise Application Studio
Client Application
HTTPS
IIOP
Web Server
CGI, ISAPI, NSAPI
Enterprise Application Server
Script
JDBC, ODBC, native RDBMS
JDBC, ODBC, native RDBMS
56
Enterprise Application Studio
Client Application
HTTPS
IIOP
Web Server
CGI, ISAPI, NSAPI
Enterprise Application Server
Script
JDBC, ODBC, native RDBMS
JDBC, ODBC, native RDBMS
57
Enterprise Application Server
58
Enterprise 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
59
Enterprise 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
60
Enterprise 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

61
Enterprise 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

62
Web-PB
63
Web-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?

64
Web DataWindow
65
Web DataWindow
  • This is one of the, if not the most important
    feature of PowerBuilder 7!
  • This is what PowerBuilder developers have been
    waiting for!

66
Web 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

67
Web DataWindow
68
Web DataWindow
Web Browser
Jaguar
Web Server
Page Server
PowerDynamo
HTML
69
Web 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

70
Web DataWindow
Indicates the DataWindow will interface with a
server component
71
Web DataWindow
72
Web 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

73
Web 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

74
Web DataWindow
75
Web 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.

76
Web 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

77
Web DataWindow
78
Web 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

79
Web 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())

80
Web 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")

81
Web 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

82
Web 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

83
Web 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

84
Web DataWindow
  • DataWindow plugin
  • Basically this is a PSR viewer
  • Typically used for predefined reports
  • No database access or updates
  • Browser must install the plugin

85
Web 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

86
Web DataWindow
  • DataWindow plugin
  • Negative
  • No auto install of plugin
  • SaveAs() and print are not really secure on the
    client side
  • Read only

87
Web 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

88
Web 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

89
Web 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

90
Web 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

91
Web 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

92
Web 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

93
Web DataWindow
  • PowerSite DataWindow DTC
  • Positive
  • Same as Web DataWindow control except no
    scripting or DW events
  • No PowerBuilder DLLs required on web server

94
Web 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

95
Questions Answers
96
Thank You
  • lcermak_at_ctpartners.com
  • www.ctpartners.com
  • 630 428-2650
Write a Comment
User Comments (0)
About PowerShow.com