| By Jim O'Neil | Article Rating: |
|
| July 15, 2008 04:30 PM EDT | Reads: |
5,407 |
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.
Published July 15, 2008 Reads 5,407
Copyright © 2008 Ulitzer, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Jim O'Neil
Jim O'Neil is a Microsoft Developer Evangelist for the Northeast U.S. where he concentrates on the developer communities using Visual Studio .NET and the various .NET technologies. Prior to joining Microsoft, he was a Principal Systems Consultant and Principal Technical Support Engineer for Sybase, Inc., where he specialized in the PowerBuilder family of tools, EAServer, and Appeon for PowerBuilder.
- IBM & Informix
- PowerBuilder & Informix
- Introduction To PBNI
- EAServer Problem Analysis & Troubleshooting
- EAServer Problem Analysis & Troubleshooting
- .NET Features Analyzer
- Open Database Connectivity
- PowerBuilder and EAServer: Uniting the .NET and J2EE Communities
- The Debut of DataWindow.Net
- The Debut of DataWindow.NET
- Introduction To PBNI




















Ulitzer content is offered under Creative Commons "Attribution Non-Commercial No Derivatives" License.
For any reuse or distribution, you must make clear to others the license terms of this work.
The best way to do this is with a link to this web page.
Any of the above conditions can be waived if you get written permission from Ulitzer, Inc., the copyright holder.
Nothing in this license impairs or restricts the author's moral rights.