Presentation is loading. Please wait.

Presentation is loading. Please wait.

PowerBuilder Strategic Direction 4GLs Web Professional Development Tools Software Construction Components $ Millions 8,000 7,000 6,000 5,000 4,000.

Similar presentations

Presentation on theme: "PowerBuilder Strategic Direction 4GLs Web Professional Development Tools Software Construction Components $ Millions 8,000 7,000 6,000 5,000 4,000."— Presentation transcript:



3 PowerBuilder Strategic Direction

4 4GLs Web Professional Development Tools Software Construction Components $ Millions 8,000 7,000 6,000 5,000 4,000 3,000 2,000 1,000 0 State of the Development Tools Market 3GLS Analysis/Model/ Design/ Construction Source: IDC, 2003

5 Primary Approaches to Application Development 4GL/RAD 36% OO 3GLs 28% 3GLs 23% Other 13% Source: IDC

6 Priority: What Are the Strategic Application Development Initiatives for End Users? Source: IDC, SW Strategies & Investment Survey, Final, Users, Fall 2001, n = 218 % responding extremely or highly likely Rank each of the following strategic business initiatives 0%20% 40% 60%80% Integrate applications with online exchange Utilize open source solutions Build and deploy mobile/handheld applications Integrate applications with external suppliers Build e-commerce solutions Increase productivity of development process Build, deploy, customize new applications Integrate internal applications Maintain/enhance existing applications

7 Uses for PowerBuilder: Today and in the Future Source: Novalys Inc.; 3,400 Respondents; 101 Countries PowerBuilder Today 3% 17% 80% Client-Server Only Some Web Projects Most Web Projects PowerBuilder Future 8% 42% 50% Client-Server Only Some Web Projects Most Web Projects

8 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

9 PB and.Net - Phased Implementation Web Services DataWindow.NET & DataStore.NET DataWindow.NET & DataStore.NET PBs.NET Compiler PBs.NET Compiler Simplified.NET Objects PowerBuilder

10 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

11 2004+ Today - > 2003 J2EE.NET 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 Web Services Accessing components in.NET framework in PB IDE.NET Compiler Development in Heterogeneous Environments DataWindow.NET DataStore.NET Enhanced Web DW

12 Summary Sybase pioneered 4GL and will continue to lead in application development through IDE 2, 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 2003

13 PowerBuilder 9.0 New Features RAD Java Server Pages TM (JSP TM ) 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

14 RAD JSP Creating JSP Web Applications with PowerBuilder

15 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

16 Why use PowerBuilder to create JSPs ? Integrated development environment for creating and deploying web applications Leverage the power of JSP language Standard Portable Stable Easy to learn Incorporate the power of the DataWindow into your web applications

17 PowerBuilder JSP Features PowerBuilder 9.0 Provides the following JSP features: –JSP Web Target Wizard –JSP Web Services Proxy Wizard –JSP Page Authoring –JSP Web Target Object Model –Custom Tag Library for the Web DataWindow –JSP Deployment Configuration

18 JSP Web Target Wizard –This wizard creates a JSP target that has build and source folders and a deployment configuration.

19 JSP Web Services Proxy Wizard –This wizard creates a custom tag library with the information necessary for calling a Web service in a JSP.

20 JSP Deployment Configuration When you deploy the JSP target, PowerBuilder builds a Web Archive (WAR) file in the deployment configuration folder created by the JSP Web Target wizard Deployment Target –EAServers JSP Container –Apache Tomcat –Command Line Deployment The Web application is automatically deployed to the server you selected in the target wizard

21 JSP Authoring in PowerBuilder Allows developers to create JSPs using any of the page wizards WYSIWYG editing of JSP pages Builds upon the existing Web Targets User Interface –New Wizard - JSP Target –Extensions to the Page Editor –System Tree Additions Full access to the page source through the editor

22 RAD JSP Seeing the Technology in Action

23 XML DataWindow Importing and Exporting XML with the DataWindow

24 Review of XML Extensible Markup Language Extends the ability to represent data Metadata language=tags 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

25 XML Document Well-Formed if structure follows XML syntax rules –Contains one or more elements Element is a tree 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

26 XML Document Example root element Fran text content Whitney empty element alternative notation

27 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

28 Why use PowerBuilder and XML? Easily generate XML for your data through the DataWindow Import XML data into your application through the DataWindow (apply validations, etc.) Process XML in PowerScript without having to write low level code

29 XML DataWindow XML generated by PowerBuilder is compliant with the XML 1.0 specification XML generated by PowerBuilder is well-formed and can be processed by an XML Parser PowerBuilder lets you use Template to define the mapping between values from a DataWindow and XML

30 XML DataWindow Generated using: –Save Rows As (DataWindow Painter – XML! SaveAs type) –dwcontrol.SaveAs() method in PowerScript (XML! SaveAs type) –dwcontrol.Object.Data.XML (dot notation in PowerScript)

31 XML DataWindow PowerScript Support New DataWindow object properties –Export.XML.UseTemplate –Export.XML.MetaDataType –Export.XML.SaveMetaData Data access –dwcontrol.Object.Data.XML –dwcontrol.Object.Data.XMLSchema –dwcontrol.Object.Data.XMLDTD

32 XML DataWindow Seeing the Technology in Action

33 XML Services Manipulating XML in PowerBuilder with PBDOM

34 What is DOM ? DOM. –DOM stands for Document Object Model. –DOM is a W3C standard. –A standard way of representing the contents of an XML document as a tree of interconnected objects. –The next slide demonstrates this.

35 What is DOM ? root child_1child_2child_3 Text_1Text_2Text_3 Document

36 What is PBDOM ? High-level DOM Management API. A complete API set to create, read, write and manipulate XML documents. –A large collection of non-visual classes. –Classes are hierarchical in nature and allow for polymorphic usage.

37 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 which incurs a shorter learning curve and provides a much greater level of productivity

38 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

39 PBDOM Overview pbdom_builder pbdom_exception pbdom_object pbdom_attribute pbdom_characterdata pbdom_comment pbdom_text pbdom_cdata pbdom_doctype pbdom_document pbdom_element pbdom_entityreference pbdom_processinginstruction

40 PBDOM Classes The PBDOM_BUILDER The following code fragment is an example of building a PBDOM_DOCUMENT from a file.

41 PBDOM Classes The PBDOM_BUILDER The following code fragment is an example of building a PBDOM_DOCUMENT from a string.

42 PBDOM Classes


44 XML Services Seeing the Technology in Action

45 PBNI Using the PowerBuilder Native Interface to Extend Your Applications

46 Three Questions Have you ever asked the following questions? Is it possible to call C/C++ functions from PowerScript? Is it possible to call external components, such as EJBs, WebServices, Java classes, and so on, from PowerScript? Is it possible to call PowerScript from C++/Java?

47 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

48 What is PBNI? PBNI (PowerBuilder Native Interface) is a standard interface that allows third parties to extend the functionalities of PowerBuilder. PBNI opens two doors from PowerBuilder to outside world C++/Java Application PBVM PB Extension IPB_Session IPBX_NonVisualObject IPB_VM IPB_Session

49 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 Jaguar components –Embed the PBVM in external C++ applications to call PowerScript functions

50 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

51 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 Using the native class as a normal NVO or custom user object

52 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

53 PBNI Seeing the Technology in Action

54 EJB Clients Accessing Enterprise Java Beans from a PowerBuilder Client

55 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

56 EJB Client Support in PowerBuilder 9.0 Provides the ability to call components in 3 rd party EJB servers Uses Java Native Interface (JNI) for interoperability Supports 1.0, 1.1, and 2.0 EJBs Supports client-managed transactions Supports system and application exception handling Implementation will be through a PBNI DLL Supplemented by EJB Proxy Generator PowerBuilder IDE EJB2PB90 command line utility Java data types will be mapped to PowerBuilder data types

57 EJB Client Support – Data Type Exchange Java TypePB Type Bytechar Shortint Intlong Longlonglong (to be added) Floatreal Doubledouble char (16bit unsigned)char? Booleanboolean Stringstring Java/util/Datedatetime Array of primitive type Array of primitive type for parameters, ANY for return value Array of String, Date, Time objects Array of string, date, time for parameters, ANY for return value Array of Arraysany*(not map to PB type) Java Classes return from EJBObject (EJBs) or taken as parameters powerobject Othersany

58 Take advantage of 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

59 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

60 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 interface&local Java class and their signature Exceptions that Java method throws Java class name that PB proxy represents as instance property

61 EJB Client PBNI implementation EJB Client provides a bridge from PowerBuilder into EJB EJB Client PBEJBCLIENT90.DLL PBEJBCLIENT90.PBD PBEJBCLIENT90.JAR NVO PowerBuilder VM Java Object EJB Java VM JNI PBNI

62 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

63 Coding a PowerBuilder EJB Client Application Setting up your environment –Adding the EJB client implementation to your target –Generating proxies Basic client coding steps –Initialize the Java VM –Connect to the EJB Server –Lookup an EJB –Invoke methods on the EJB –Disconnect from the EJB Server

64 Coding a PowerBuilder EJB Client Application Adding the EJB Client implementation to your target Include PBEJBCLIENT90.PBD in your targets library list

65 Coding a PowerBuilder EJB Client Application Generating proxies Use EJB Client Proxy Wizard

66 Coding a PowerBuilder EJB Client Application Initialize the Java VM TRY g_JavaVM = CREATE JavaVM CHOOSE CASE g_JavaVM.CreateJavaVM(is_ClassPath, false) CASE 0 // JVM just loaded CASE 1 // JVM was already loaded, is_ClassPath ignored CASE -1 // failure, likely due to not finding JVM.DLL CASE -2 // failure, do to not finding EJBLocator class END CHOOSE CATCH (PBXRuntimeError prte) // catch any exception raised in PBNI extension END TRY

67 Coding a PowerBuilder EJB Client Application Connect to the EJB Server TRY g_EJBConn = CREATE EJBConnection // set initial context properties ls_props[1] = "javax.naming.Context.INITIAL_CONTEXT_FACTORY=" + & "com.sybase.ejb.InitialContextFactory ls_props[2] = "javax.naming.Context.PROVIDER_URL=iiop://localhost:9000" ls_props[3] = "javax.naming.Context.SECURITY_PRINCIPAL=jagadmin ls_props[4] = "javax.naming.Context.SECURITY_CREDENTIALS= // connect to EJB server g_EJBConn.connectToServer(ls_props) CATCH (NamingException ne) … END TRY

68 Coding a PowerBuilder EJB Client Application Lookup an EJB TRY g_HelloHome = g_EJBConn.lookup("HelloHome", "PB9/Hello", "pb9.HelloHome") g_hello = g_helloHome.create() CATCH (NamingException ne) // raised if EJB not located CATCH (CreateException ce) // raised if problem in instantiating EJB CATCH (RemoteException re) // raised whenever there is a unchecked exception on server CATCH (PBXRuntimeError prte) // raised whenever there is an exception in the PBNI extension END TRY

69 Coding a PowerBuilder EJB Client Application Invoke methods on the EJB TRY MessageBox("Hello", g_hello.sayHello()) CATCH (YourCustomException yce) // handle user-defined exception raised by EJB CATCH (RemoteException re) // raised whenever there is a unchecked exception on server CATCH (PBXRuntimeError prte) // raised whenever there is an exception in the PBNI extension END TRY

70 Coding a PowerBuilder EJB Client Application Disconnect from the EJB server TRY g_EJBConn.disconnectServer() CATCH (NamingException ne) // naming exception is unlikely here, but could be thrown by underlying Java InitialContext object CATCH (PBXRuntimeError prte) // raised whenever there is an exception in the PBNI extension END TRY

71 EJB Clients Seeing the Technology in Action

72 Web Services and.Net Creating and Consuming Web Services with PowerBuilder 9.0

73 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

74 Introduction to Web Service Client How Web Services work 5. Create WS proxy from WSDL 6. Use proxy to invoke Web Services Web service Proxy 1. Create Server Side components 2. Wrap to WS 3. Generate WSDL 4. Publish Web service Stub Invoke Data PowerScript NVO or Other components WSDL Files Client Side Server Side 5 6

75 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

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

77 Web Services Support High level process: Create web service proxy Import SOAP connection class Use SOAP connection and proxy in PowerScript

78 Web Services and.Net Seeing the Technology in Action

79 Pocket PowerBuilder Developing Applications for Pocket PC Devices

80 Mobile Phone and PDA 3G Mobile Media Video Conference eMobile Enterprise eMobile Managerment

81 Mobile Database , Cahners In-Stat Group 2003, 6,150, IDC 23%, 35%. Forrester Research. GIGA Group

82 Sybase Sybase Sybase, 1996 : SYBASE 1997 : SYBASE 1998 : SYBASE 1999 : SYBASE 2000 : SYBASE 2000, 61% 68% * : Norma Schroder, "Overview of 1999 DBMS Market Size, Vendor Shares and Forecast," GartnerGroups Dataquest.

83 Current difficult in developing mobile applications J2ME Page Layout Windows

84 Pocket PowerBuilder Core Features 4GL PowerBuilder DataWindow SQL Anywhere Studio MobiLink Server PowerBuilder

85 Pocket PowerBuilder environment 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 Support Unicode No Pocket PowerBuilder runtime licenses Develop using the same PowerBuilder IDE format –Deploy to desktop, device or emulator –Support Microsoft Pocket PC, Pocket PC 2002 and Pocket PC 2003 emulator

86 Windows and Controls Controls are similar to desktop –Checkbox –Radiobutton –Listbox –Pushbutton –Datawindow –Etc… No mouse, no cursors –Usually the only available cursor is the wait-cursor Most Datawindow Presentation Style –Freeform, Graph, Grid, Group, Tabular

87 Database Synchronization ODBC –Handheld ASA Database –or –Connection to Enterprise DB as Always Connected 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

88 MobiLink Server MobiLink Server Sybase MobiLink Server ODBC Driver Bi-directional & Transactional Data Synchronization MS SQL SVR Oracle Sybase IBM DB2 Other DBs

89 MobiLink Server MobiLink Server Mobilink Server 128 bit Server 6,000

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

Download ppt "PowerBuilder Strategic Direction 4GLs Web Professional Development Tools Software Construction Components $ Millions 8,000 7,000 6,000 5,000 4,000."

Similar presentations

Ads by Google