PowerBuilder Strategic Direction - PowerPoint PPT Presentation

Loading...

PPT – PowerBuilder Strategic Direction PowerPoint presentation | free to view - id: 4fa980-YTc5Y



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

PowerBuilder Strategic Direction

Description:

PowerBuilder Strategic Direction State of the Development Tools Market Primary Approaches to Application Development The State of Application Development The ... – PowerPoint PPT presentation

Number of Views:301
Avg rating:3.0/5.0
Slides: 164
Provided by: cory8
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: PowerBuilder Strategic Direction


1
(No Transcript)
2
PowerBuilder Strategic Direction

3
State of the Development Tools Market
8,000 7,000 6,000 5,000 4,000 3,000 2,000 1,000 0
Millions
2001 2002 2003 2004
2005 2006
4GLs Web Professional Development Tools Software
Construction Components
3GLS Analysis/Model/ Design/ Construction
Source IDC, 2003
4
Primary Approaches to Application Development
Other
13
4GL/RAD
3GLs
36
23
OO 3GLs
Source IDC
28
5
The State of Application Development
  • The primary focus in application development
    remains building or maintaining enterprise wide
    two-tier transactional applications using 4GL/RAD
    tools.
  • Stephen D. Hendrick - IDC

6
The State of Application Development
Most important IDE Characteristics Percent
Ease of use or simplicity 32.8
Functionality 13.4
Reliability or freedom from bugs 10.4
Compatibility with tools from other vendors 8.5
Reduces development time 8.0
Other characteristics 26.9
Total 100.0
N 201, Source IDC, 2002
7
RMI
WSDL
COM
XML
J2EE
HTTP
.NET
SSL
JNI
B2B
TCP/IP
CORBA
How do we sort it all out?
8
Priority What Are the Strategic Application
Development Initiatives for End Users?
Rank each of the following strategic business
initiatives
Maintain/enhance existing applications
Integrate internal applications
Build, deploy, customize new applications
Increase productivity of development process
Build e-commerce solutions
Integrate applications with external suppliers
Build and deploy mobile/handheld applications
Utilize open source solutions
Integrate applications with online exchange
0
20
60
80
40
responding extremely or highly likely
Source IDC, SW Strategies Investment Survey,
Final, Users, Fall 2001, n 218
9
Uses for PowerBuilder Today and in the Future
PowerBuilder Today
80
Client-Server Only
Some Web Projects
17
Most Web Projects
3
PowerBuilder Future
50
Client-Server Only
Some Web Projects
42
Most Web Projects
8
Source Novalys Inc. 3,400 Respondents 101
Countries
10
What is Important to Your Organization Today?
  • Protect your existing technology investment
  • Stay current with industry trends and new
    technology
  • Gain a competitive advantage
  • Incorporate new technology into existing
    applications
  • Minimize costs
  • Protect your existing people investment
  • Utilize their existing skills
  • Give them a platform for the future

11
Comprehensive Architecture
You can build and generate many object models,
communicate with standard protocols, and deploy
to a variety of platforms.
Process Model
Web Services
Wireless
.NET
XML
Smart Client
JSP
J2EE
Application Server(s)
Component Model
Thin Client
Database(s)
DataWindow
RAD Tools
Data Modeling
Rich Client
PowerBuilder PowerDesigner
12
Sybase Development Vision
To be the integrated development environment
(IDE²) of choice for all application
architectures
13
Integrated Development Environment
Supports
Yields
HighestApplication Productivity and Fastest
Timeto Deploy
  • Rich Client
  • Thin Client
  • Smart Client
  • Business Processes

14
Integrated Development Environment Existing and
New Applications
PowerBuilder
Reverse Engineering
Heterogeneous Support
4GL
Java, J2EE, Corba,C, C, VB.Net, Web Services,
etc.
ModelingTool
Round-trip Engineering
PowerBuilder
Round-trip Engineering
Relational DatabaseManagement System (RDBMS)
15
Direction of Applications
RAD Int. Environment Heterogeneous
Integrated/ Strategic
3rd Generation
2nd Generation
Stand Alone/ Operational
1st Generation
Time
16
Beyond 4GL
4GL Life-cycle Development and
Heterogeneous EnvironmentSupport
Development Productivity
4GL VisualDevelopmentEnvironment (IDE)
3GL ProgrammingLanguages
Time
17
PB and .Net - Phased Implementation
1
4
Simplified.NET Objects
WebServices
PowerBuilder
3
2
PBs .NET Compiler
DataWindow.NET DataStore.NET
18
PB and J2EE
  • PowerBuilder 8.0
  • EAServer
  • EASI
  • Web Services Toolkit
  • PowerBuilder 9.0
  • EJB Clients
  • PB Web Services
  • RAD Java Server Pages
  • Future
  • NVOs in 3rd Party Application Servers

19
Development in Heterogeneous Environments
  • Web Services

.NET
  • Accessing components in .NET framework in
    PB IDE
  • .NET Compiler
  • DataWindow.NET
  • DataStore.NET
  • Enhanced Web DW
  • 4GL JSP support
  • Build, access, and consume Web services
  • DataWindow XML
  • XML services
  • Access EJBs in major application servers
  • Deploy NVOs directly to major application
    servers
  • Continue enhancing JSP authoring and XML
    capabilities

J2EE
2004
Today -gt 2003
20
Summary
  • Sybase pioneered 4GL and will continue to lead in
    application development through IDE2, giving you
    Exponential Power with the 4GL
  • Sybase is strongly committed to PowerBuilder
    version 9.0 is available today and planning is
    underway for 9.5, 10.0 and beyond
  • Customer needs span from client-server to
    next-generation, to best development practices
    and PB will meet these requirements
  • Sybase will extend RAD for enterprise
    applications to RAD for mobile applications with
    Pocket PowerBuilder for handheld devices release
    in Q3 2003

21
PowerBuilder 9.0 New Features
  • RAD Java Server PagesTM (JSPTM) Authoring
  • XML (Extensible Markup Language)
  • DataWindow (Export and Import)
  • PB DOM (XML Parsing in PowerScript)
  • PowerBuilder Native Interface (PBNI)
  • EJB Client Support
  • Web Services Support

22
RAD JSP
  • Creating JSP Web Applications with PowerBuilder

23
Introduction to JSP Technology
  • JSP is
  • A technology for delivering dynamic content
  • Based upon Java Servlet technology
  • JavaServer Pages
  • Contain standard HTML
  • Can contain Custom tags
  • Can contain JSP elements
  • JSP Actions
  • JSP Directives
  • Scripting Elements
  • At run time, are compiled into Servlets

24
JSP Authoring in PowerBuilder
  • New PowerBuilder Target Type (JSP Target)
  • Builds upon the existing Web Targets User
    Interface
  • New Wizard - JSP Target
  • Extensions to the Page Editor
  • System Tree Additions
  • Deployment Enhancements
  • EAServers JSP Container
  • Apache Tomcat
  • Command Line Deployment

25
JSP Authoring in PowerBuilder 9.0
  • PowerBuilder 9 provides a powerful object model
    for
  • Data transfer between the web client and the
    application server
  • HTML generation
  • JavaScript generation for server scripts

26
JSP Authoring in PowerBuilder 9.0
  • Wizard for
  • Creating JSPs that call Web Services
  • WYSIWYG editing of JSP pages
  • Full access to the page source through the editor

27
RAD JSP
  • Seeing the Technology in Action

28
XML DataWindow
  • Importing and Exporting XML with the DataWindow

29
Review of XML
  • Extensible Markup Language
  • Extends the ability to represent data
  • Metadata languagetags and layout can be
    customized
  • Data can be hierarchically structured with
    nesting
  • Easily parsed across applications, platforms,
    enterprises, and Web for data interchange
  • World Wide Web Consortium (W3C) XML 1.0
    Recommendation at http//www.w3.org/TR/REC-xml

30
XML Document
  • Well-Formed if structure follows XML syntax rules
  • Contains one or more elements
  • Element is a tree/leaf containing start-tag,
    content, end-tag
  • Start-tag is a name, enclosed by angle brackets,
    with optional attributes
  • Attribute names must be unique for element order
    insignificant
  • Attribute values must be quoted
  • One root all element tags properly nested
  • Parsed element cannot contain recursive reference
    to itself
  • Valid if structure conforms to a DTD or Schema
  • DTD defines grammar for XML document
  • Subset can be internal or external

31
XML Names and Entity References
  • XML Names
  • can only contain alphanumeric characters (also
    non-english, such as ä, ç etc.), _ Underscore, -
    Hyphen, . Period
  • have to start with letter or underscore
  • are case-sensitive
  • Predefined entity references cannot occur within
    element text content and have to be replaced
  • lt replaces lt (less-than sign)
  • gt replaces gt (greater-than sign)
  • amp replaces (ampersand)
  • quot replaces '' (double quote)
  • apos replaces ' (single quote)

32
XML Document Example
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • lttag_namegt ? root element
  • lttag_name2 attribute"female"gt
  • ltnamegt
  • ltemp_fnamegtFranlt/emp_fnamegt ? text
    content
  • ltemp_lnamegtWhitneylt/emp_lnamegt
  • lt/namegt
  • ltempty_elementgtlt/empty_elementgt ? empty
    element
  • ltanother_empty_element/gt ? alternative
    notation
  • lt/tag_name2gt
  • lt/tag_namegt

33
XML Parsing
  • DOM Parser
  • DOM provides API access to XML tree model
  • Useful if manipulating or re-traversing the
    document
  • SAX Parser
  • Event-driven
  • Useful if extracting data once in single
    traversal
  • Core Interfaces Specified by W3C
  • Extensions denoted by DOM Level 2, DOM Level 3

34
DataWindow Export/Import Template
  • Defines the mapping between values from a
    DataWindow and locations in an external document
    format, like XML
  • References can be
  • DataWindow control values (text)
  • Text control
  • Column
  • Computed column
  • Computed field
  • Nested report
  • DataWindow Expressions (evaluated at runtime)
  • Data source column

35
DataWindow Export/Import Template
  • References in Template are specific to a DW
    namespace
  • Template persists within DW definition in PBL
    SRD as a dependent object
  • Multiple Templates may be defined saved for a
    DW
  • Each Template must be uniquely named within a DW
    namespace
  • A Template is applied by name in the DW Painter
    or at runtime with the new DW property
    UseTemplate
  • Templates are used for DW data export, data
    import, or both

36
Methods to Export XML Data
  • DataWindow Painter
  • FileSave Rows As menu item
  • Save as type XML

37
Methods to Export XML Data
  • SaveAs method
  • integer dwcontrol.SaveAs ( string filename,
  • saveastype saveastype,
  • boolean colheading )
  • SaveAsType

38
DataWindow Properties in PowerScript
  • Data.XML
  • String containing DataWindow data exported in
    XML.
  • PowerBuilder dot notation
  • dw_control.Object.DataWindow.Data.XML
  • Describe argument
  • DataWindow.Data.XML

39
DataWindow Properties in PowerScript
  • Data.XMLSchema
  • String containing XML Schema generated from
    Template.
  • PowerBuilder dot notation
  • dw_control.Object.DataWindow.Data.XMLSchema
  • Describe argument
  • DataWindow.Data.XMLSchema

40
DataWindow Properties in PowerScript
  • Data.XMLDTD
  • String containing DTD generated from Template.
  • PowerBuilder dot notation
  • dw_control.Object.DataWindow.Data.XMLDTD
  • Describe argument
  • DataWindow.Data.XMLDTD

41
Importing XML Data into DataWindow
  • Analogous to XML export
  • DataWindow Import methods enhanced
  • XML Default Import (No XML Template is assigned)
  • Assumes coincident column data in XML document
  • XML Template Import
  • Piggybacks off same XML Template as for export to
    interpret logical structure and DataWindow
    mapping of XML document to import
  • Internally uses SAX parser for performance

42
DataWindow XML Default Import
  • Import without Import.XML.UseTemplate specified
  • XML document data (element text content) has to
    correspond to DataWindow column definition
  • XML element text content is imported in order of
    occurrence within XML document
  • Element tag names and all other content of the
    XML document are ignored
  • XML nesting within the document is disregarded

43
Empty Elements in XML Default Import
  • Empty elements are assumed to be empty values and
    imported as such into the DataWindow column
  • An element that contains only space, carriage
    return, new line or tab characters is treated as
    an empty element
  • An element that contains no text content, but any
    other content, e.g. a child element or comment,
    is not parsed as an element, empty or otherwise,
    and will be skipped for import

44
Example XML Default Import
  • XML Document
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltemployee_listgt
  • ltemployee dept_id"100"gt
  • ltemp_idgt102lt/emp_idgt
  • ltmanagergtlt/managergt ? empty element
  • ltnamegt
  • ltemp_fnamegtFranlt/emp_fnamegt
  • ltemp_lnamegtWhitneylt/emp_lnamegt
  • lt/namegt
  • lt/employeegt
  • lt/employee_listgt
  • Column Import into DataWindow
  • Column 1 Column 2 Column 3 Column 4
  • 102 Fran Whitney

45
Advantages of an XML Import Template
  • XML document structure doesnt have to match
    DataWindow columns
  • Order of elements within XML doesnt have to
    reflect DataWindow column order
  • Attribute values can be imported

46
DataWindow XML Import Template
  • Import Template needs to be created in DataWindow
    painter XML Template View
  • Template for export may be reused for import
  • Import.XML.UseTemplate property needs to be
    setin DataWindow painter or programmatically

47
XML Import Template
  • Defines mappings between XML element and
    attribute names of the XML document and
    DataWindow column names
  • Reflects nesting level where element and/or
    attribute import items can be located within the
    XML document

48
XML Import Template
  • If Starts Detail marker exists, element and
    attribute contents above this marker line are
    ignored

49
XML Import Template
  • If Starts Detail marker does not exist, all
    element and attribute mappings within the
    template are used for import
  • Other information within the Template (controls,
    comments, etc.) is ignored

50
PowerScript XML Parsing/Validation
  • Parsing/validation of XML document in PowerScript
  • can determine whether XML document is wellformed
  • complies to W3C XML specification
  • can determine whether XML document is valid
  • also matches a given grammar (DTD or XMLSchema)
  • uses Apache Xerces SAX http//xml.apache.org/xerc
    es-c/index.html
  • needs PBXerces90.dll and Xerces-C_1_5_1.dll in
    the path

51
XML Parsing/Validation Functions
  • New PowerScript system functions
  • XMLParseFile
  • long XMLParseFile(string xmlfilename
    ,valscheme validationscheme ,string
    parsingerrors ,boolean namespaceprocessing
    ,boolean schemaprocessing ,boolean
    schemafullchecking )
  • XMLParseString
  • long XMLParseString(string xmlstring
    ,valscheme validationscheme ,string
    parsingerrors ,boolean namespaceprocessing
    ,boolean schemaprocessing ,boolean
    schemafullchecking )

52
Validation Scheme
  • ValScheme new PowerBuilder enumerated value
  • ValNever!
  • Only check for wellformedness
  • ValAlways!
  • Validate the XML document. If no DTD or
    XMLSchema exists the parse check will give an
    error
  • ValAuto!
  • If DTD or XMLSchema exists validate the XML
    document, otherwise check for wellformedness only
  • Example, checking XML file for wellformedness
    only
  • XMLParseFile(c\temp\mydoc.xml, ValNever!)

53
Suppressing Error Messages
  • To suppress the error message box when the parser
    detects errors supply the optional argument
    string parsingerrors
  • Example
  • long ll_ret
  • string ls_err
  • ll_ret XMLParseFile(c\temp\mydoc.xml,
    ls_err)
  • If ll_ret ltgt 0 then
  • // do something, XMLParseFile returned error
  • End if

54
More Parsing/Validation Examples
  • If external XMLSchema is referenced the document
    will be validated, otherwise the parser will
    check for wellformedness
  • XMLParseFile(c\temp\mydoc.xml, TRUE, TRUE)
  • Parses XML document string, validates against a
    referenced XMLSchema (has to exist), saves any
    possible errors in a string variable (suppresses
    message boxes on error)
  • XMLParseString(s_myXMLstring, ValAlways!, ls_err,
    TRUE, TRUE)
  • Parses XML document, validates against a
    referenced XMLSchema (has to exist) also parses
    Schema itself for additional errors
  • XMLParseFile(c\temp\mydoc.xml, ValAlways!,
    TRUE
  • TRUE,TRUE)

55
XML DataWindow
  • Seeing the Technology in Action

56
XML Services
  • Manipulating XML in PowerBuilder with PBDOM

57
PBDOM Overview
  • With no native XML support, existing PB apps that
    need to process XML would use third party parsers
    like MSXML
  • This required the use of OLEObjects
  • This raises the problem of platform issues. (e.g.
    MSXML is only supported in Wintel platforms)

58
PBDOM Overview
  • PBDOM is supported in Wintel as well as Unix
    platforms
  • Parsers like MSXML primarily expose the low-level
    W3C DOM APIs which are hard to learn and master
  • PBDOM presents a much higher-level set of
    functions than MSXML, which incurs a shorter
    learning curve and provides a much greater level
    of productivity

59
PBDOM Overview
  • PBDOM lays out a standard set of PowerBuilder
    objects with properties and functionalities that
    allow for XML document navigation and content
    manipulation
  • It does this by presenting a view of the contents
    of an XML document as an interconnected
    collection of objects which can be searched for,
    read, modified, appended to and deleted from a
    document

60
PBDOM Overview
  • When PBDOM is used to manage an XML document, the
    first thing it does is parse the document and
    break it down into individual objects that
    represent the elements, attributes, comments,
    etc. as found in the document

61
PBDOM Overview
  • As it parses the document, PBDOM analyzes and
    maintains the innate relationships between the
    objects in the document
  • In other words, the PBDOM models the items of an
    XML document as a logical structure of objects
    that resembles a tree

62
XML Services
  • Seeing the Technology in Action

63
PBNI
  • Using the PowerBuilder Native Interface to Extend
    Your Applications

64
Definition
  • PBNI, the PowerBuilder Native Interface, is a
    standard interface for writing PB extensions,
    including PB non-visual extension, PB visual
    extensions, and PB marshaler extensions, and for
    embedding the PBVM into external C applications.

65
Extending PowerScript
  • PowerBuilder can call external C functions from
    PowerScript
  • But there are some limitations with external
    functions
  • It is not possible to declare an external
    function that requires a callback function. E.g.
    BOOL EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM
    lParam)
  • Some C data types cannot be mapped to PB data
    types, such as double
  • An external function cannot callback into the
    PBVM.
  • Using external functions is not object-oriented

66
PBNI is a better solution
  • To solve these limitations, PBNI has been
    implemented in PB90
  • Using PBNI, you get the following benefits
  • The data passed between PowerScript and PB
    extensions are in PBs native data types
  • PB extensions can callback into the PBVM to
    perform various jobs, such as creating an object,
    invoking a PowerScript function, triggering an
    event, accessing a variable, accessing an array
    item, and so on
  • Once the PBD file representing a PB extension is
    included in a PB target, the classes implemented
    by the PB extension can be used just like normal
    NVOs or custom user objects

67
PBNI makes the PB runtime open
  • External C applications and PB extensions talk
    to the PBVM through pre-defined interfaces
    IPB_VM, IPB_Session, IPB_NonVisualObject, etc.

68
What can be done with PBNI?
  • With PBNI, you can
  • Write PB non-visual extensions and use them in PB
    just as normal NVOs
  • Write PB visual extensions and use them just as
    custom user objects
  • Write PB marshaler extensions to call external
    components and use them in PB just like what you
    do with EAServer-deployed components
  • Embed the PBVM in external C applications to
    call PowerScript functions

69
Generating the PBD file
  • Run pbx2pbd90.exe in Command console
  • Example
  • Pbx2pbd90 simplext.pbd simplext.dll
  • What Happens?
  • pbx2pbd90.exe loads the simplext.dll
  • calls the PBX_GetDescription() function
  • parses the description and generates a PBD file
    holding the class definition for the simpleExt
    class

70
Using a PB extension
  • Add the PBD file in the library list of the PB
    target
  • Put the DLL file in the directory that is in the
    PATH
  • Use the native class as a normal NVO or custom
    user object

71
Embedding the PBVM
  • With PBNI, it is possible to embed the PBVM in an
    external C application in order to call
    PowerScript functions to perform certain jobs,
    e.g. showing a DataWindow, updating a database,
    or printing a DataStore
  • Through JNI (Java Native Interface) and PBNI, a
    Java application can call PowerScript functions

72
Tools
  • pbx2pbd90.exe - generates a PBD file for the DLL.
  • pbsig90.exe obtains function signature of PB
    functions.
  • ejb2PB90.exe creates proxies for EJB.
  • Visual C Wizard creates a base extension
    project.

73
PBNI
  • Seeing the Technology in Action

74
EJB Clients
  • Accessing Enterprise Java Beans from a
    PowerBuilder Client

75
Definitions Enterprise Java
  • EJB -- Enterprise JavaBeans
  • Stateful Session Beans
  • Stateless Session Beans
  • Entity Beans
  • Message-driven Beans
  • JNDI -- Java Naming and Directory Interface
  • JTS -- Java Transaction Service
  • JDBC -- Java Database Connectivity
  • RMI -- Remote Method Invocation

76
Definitions - EJB Proxy
  • EJB Proxy In PowerBuilder 9
  • A PB object to represent the remote EJB Interface
    and local Java class
  • It includes
  • All public functions exposed by EJB
    interfacelocal Java class and their signature
  • Exceptions that Java method throws
  • Java class name that PB proxy represents as
    instance property

77
J2EE Example
J2EE Server
EJB Container
Home Interface
Home Object
Enterprise Information System
Client
bean
Remote Interface
Services Provided by Server to bean
Naming Transactions Security .
78
Home Interface
  • Provides remote client-view of methods affecting
    the EJB lifecycle
  • Extends javax.ejb.EJBHome
  • With EJB 2.0, can include business methods that
    are not specific to a given EJB instance
  • No home interface for message-driven beans since
    they have no client-view

79
Remote Interface
  • Provides remote client-side view of beans
    business methods
  • Extends javax.ejb.EJBObject thus providing
    methods to obtain access to Home interface and
    Primary Key classes and to test for equality
    between EJB instances
  • No remote interface for message-driven beans
    since they have no client-view

80
Local Interfaces
  • Interfaces (home and component) used by clients
    within the same Java Virtual Machine (VM) as the
    EJB
  • javax.ejb.EJBLocalHome
  • javax.ejb.EJBLocalObject
  • Benefits lie in faster access and the less
    complex programming possible due to lack of a
    network layer
  • Primary drawback is the tight-coupling of the
    client to the component thus eliminating location
    independence and reducing options for
    redistribution

81
Implementation class
  • Implements one of the extensions of the
    javax.ejb.EnterpriseBean class which provide
    lifecycle notification methods (e.g.,
    ejbPassivate)
  • javax.ejb.EntityBean
  • javax.ejb.SessionBean
  • javax.ejb.MessageDrivenBean
  • Class in which EJB developer codes the business
    methods defined in the beans component
    interface(s)

82
Take advantage of PB EJB Client
  • EJB Client makes PowerBuilder glue with any
    application server - J2EE compliant
  • Development cycle with EJB client is much shorter
    than using Java(short time-to-market)
  • Reuse the source code written in PB and attach
    the PB strong power in manipulating DB

83
Overview of EJB Client Implementation
  • EJB Client PowerBuilder Native Interface(PBNI)
    implementation
  • PowerBuilder Java VM Service
  • Creates and manages a Java Virtual Machine(VM)
    within its own process space and communicate with
    Java objects
  • PowerBuilder proxy Objects

84
EJB Client PBNI implementation
  • EJB Client provides a bridge from PowerBuilder
    into EJB

EJB Client PBEJBCLIENT90.DLL PBEJBCLIENT90.PBD PB
EJBCLIENT90.JAR
Java VM
PowerBuilder VM
JNI
PBNI
EJB
NVO
Java Object
NVO
JNI (Java native interface) http//java.sun.com/j
2se/1.4/docs/guide/jni/
85
EJB Client Workflow
86
EJB Client PBNI Classes
  • JavaVM
  • load or attach to a Java VM
  • work with Java interface and class hierarchies
  • EJBConnection
  • connect to the J2EE server
  • locate EJB via JNDI
  • instantiate other Java classes
  • EJBTransaction
  • Manage the transaction (from the client)

87
EJBLocator Java class
  • PBEJBCLIENT90.JAR contains the com.sybase.powerbui
    lder.ejb.EJBLocator class
  • It is used by the EJBConnection object to operate
    on an instance of the javax.naming.InitialContext
  • PowerBuilder JVM Service automatically loads this
    JAR file into the CLASSPATH of the Java VM

88
JVM Service in PB IDE
  • Sun JDK 1.4 is installed within
    shared/PowerBuilder directory by PowerBuilder as
    default
  • Modify this default setting using JDK Location
    dialog
  • It is accessible from the Java tab of the Systems
    Options Dialog access from PowerBuilders Tools
    Menu, click the Set JDK Location button

89
EJB Proxy Object
  • EJB proxy object is a way to delegate requests to
    and from the underlying Java classes
  • Each EJB proxy is inherited from nonvisualobject
    or exception class like other PowerBuilder
    proxies
  • To avoid conflicts with PowerBuilder reserved
    words, proxy name is set a prefix java_
  • Proxy includes all of the public methods defined
    on its associated Java class
  • Method name adds a suffix _j if name conflicts
    with PowerBuilder reserved words

90
Generates EJB proxies
  • PowerBuilder provides two methods to generate
    proxy object
  • Within the development environment
  • A standalone command-line application
  • Relies on the Javap utility provided with the
    JDK.
  • Fully qualified name of an EJBs remote interface
    is required as parameter
  • Assumes that the home interface has the same name
    followed by Home
  • An additional PB structure is generated as well,
    that records the correspondence of the original
    Java class to the resulting proxy object name

91
Command-line utility -- EJB2PB
  • The command-line utility(ejb2pb90.exe) is used to
    generate proxies into multiple source(.srx)
  • The syntax for this command is
  • ejb2pb90 -classpath pathlist EJBName
    prefix
  • In addition to the proxy source files
  • ejbproxies.txt -- listing the .srx files produced
  • ejbproxies.err -- containing the diagnostic
    message in the event an error occurs while the
    proxies are generated
  • EJBName_ejb_pb_mapping.srs -- the mapping
    structure

92
Deploy EJB Client Application
  • Need to package the following components

File Type
File List
Core PowerBuilder files
PBVM90.DLL,PBDWE90.DLL,LIBJSYBHEAP.DLL...
PowerBuilder EJB PBNI extension file
PBEJBCLIENT90.DLL,PBEJBCLIENT90.PBD, PBEJBCLIENT90
.JAR
JVM Service file
PBJVM90.DLL
JRE
Depends on the targeted EJB server
Vendor-specific client classes
e.g. WebLogic Server weblogic.jar
,weblogic_sp.jar
Stub classes for EJB
Including home and remote interface, other stub
classes
93
EJB Clients
  • Seeing the Technology in Action

94
Break Time!
  • 15 Minute Break

95
Web Services and .Net
  • Creating and Consuming Web Services with
    PowerBuilder 9.0

96
Web Services
  • Web Services allow applications written in
    different programming languages to communicate
    with each other
  • Web Services are
  • Platform independent
  • Language independent
  • Based on XML

97
Introduction to Web Service Client
  • How Web Services work

Client Side
Server Side
1. Create Server Side components 2. Wrap to
WS 3. Generate WSDL 4. Publish
5. Create WS proxy from WSDL 6. Use proxy to
invoke Web Services
3
WSDL Files
PowerScript
4
NVO or Other components
5
2
1
6
Invoke
Web service Proxy
Web service Stub
Data
98
Web Services Support
  • High level process
  • Create web service proxy
  • Import SOAP connection class
  • Use SOAP connection and proxy in PowerScript

99
PB Web Service Client Internals
PB 9
Info
Web Service Wizard
  • Web Service Wizard
  • Collect information such as the location of WSDL,
    service, ports, etc.
  • Proxy Generator
  • Create WS proxy based on the information above
  • Universal SOAP Client
  • Instantiate WS proxy, communicate to WS server
  • Error Handling
  • Capture exception/error

Generator Data Store
WSDL file
Proxy Generator
PB Proxy
PowerScript
Universal Soap Client
Proxy Instance
Exception Processor
100
Web Services Support
  • PowerBuilder 9.0 supports access to web services
    using SOAP through HTTP
  • Allows developers to integrate web services into
    PowerBuilder applications quickly
  • Hides much of the complexity of
  • WSDL
  • XML grammar
  • SOAP development

101
Standards Used In PB Web Service Client
  • Standards supported in PB 9
  • XML Schema 1.1
  • WSDL 1.1
  • SOAP 1.1 over HTTP

102
Web Services and .Net
  • Seeing the Technology in Action

103
PowerBuilder 9.0 Enhancements
  • SaveAs(PDF!)
  • Debugger Enhancements
  • Version Control Enhancements

104
SaveAs(PDF!)
  • Generating PDF Files From Your DataWindows

105
Methods to Export PDF
  • DataWindow Painter
  • FileSave Rows As menu item
  • Save as type PDF

106
Methods to Export PDF
  • SaveAs method
  • integer dwcontrol.SaveAs ( string filename,
  • saveastype saveastype,
  • boolean colheading )
  • SaveAsType

107
SaveAs(PDF!)
  • Demonstration

108
Debugger Enhancements
  • Improving the Debugging Experience

109
Debugger Enhancements
  • TipWatch for Context Variable or Expression in
    Debugger Source View
  • QuickWatch for Context Variable or Expression in
    Debugger Source View
  • Predefined shortcut keys for some debugger menu
    items.

110
TipWatch
  • TipWatch for Context Variable or Expression
  • During debugging and script execution when
    stopping at a breakpoint
  • Place mouse pointer over a variable string or
    selected text as watch variable or expression in
    debugger source view
  • A tip window will automatically popup to show
    the current value of variable or expression
  • Watch string comes from the context variable or
    expression in source view
  • Value of watch is shown in a popup window

111
Examples for TipWatch
  • TipWatch for simple type expression(Format exp
    value)

112
QuickWatch
  • Select Debug\QuickWatch menu item or QuickWatch
    popup menu
  • QuickWatch Dialog with QuickWatch View pops up
    and shows the detail current information of the
    watch variable or expression
  • Change the variable or expression

113
Examples for QuickWatch
  • QuickWatch activiation

I
114
Examples for QuickWatch
  • QuickWatch for datawindow object properties

Type any dw dot notation string in exp editbox
and reevaluate it to get the dw data or obj
properties
115
Examples for QuickWatch
  • QuickWatch for datawindow object properties

116
Examples for QuickWatch
  • Modify variable value

Double click the variable item or select the item
and click Change Value Button to modify the
item value
117
Predefined shortcut keys for some debugger menu
items
  • Predefined shortcut keys are added for menu items
  • Use mouse to watch the variable value and use
    predefined shortcut keys to control script
    execution

118
Predefined shortcut keys for some debugger menu
items
119
Version Control Enhancements
  • Source Code Control and PowerBuilder 9.0

120
Goals for SCC features in PB 9
  • Automated target refresh
  • Improve performance of status queries
  • Improve detection of out of sync objects
  • Closer integration with SCC providers
  • User enhancement requests

121
Automated target refresh
  • ORCA / SCC integration (new)
  • Batch build procedure with no operation
    intervention
  • Rebuild PBLs from scratch
  • Refresh PBLs
  • Do not overwrite checked out objects
  • Refresh from a previous version label or view
  • OrcaScript utility (new)
  • Scripting language for ORCA API

122
OrcaScript example - Create PBDs and Executable
Start session Set liblist .\qadbtest\qadbtest.pbl
.\shared_obj\shared_obj.pbl.\chgreqs\chgreq
s.pbl.\datatypes\datatype.pbl Set application
.\qadbtest\qadbtest.pbl qadbtest build
library .\shared_obj\shared_obj.pbl ""
pbd build library .\datatypes\datatype.pbl ""
pbd build library .\chgreqs\chgreqs.pbl ""
pbd build executable .\qadbtest\qadbtest.exe
".\emp.ico" ".\qadbtest.pbr" "nyyy" End session
123
Orcascript Example Summary
  • No SCC connection required. Set library list and
    current application via standard ORCA APIs
  • Builds PBDs for three support libraries in the
    application. No .PBR file associated with these
    PBDs
  • Build Pcode executable qadbtest\qadbtest.exe
  • Emp.ico will be icon associated with the exe
  • Qadbtest.pbr is the resource file for the exe
  • nyyy means that objects from the first PBL in
    the library list must be included in the exe.
    Objects from the last three libraries in the
    library list are PBDs, so do not include these
    objects into the exe.

124
User Enhancement Requests
  • Support Reload Feature in SccHistory and
    SccProperties
  • Resizable checkview dialog
  • All SCC operations accessible from system view
    context menus
  • Prompt user not to clobber checked out objects on
    target-wide GetLatestVersion request
  • Require additional confirmation before removing
    objects from source control
  • Suppress prompt to overwrite read-only files in
    local project path

125
Beyond PowerBuilder 9.0
  • What else has Sybase been up to?

126
Pocket PowerBuilder
  • Developing Applications for Pocket PC Devices

127
Objective
  • Extend the PB Enterprise to WinCE devices
  • Pocket PowerBuilder is supported on Windows 2000
    and Windows XP
  • Target devices are PocketPC and HPC Professional
  • Target operating system WinCE 3.0 or later
  • Supported processors ARM and Xscale
  • No Pocket PowerBuilder runtime licenses
  • Develop using the same PowerBuilder IDE format
  • Deploy to desktop, device or emulator

128
Windows and Controls
  • Controls are similar to desktop
  • Checkbox
  • Radiobutton
  • Listbox
  • Pushbutton
  • Etc
  • No mouse, no cursors
  • Usually the only available cursor is the
    wait-cursor

129
Database Synchronization
  • MobiLink
  • ASA Databases
  • The DBMLSYNC application on the device manages
    the synchronization of data between the desktop
    and the device
  • Use Sybase Central to define the synchronization
    operation

130
Debugging
  • Desktop application
  • Deploy to the desktop and use the PB Debug
    interface. This could be done using PowerBuilder
    or Pocket PowerBuilder
  • This should cover most of the application
    problems, except perhaps for the database access
  • PPC Emulator for quick preview
  • Use the emulator for instant device testing
  • Always test on the real device (devices) before
    shipping the application

131
First Release of Pocket PowerBuilder
  • Compatibility with PowerBuilder
  • PowerBuilder Objects can be imported into Pocket
    PowerBuilder
  • Pocket PowerBuilder objects can be imported into
    PowerBuilder
  • A subset of PowerBuilder objects and methods
  • No RichText Control
  • No OLE
  • Etc.

132
Post Pocket PowerBuilder 1.0 Possible
Enhancements
  • XML Support for DataWindows and PowerScript
  • More Database Support
  • IR Support
  • Wireless Support
  • .Net

133
Pocket PowerBuilder
  • Seeing the Technology in Action

134
Complimentary Technology
  • Every thing works better when every thing works
    together

135
Sybase ManageAnyhwere
  • Take Control of Your Application Deployment
    Process

136
Manage Anywhere Studio
Central management of software and
hardware. Solution optimized for mobile, remote,
and distributed systems.
  • Inventory and asset management
  • Automated central software distribution
  • Secure application and system configuration
  • Live Support remote control

137
Manage Anywhere Studio
  • Inventory and asset management
  • Build complete reports of software and
    device-level hardware inventory
  • Software license metering/tracking
  • Customizable inventory, custom fields
  • Determine installation and version of deployed
    PowerBuilder applications

138
Manage Anywhere Studio
  • Automated central software distribution
  • Including file distribution and collection
  • Centralized task scheduling and task management
  • Remote command execution with built-in scripting
    tool and package editor
  • Schedule deployment/upgrade of PowerBuilder or
    Pocket PowerBuilder applications at any time
  • Automatically perform backup before upgrade
  • Automatically remove old application and replace
    with new one
  • Program files (EXEs, DLLs, PBDs)
  • Registry entries
  • PowerBuilder runtime DLLs
  • Update open files

139
Manage Anywhere Studio
  • Secure application and system configuration
  • Application self-healing and repair
  • State management
  • Imaging
  • Delta changes
  • User-proof environment
  • Self-healing configurations
  • Configuration enforcement
  • Protect system configurations such as VPN
    settings or dialup networking settings
  • Safeguard deployed PB and Pocket PB application
    files and settings in PCs and Pocket PCs

140
Manage Anywhere Studio
  • Live Support remote control
  • Support mission-critical mobile environment
  • Troubleshoot and establish real-time remote
    control sessions with users
  • Provide training to end-users
  • Remote control PCs and Pocket PCs

141
Supported Platforms
  • Manage Anywhere Studio Server
  • Windows NT 4.0 Server SP 6a
  • Windows 2000/XP Professional, Server, or Adv
    Server
  • Manage Anywhere Studio Agent
  • Windows 9x/Me/2000/XP
  • Windows CE 3.0/Pocket PC 2002 and higher
  • Palm OS 3.0 and higher
  • Connectivity
  • LAN, WLAN
  • Dial-up
  • Wireless

142
For Further Information
  • Visit the Manage Anywhere Web site at
    http//www.ianywhere.com/manage_anywhere
  • Where you will find
  • Evaluation software
  • Datasheets
  • Whitepapers
  • Technical documents
  • Upcoming events

143
Sybase SQL Anywhere
  • Industry Leading Small Footprint Database

144
SQL Anywhere
PowerBuilder includes the industry-leading small
footprint, full-featured, easily embeddable SQL
Anywhere database
  • Easy to use
  • Excellent out-of-box performance
  • Embeddable and secure
  • Provides interoperability and openness
  • SQL Anywhere is an enterprise-class database
    that is ideal for mobile, workgroup, and embedded
    environments.

145
SQL Anywhere
  • Ease of use for developers, administrators and
    end-users
  • Installation under 10 minutes
  • Ability to copy database file from one platform
    to any other (Windows, Unix, Netware)
  • Sybase Central Graphical Administration tool
  • Stored Procedure profiler
  • Stored procedure debugger
  • Graphical query plan displayer
  • Server Monitoring console
  • Excellent documentation!

146
SQL Anywhere
  • Excellent out-of-box performance
  • Support for dynamic cache sizing
  • Cost-based query optimizer automatically finds an
    efficient method to access the data requested
  • Optimization statistics automatically maintained
  • SMP support ideal for workgroup environments
  • Sophisticated caching algorithm satisfies needs
    for OLTP and DSS
  • Separate storage for long values
  • LONG BINARY, LONG VARCHAR, TEXT, IMAGE
  • Large cache support on Windows 2000/XP
  • 3G 64G capability

147
SQL Anywhere
  • Easily embeddable
  • Small footprint resource efficient
  • Simple installation can be scripted to be
    silent
  • Can be made transparent for end-user
  • InstallShield templates provided
  • Self-tuning and self-managing
  • Secure
  • Full end-to-end security to protect your data
  • 128-bit strong encryption of database file (AES
    algorithm)
  • 128-bit strong encryption of client-server and
    synchronization communication streams (Certicom
    TLS)

148
SQL Anywhere
  • Interoperability and openness
  • Open API and tools support
  • ODBC, OLE/DB / ADO / ADO.NET / JDBC
  • ANSI SQL and Transact SQL
  • Replication with enterprise systems
  • Flexible and robust bi-directional
    synchronization
  • Support for Sybase, Oracle, IBM DB2, Microsoft
    SQL Server
  • Support for sub-setting and partitioning of data
  • Scalable to thousands of remote users
  • Conflict detection and resolution
  • Robust error handling
  • Migration wizard eases data migration

149
For Further Information
  • Visit the SQL Anywhere Web site at
  • http//www.ianywhere.com/sqlanywhere
  • Here you will find
  • Evaluation software
  • Datasheets
  • Whitepapers
  • Technical documents
  • Upcoming events
  • Next major release Banff
  • Beta registration available at
  • http//www.ianywhere.com/promos/banff/banff

150
PowerDesigner and PowerBuilder
  • Reverse Engineer and Generate PowerBuilder
    Objects with PowerDesigner

151
PowerBuilder Support in PowerDesigner 9.5.2
  • PowerDesigner 9.5.2 will support PowerBuilder 6,
    7, 8 and 9
  • PowerDesigner will reverse engineer and generate
    ALL PowerBuilder objectsRound Trip Engineering!
  • The following objects are reverse engineered and
    generated as classes
  • Application, User Object, Structure, Function,
    Window, Proxy
  • The other objects (menu, DataWindow, etc.) are
    reverse engineered and generated as is

152
PowerBuilder Support in PowerDesigner 9.5.2
  • Support libraries (.pbl) and source files (.sr?)
  • PowerBuilder tool palette for creating new
    objects
  • Model verification
  • Roundtrip engineer PowerBuilder extended
    attributes in Physical Data Model

153
Reverse Engineering PowerBuilder Application
  • Select LanguagegtReverse Engineer PowerBuilder
  • Select the Library or source mode
  • Select the Target or application
  • You can select or deselect the objects

154
Example of a Class Diagram
  • The class diagram shows packages, inheritances,
    associations, dependencies, attributes,
    operations
  • Each library will create a package
  • A stereotype and a mini icon shows the type of
    object

155
Example of a Class Diagram(Continued)
  • The dependencies show which menu or data window
    is used by which window
  • Window, user object, application, structure,
    function and proxy are represented as classes and
    the code is regenerated from the class definition
  • Controls are represented by inner classes

156
Other Objects
  • DataWindow, menu, query, pipeline, binary object
    are represented by a class and the class symbol
    is replaced by an icon
  • The source code for these object types is stored
    in the Header attribute in the Script tab

157
Working on the Class Diagram
  • Use a tool bar to create PowerBuilder objects
  • Create, modify or delete PowerBuilder objects or
    links
  • Preview PowerScript code before it is generated
    back out to the PB libraries or source files.
  • Modify the PowerBuilder code in the code preview
    window
  • Write specification in RTF format. You can use
    Word to edit the description or annotation
  • Generate reports in HTML or RTF formats

158
Working with Controls
  • Controls within windows or within custom user
    objects are represented as inner classes
  • To see the list of controls
  • Open the properties of a window or CUO
  • Select the Inner Classes tab
  • Open the properties of an inner class

159
Previewing the Generated Code and Modifying the
Code
  • Open the properties of an object
  • Select the Preview tab
  • For window, user object, application, structure,
    function and proxy, you can change the code in
    the Preview window (add attributes, modify
    operations, ) then the model will be updated to
    reflect the changes

160
Verifying the Model
  • You can use ToolsgtCheck Model to verify if the
    model is well defined
  • PowerBuilder specific checks have been added

161
Generating the Application
  • Select LanguagegtGenerate PowerBuilder Code
  • In the Select tab, you can select or unselect
    objects
  • In the Options tab, you can select the library or
    source mode, a target or application

162
The Business / Technical Benefits
  • PowerDesigner offers UML Modeling to PowerBuilder

163
The Business / Technical Benefits
  • UML modeling offers the PowerBuilder Community
    the power to
  • Understand legacy systems through visual modeling
  • Ease integration and maintenance
  • Migrate existing client-server applications to
    N-tier/service oriented architectures
  • Easily lift business logic out of existing
    applications
  • Insert Business Logic visually into objects
    generated to PowerBuilder

164
The Business / Technical Benefits
  • Documentation of complex multi-tier applications
  • For ongoing development and maintenance
  • Makes projects and systems more agile in
    responding to changes in
  • Business Requirements
  • Business Models

165
Future Direction
  • PowerBuilder will be able to embed PowerDesigner
    views inside PowerBuilder
  • PowerBuilder will be able to generate complete
    code from PowerDesigner models using OLE
    automation

166
Sybase Developer Network presents CodeXchange
  • www.codexchange.sybase.com

167
Share PB 9.0 code tools
  • New SDN feature enables community collaboration
  • Download samples created by Sybase
  • Leverage contributions of others to exploit PBNI
  • (i.e. PBNI CommonDialog, PBNI OLEObject
    utilities)
  • Contribute your own code or start your own
    collaborative project with input from other
    PowerBuilder experts
  • Any SDN member can participate
  • Log in using your MySybase account via SDN
  • Join the collaboration already underway
  • http//powerbuilder.codexchange.sybase.com or
  • via SDN at www.sybase.com/developer

168
www.pb9books.com
169
PB to the Web CBTswww.Branick-Inc.com
  • Computer Based Training
  • Camtasia-based lectures and demos
  • Extremely detailed presentations, nothing is left
    to the imagination
  • Based on real world applications
  • Solid foundation for Web and Distributed
    development
  • Learn how to design components
  • Learn how to quickly debug components
  • Courses
  • PowerBuilder to the Web, 9 hours
  • JSP for the PowerBuilder Developer, 2 hours
  • Web DataWindows, 3 hours

170
Question and Answer TimeJohn Strano
(stranoj_at_sybase.com)

171
Prize Raffle

172
(No Transcript)
About PowerShow.com