Welcome!

PowerBuilder Authors: Yeshim Deniz, Chris Pollach, Jayaram Krishnaswamy, Kevin Benedict, Avi Rosenthal

Related Topics: PowerBuilder

PowerBuilder: Article

PowerBuilder and EAServer: Uniting the .NET and J2EE Communities

Continuing their legacy of synergy and openness

In PowerBuilder 11.2, .NET meets J2EE head-on with the capability to deploy .NET Windows Forms and Web Forms applications (as well as assemblies and Web Services) that access Enterprise JavaBeans (EJBs) in Sybase’s own EAServer. As you’ll see over the course of this article, integrating these “competing” technologies is quite straightforward and leverages mechanisms that have been available since PowerBuilder 7.

The enabling technology for the .NET to J2EE functionality in PowerBuilder is the new client support introduced in EAServer 6.1. The EAServer .NET runtime includes three fully managed code assemblies:

  • com.sybase.iiop.net.dll: supporting the Internet Inter-ORB Protocol (IIOP), data marshalling, and secure sockets layer (SSL)
  • com.sybase.ejb.net.dll: supporting invocation of EJBs as well as PowerBuilder components (NVOs)
  • com.sybase.jms.net.dll: supporting interaction with the Java Message Service (JMS)

The first two these assemblies are the .NET analog of the C++ client ORB (implemented by libjcc.dll) and so provide the underlying implementation for the following PowerBuilder classes:

  • Connection
  • JaguarORB
  • CORBAObject
  • CORBACurrent

These assemblies are automatically installed by PowerBuilder 11.2 in the Global Assembly Cache (GAC) since they need to be available for deploying .NET targets as well as at runtime. To aid in distributing end-user applications that access EAServer, the PowerBuilder Runtime Packager automatically installs these two assemblies in the GAC as well. If you forego use of the Runtime Packager, you can use the .NET gacutil utility to explicitly add the assemblies. You would also use gacutil to update the runtime environment with any patches issued for EAServer.

As for the last assembly, com.sybase.jms.net.dll, PowerBuilder does not offer direct access to the Java Message Service, so the file is not automatically installed; however, methods in that assembly can be accessed in conditional compilation blocks in your PowerScript code, just like other third-party and .NET Framework classes. Alternatively, you can access the message service functionality in your applications via EAServer’s CtsComponents::MessageService API provided for CORBA clients such as PowerBuilder.

The techniques to access components in EAServer 6 from classic (Win32) PowerBuilder applications do not differ from previous versions of the server; however, the .NET client capability in EAServer 6.1, which is used by PowerBuilder .NET targets, does necessitate changes in application implementation and deployment. For the most part, though, you’ll find that your job as a developer is actually made easier! Let’s take a further look now at the changes to be aware of when using the Connection object, the JaguarORB object, and secure connections in .NET applications developed with PowerBuilder. A complete application demonstrating the various PowerBuilder-to-EAServer connectivity options is available in the “PB & EAServer” section and may help clarify the concepts discussed here.

More Stories By Jim O'Neil

Jim is a Technology Evangelist for Microsoft who covers the Northeast District, namely, New England and upstate New York. He is focused on engaging with the development community in the area through user groups, code camps, BarCamps, Microsoft-sponsored events, etc., and just in general serve as ambassador for Microsoft. Since 2009, Jim has been focusing on software development scenarios using cloud computing and Windows Azure. You can follow Jim on Twitter at @jimoneil

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.