Presentation on theme: "Taking PowerBuilder Applications To The Web"— Presentation transcript:
1 Taking PowerBuilder Applications To The Web Donald D. Clayton and Bryan Roberts Intertech Consulting, Inc. (713)
2 Today’s Agenda: PB to Web Strategies There are a number of different approaches to moving PB to the web, including:“Screen Scraping” with AppeonApplication Partitioning (moving business logic to middle tier)PB NVOs as Web Services providersIntegrating PB Business Objects with other languages.NetC++Java/JSP/StrutsUsing the DataWindow for Web ReportingUsing other PB to Web Frameworks
4 Elements to Consider Datawindows Business Logic Graphical Logic The PB to Web hurdles…DatawindowsOur best (and most important) option for reusability.Many options, with accurate display our primary concern.Most solutions provided out of the box from Sybase.Business LogicThe (currently Powerscript) functions and procedures that make the application robust.This is the most difficult portion of the application to convert (think PFC).With care, this logic can be partitioned so that the legacy PB app and the converted web app can be utilizing the same logic codebase.Graphical LogicThis layer involves graphics, and graphically-driven events (like drag and drop, multi/single select, etc).Some of these elements simply cannot be recreated easily in the web environment.Several different browser-side solutions can help recreate the desired functionality.
5 Solutions Datawindows Business Logic Graphical Logic The PB to Web hurdles…DatawindowsJSP / EAF / PBDW - These methods all use the Sybase-provided dlls to generate the DW as an html stream. There are several methods of connection, and generation within these solutions.Appeon - AutomaticBusiness LogicJSP – Business logic can be stored in any type of class, that can be called from within a JSP page. The advantage here is the level of control from within the JSP itself.EAF – Business logic can be transferred to PB NVOs, and stored within Jaguar. This allows reuse of the code, as well as leveraging existing development talents.Appeon - Automatic (even PFC!)Graphical LogicJSP / EAF – Very little support for anything short of simple graphical elements (buttons, pictures, etc). Other elements will need to be created manually.Appeon – VERY strong support, some features not implemented.
6 Moving PB to the Web with Appeon Appeon® for PowerBuilder®Applications – Deploy existing PB applications to the WebDevelopers – Using only PB skills, build NEW Web applications immediately with unparalleled productivityUsers – Same rich-client GUI but running in standard IE browser
7 Appeon ComponentsAppeon makes development easy as it installs a new Appeon Developer toolbar into the PB IDE. There is no Appeon-specific coding as the Appeon Developer toolbar is all Configuration and Property-based. This shows some of the functionality in the Appeon Developer, which can be grouped into Web Previews, Configuration, Analysis, Deployment, Runtime Monitoring, and Help.
11 Two-Tier Architectures DatabaseServerClientVendor / Platform-Specific APIUser interfaceSome business logicCharacteristics of two-tier applications include:Work group/departmentalYou control the number of clients, and therefore the number of transactions.You control the platform(s).Provide an overview of the two-tier architecture to bring the class to a common starting point.Data managementSome business logic
12 Multitier (Distributed) Architectures DatabaseServerClientApplication ServerBusiness logicCachingTransaction managementData location transparencyLoad balancingUser interfaceData managementMultitier architecture CharacteristicsUnpredictable number of clients/transactionsOpen applications to the Internet/extranetWhy is there a push toward distributed architecture? The Internet!Multitier Architecture PrinciplesEncapsulate or “partition” business logic into objects.Move or “distribute” business objects to a dedicated machine.Provide access to or “host” the objects in a server application.The server application receives requests for processing from clients. The server directs requests to business objects for processing.ExamplesBusiness logic: Loan approval, credit card authorizationCache static data: States, parts/productsServices for specialized resources: Gateway to mainframe/fax server, real-time feed from wire services (stock quotes)Provide an overview of a distributed architecture. This discussion should be review for many students, so solicit information from these students to keep them engaged.
14 Managing ComplexityCreating an enterprise system that will support diverse client types with shared business components requiresIncreased emphasis on analysis and designIncreased usage of OO techniques to manage complexityCommon Techniques includeSystem PartitioningSystem LayeringService-based architecturesThis is an intro slide – don’t overkill these topics!
15 System PartitionsProblem DomainPartitionUserInterfaceSystemManagement
16 System Architecture Layers Another way of looking at the problem is by layers. This usually involves abstraction, and the use of generalization, or inheritance, to implement.Layering is accomplished with generalization (inheritance)
17 System Architecture A Combined Perspective Note: When designing distributed systems, always know the layer and partition you are designing for!
18 Service-Oriented Architectures Service-based architectures are popular in distributed computing and in n-tier environmentsTwo main components:Requester classService classThe key concept here is the delegation of behaviorRather than the encapsulation of behaviorResults in highly specialized, task-based classesProxy objects are used to facilitate service-based architectures in an n-tier environment
19 Requester and Service Class Example Requesters delegate work to servicesContain predefined operations to and call servicesContain attributes that refer to the service classesService classes respond to requesters, and return resultsRequestor/service model follows the client/server metaphorRequester ClassService Class
21 Web Services Technologies 101 What are Web services ?Made up of standards that describe business processesSelf describingSearchable in a registry of servicesSync or AsyncLoosely coupled and cross platformReusable
22 Web Services Technologies 101 Web services benefitsRADNeutralArchitecture & languageLeverage current investmentAccessed through many different client types
23 Technologies 101 High Level Architecture Client Provider Registry ServiceClientProvider creates and publishes serviceA client searches a registry for that serviceThe client is able to connect and call the service
31 Web Services Technologies 101 WSDL DocumentComprised ofData typesMessage/methodPortBindingServiceDocumentData TypesMessageInterfacePortBindingImplementationService
32 Web Services Technologies 101 UDDIUniversal Description, Discovery and IntegrationSOAP-based Web serviceAllowsProviders to register servicesClients to lookup servicesUses WSDL to describe services
33 Web Services Technologies 101 ClientProviderUDDILookupRegisterService
34 Creating Web Services with PowerBuilder Jaguar ManagerPowerBuilderGenerate Stubs and SkeletonsEA ServerComponent DevelopmentComponent / User ObjectDeploy ComponentExpose Component as Web ServiceComponent ProxyCreate Component ProxyWSDLEclipseWeb Service ClientCreate Web Service Proxy from WSDLWeb Service ProxyWeb Service DevelopmentInternet
35 Enterprise Application Server EAServer 5.1PBClientsJavaClientsHTMLClientsWeb ServicesPBEJBActiveXApplicationIntegratorEnterprise Application ServerCorbaSecurityRemove the Windows and Java Clients on this slide and the following slide - just want to have HTML Client on these 2 slides. Also, all of the changes made inside the box on previous slides should be carryed forward to all slides.Is there anyway to callout the PoerDynamo piece of this slide. PowerDynamo is the orange box inside EAServer on the left (it has white boxes with script and HTML…..). What I’m thinking is that if we could call this out it would bring attention to it. Then when we get to the Jaguar Slides, we call out the box to the right (with CORBA at the top). Same goes for Application IntegratorIIOPCICSStored Procs
36 Topics Distributed Architecture Issues Role of a Jaguar Component Transaction Server (CTS)Jaguar CTS EnvironmentServerComponentsPackagesRepositoryArchitectures for Building Web Applications
37 Role of the Server Application Component instantiation and lifecycleTo efficiently manage:Database connectionsTransactionsServerThreadsSecurityDo not discuss the details of these major services. They are detailed in later modules. Stay at a high level, providing a solid overview of each. Justify the need for each service in an application server.
38 Jaguar CTS Environment Jaguar ServerC++IIOP requestsClassLibraries9000TDS requests7878HTTP requests8080The Jaguar CTS environment consists of:ServerJaguar Manager (a plug-in for the Java Sybase Central utility)ComponentsPackages (containers for related components)Repository (a collection of readable files containing property information for components)A set of class libraries to support various languages/toolsORB and IDL compilersThe Jaguar server accepts IIOP requests because IIOP is a CORBA standard. It accepts TDS requests for backward compatibility with versions 1.x. Finally, the server accepts HTTP requests and can be used as a page server, but it is really intended to be a component transaction server.Considering demonstrating the product at this time. Start the Jaguar server and Jaguar Manager. Navigate the Jaguar Manager. Start the File Viewer display. In Explorer, show the directory structure, the repository, and the srv.log file.ComponentsPackageJaguar ManagerRepository
39 Required Expertise Business Developers Lifecycle Threads Transactions SecurityJaguar handles much of the system-level development for you, so you can focus on the business logic.Emphasize the complexity involved in writing a multiuser, multithreaded server. Jaguar meets this challenge with a simple point-and-click interface and class libraries. The students can focus on their business logic and user interface.GUI DevelopersConnectionsSystem Developers
40 HTML DataWindowWeb BrowserWeb ServerPage ServerHTML
41 PowerBuilder as a Data Provider – (Shell) Integrating PB Business Objects with other languages… real world example3-Tier client/server application… Unix, PB, C/C++, OracleEntera– “Early Application Server”: Operated within Distributed Computing Environment (DCE) using Remote Procedure Calls (RPC) to manage C/S communication, Security, DB access, memory management, etc.Client: PowerBuilder 5, 285 windows, 600 DWs (1300 Objects/360K lines of code), etc.Server: C & C++ (business logic), 80 server components (750 files)
42 PowerBuilder as a Data Provider – (Shell) Entera
43 PowerBuilder as a Data Provider – (Shell) EAServer
44 PowerBuilder as a Data Provider – (Shell) Moving from Entera to EAServer because…Entera Server Components often hang up and block client accessMemory leaks – server components must be recycled each nightClients sometimes endure long waiting timesObsolete product – No support since 2001Obsolete technology – Comparable to Windows 3.1 & DOS todayNo support for new UNIX librariesDevelopment tools & utility libraries on UNIX are 1996 versions, no longer supported by OSUnable to upgrade server OS (UNIX).Random load balancing
45 PowerBuilder as a Data Provider – (Shell) Power & Simplicity with Custom PB Data Abstraction Layer (DAL)PowerBuilder data access10+ years in database access experienceEAServer Connection managementIt’s the DataWindow!!!SQL statements decoupled from C++ componentsPowerBuilder dynamically created DataWindows from cached SQLNative PowerBuilder DataWindow data manipulation/accessData by rows (tab delimited array strings)Data by columns (column arrays)Stream (string—tab delimited for columns, carriage return/line feed for rows)HTML outputOpportunity for web service functionality…
46 The EAF 4.0 Features Web Based Administration Seamless Data Update and RetrievePDF and Excel ReportsXML Argument ServiceXML Messaging ServiceEnhanced Error MessagingWeb DataWindow WizardGlobal DebuggingDatabase Logging and Log FilteringQueuing ServicesMulti-Web DataWindow TransactionsExtensive Documentation
47 The EAF 4.0 Strengths EAF 4.0 bundled with PowerBuilder 10.0 Only PowerBuilder Web development framework to be endorsed by SybaseSybase has developed many case studies on EAF usersOpen SourceUtilizes existing PowerBuilder SkillsReuses PowerBuilder code and DataWindowsDataWindows become updateable Web pages in minutesRobust server side event modelPowerful yet flexible retrieve and update modelTotal control over the process
48 The EAF 4.0 Strengths (continued) 6 Years in action on large & small production systemsOver 1,000 companies and organizations using EAF WorldwideAlberta Gaming and Liquor CommissionApache CorporationHalliburton ESG HRFidelityKeyLink SolutionsQuoteCommand.comState of MontanaUnited States Department of EnergyUnited States Library of CongressUniversity of Houston Louis Stokes Alliance for Minority ParticipationUniversity of Sydney