| By Jian Yang | Article Rating: |
|
| August 9, 2007 01:15 PM EDT | Reads: |
18,463 |
This article is based on my presentation at TechWave 2007 and is intended for the beginner or moderately experienced PowerBuilder developer. I hope to share some of the useful information I've picked up as an application developer using PowerBuilder and EAServer.
I work on Sybase's Enterprise Application Server (EAServer) team. We need to make sure that our server works with other Sybase products such as PowerBuilder. PowerBuilder 11 introduces .NET application development. EAServer 6.1 also has .NET client ORB support.
PowerBuilder & EAServer Work Great Together
EAServer's component target is built in as a PowerBuilder target (see Figure 1). Once you create a target and set up an application server profile, you can immediately deploy your PowerBuilder NVOs to run on EAServer. This is an easy way to develop and implement a robust application that uses J2EE EJB and JMS.
EAServer is a J2EE-certified application server, has industry-leading performance with fully configurable caching and load-balancing options, and provides enterprise-level performance while maintaining full data integrity. PowerBuilder NVOs are wrapped as EJBs to interact seamlessly with various kinds of clients.
PowerBuilder and EAServer have been together for a long time and many of you are already very experienced with them. For those who are not familiar with setting EAServer up, there's a PowerBuilder project wizard that can guide you through it step-by-step (see Figure 2).
EAServer 6.1 .NET Feature Design
The EAServer .NET Client ORB is used for .NET client applications, say a PowerBuilder .NET WinForm application to communicate with EAServer components through IIOP or IIOPS.
With netcc (Net Compiler) and an IDL for C# tools, C# stubs of the existing EAServer components can be generated. .NET client applications will use these C# stubs to communicate with EJB components running on EAServer through the .NET Client ORB. The .NET client applications can also use CORBA's client API to call EAServer components through the ORB.
A .NET client application that has to communicate with EAServer components won't work with existing Java or C/C++ ORBs. A .NET Client ORB should be implemented for these applications to call EAServer components through IIOP or IIOPS. PowerBuilder Win32 client applications can still call EAServer components using the existing EAServer Client ORB.
Below are the main supported features of the EAServer 6.1 .NET Client ORB:
• Simple data type marshalling
• Complex data type marshalling
• Helper/Holder data type marshalling
• Transaction management
• CORBA services
• GUI changes
• Data compression
• HTTP tunneling support
• SSL support
• HTTPS support using native https .NET APIs
• Clustering support
Using a .NET Generic Client to Call an EAServer JMS Component
The .NET client ORB enables the .NET client to send and receive messages from JMS servers. Two types of messages are supported: topic and queue.
The client can also work in offline mode when the network isn't available. In offline mode, the messages sent will be temporarily stored in local storage. Later when the client is working in online mode, the messages in local storage will be delivered to the remote server. Listing 1 shows an example of calling JMS using the JmsConnection API.
Using the PowerBuilder .NET Engine to Invoke an EAServer Web Services Component
Web Services let components be easily shared, provide cross-language compatibly, and are also used to implement an architecture according to Service Oriented Architecture (SOA) concepts. In PowerBuilder you can create a new Web Service proxy project from the project page in the New dialog box (see Figure 3).
The project page has two kinds of icons: ones that open wizards that help you set up a project and ones that open the project painter. Use the Web Service proxy wizard and you'll see something like Figure 4.
A proxy object that can be used by a PowerBuilder client to invoke a Web Service is defined in a Web Services Description Language (WSDL) file.
PowerBuilder 11 provides pbsoapclient110.pbx and pbwsclient110.pbx. pbsoapclient110 is used for the EasySOAP engine and pbwsclient110 is used for the .NET engine. You can include them using "Import PB Extension..." from the PBL.
To create a connection to EAServer, you'll write code like:
conn = create soapconnection
conn.createinstance(WSloan, 'deployloan')
In this case deployloan was created by the Web Services proxy using the .NET engine with a WSDL file of an EAServer component.
Published August 9, 2007 Reads 18,463
Copyright © 2007 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Jian Yang
Jian Yang is a staff software engineer of Sybase. He joined Sybase in September 2000 and has been working in Enterprise Application Server group ever since. From August 1997 to August 2000, he was a senior application developer with Verizon. Jian received his MS in computer science from Bradley University, and his MBA from the University of South Florida.
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Cross-Platform Mobile Website Development – a Tool Comparison
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Immersing into JavaScript Frameworks
- Workday Reportedly Prepping to Go Public
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Book Review: Sams Teach Yourself Java in 24 Hours
- OpenOffice.com Lives
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Five Years Waiting for JRE 7: Is It Justified? (Part 1)
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- OpenXava 4.3: Rapid Java Web Development
- The Next Web Architecture
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Is Write Once Run Anywhere Ever Going to Be a Reality?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?
















