Securing SAP PowerBuilder 12.5 Native Client ➙ WCF Service Interfaces: Bridging the Gap

    By: Mr. Yakov Werde on Jul 31, 2014

    The contents of this article are the result of a consultation with an ISV migrating business logic from SAP EAServer components to C# .NET WCF web services hosted in IIS.The client, who has a large SAP PowerBuilder rich client application, wants to migrate their SAP PowerBuilder client from making secure CORBA calls into SAP EAServer to making secure web service calls into IIS.

    With .NET 4.0, Microsoft modernized, revised and unified .NET communication APIs into a single API known as WCF; Windows Communication Foundation. WCF, which implements both industry standard and MS specific protocols, is a major leap forward. Going forward all Microsoft communication enhancements will be predicated on WCF technology. Microsoft wisely retrofitted WCF with a degree of backward compatibility.

    Continuing along the path of its predecessors, version SAP PowerBuilder 12.5, released in 2011, sits atop classes and tools in the .NET framework and SDK which it uses to deploy PowerScript logic as .NET 2.0 Web Services or .NET 2.0 Assemblies and entire applications as .NET 2.0 Web Forms. SAP PowerBuilder allows PowerScript clients to access remote logic using “basic” web service protocols as they were defined in the .NET 2.0 specification. Although SAP PowerBuilder 12.5 Native is compatible with .NET 4.0, and SAP PowerBuilder, .NET offers full WCF support, SAP did not modernize SAP PB Native to support current .NET API standards. In what is currently a .NET 4.5 universe, SAP PowerBuilder still only supports .NET 2.0 style Web Services.

    Technically speaking Web Service support is present in three areas; (1) the DataWindow Engine, (2) the PowerScript .NET Web Service Client Proxy, and (3) the .NET Web Service deployment target. Germaine to our client side discussion is that although the DataWindow Engine and the PowerScript API support the same specification, each has its own interface to the .NET client proxy generator, API and implementation that is similar to but distinct from those PowerScript offers. Application shops are no longer interested in writing Web Services using legacy .NET 2.0 technology.

    SAP PB relies on Microsoft tools to generate an interface assembly. Both the new Web Service DataWindow Wizard and the Web Service Proxy Painter front ends make calls to Microsoft tools. This assembly, whose code is generated by the .NET SDK tool SVCUtil and which is compiled by the .NET C# compiler, implements the actual web service call. SAP PowerBuilder internally manages assembly calls and marshals and converts data types via a native PowerScript interface.

    SAP PowerBuilder support for WCF is a “mixed bag”. SAP PowerBuilder 12.5 .NET offers full client side PowerScript API WCF proxy support. However, the DataWindow Web Service engine in the .NET platform is NOT WCF compliant. It is the same DataWindow WS 2.0 functionality that is present in the Native platform. Additionally, engineering did not modernize any of SAP PB 12.5’s Native .NET abilities. Everything is still .NET 2.0 compatible.

    Organizations currently seeking to partition their 12.5 Native application logic (either as C# rewrite or SAP PB.NET deploy) into services deployed using current WCF standards must include .NET 2.0 interfaces for SAP PB Native interoperability.

    For the balance of this article, I’ll focus on securing remote service calls from SAP PowerBuilder Native to WCF services. I’ll assume that you are already familiar with WCF basics including the markup in the web.config file, generating and coding Web Service Proxy objects and working with Web Service DataWindows.

    Basic security over HTTP comes in several forms. Encryption algorithms


    Login to read the article. Not a member? Create a free account!

    Released: July 31, 2014, 11:15 pm | Updated: September 8, 2014, 12:35 pm
    Keywords: PowerBuilder Article | Technical Journal | PowerBuilder | Yakov Werde




    Copyright © 2014 ISUG-TECH. All Rights Reserved
    All material, files, logos and trademarks within this site are copyright their respective organizations

    Terms of Service - Privacy Policy - Contact the Help Desk