Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News


2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
SYS-CON.TV
Top Links You Must Click On


PowerBuilder Product Review: PowerGen by E. Crane Computing
The proven workhorse for PowerBuilder build automation

We discovered PowerGen when we were looking for a command line utility for importing objects into PowerBuilder. At the time (PowerBuilder V5.0) we were struggling with a source control system whose SCC-API interface was having all kinds of trouble with PowerBuilder (as most source control systems did at the time). As a result we cobbled together our own check-in/check-out utility using PowerGen's command line operations.

In the course of that exercise we invited the vendor, E. Crane Computing, to come to our offices and make a PowerGen presentation. What we found out, of course, is that importing objects was just a sideline of PowerGen's major strength of automating the entire build process for PowerBuilder applications. We've been using PowerGen ever since and it's a staple in our environment.

What is PowerGen?
Since its first release PowerGen has been focused exclusively on automating the build process for PowerBuilder applications. First released for PowerBuilder V4, it has allowed for a consistent build methodology through all succeeding PB versions.

It has two major functions. The first is producing PB deliverables from PBLs. To do this it offers regeneration, PBD and DLL creation, and EXE creation. To support the users' complete automation requirements it also includes, copy, import, export, and optimize functions. With a separate utility VersionEdit, delivered with PowerGen, it can also modify version resource information. (VersionEdit also works with any standard Windows executable such as EXE and DLL.)

The second major function is producing PBLs from source objects. Starting with only the PB objects in their *.sr* exported source format, PowerGen can create PBLs and repopulate them with their constituent objects. First introduced for PB 5.0, this function is called Bootstrap Import (a term since appropriated by other products). It allows "source traceable builds," an essential element of a good Software Configuration Management (SCM) process. It also lets you maintain only object-level source in your Source Control system, without resorting to versioning PBLs, which was never a good practice.

A sister function of the Bootstrap Import, the Synchronize function, will update a set of PBLs with modified source. In the Synchronize function PowerGen examines each object in the PBL and compares it with the exported source. It updates the object in the PBL only if it's changed. It also adds new objects, represented in export files, but not present in the PBL, and removes objects that exist in the PBL, but have no corresponding source. The advantage of the Synchronize function over the Bootstrap Import is that the Synchronize function is usually an order of magnitude faster.

The PowerGen 'Project'
A PowerGen project consists of one or more PB applications.

New projects are created from existing PB applications defined in Targets, Workspaces, and PB.INI files. A project can also be created by choosing the application PBL and adding the libraries individually. (See Figure 1)

When presented in the PowerGen's GUI, the applications in the project are shown in the top list and the PBLs in the selected application are shown in the bottom list. Note that the paths used in the project can be specified as "relative paths." This allows for greater portability between specific build environments. PowerGen provides a lot of control for the build process. Each PBL is marked as included or excluded from the regeneration process. This has proven efficient for applications sharing PBLs, because the shared PBLs are regenerated the first time they appear and are then subsequently just referenced in the library list. This saves time in the build. Likewise PBDs or DLLs can be created selectively for each PBL, avoiding redundant operations. Each PBL can be turned into its own PBD or its objects can be included with the EXE. Another useful feature is that PowerGen will relocate the deliverables, PBDs/DLLs/EXE to a specified directory. Finally, as part of the build process PowerGen can, optionally, optimize the PBLs. One capability unique to PowerGen is that it can create a mix of PBDs and DLLs for a single application. Although DLLs (machine code) haven't been widely used, there are cases where specific functions in an application will benefit. If those functions are confined to just one or a few PBLs then PowerGen can create DLLs for just those PBLs. This functionality provides an opportunity to optimize the delivery environment without unduly burdening the build environment.

The project is saved as a separate file with a .gen extension. The file is ASCII and is fully documented with the understanding that users may want to modify or create their projects programmatically. Although the information saved in the project file has been expanded through the various releases of PowerGen, each new PowerGen version can open any previous version's projects. See Listing 1. Most of PowerGen's options are saved in the project file although a few are saved in the registry. The ones saved in the registry are judged to be more germane to the build environment than a specific project. For example, the option of whether the resulting PB applications exhibit "New Visual Styles" is saved in the Registry.

Command Line and GUI
All of PowerGen's functions can operate from the GUI or the command line. PowerGen 1.0 (for PB4) was delivered with a command line interface and it has been maintained in compatible form to the current release V6.5 (supporting PB5 through 10.5). The priority of compatibility in the command line syntax means that a PowerGen script written for PowerGen 1.0 will operate without change with PowerGen 6.5.

The command line syntax generally consists of "switches" introduced by a slash (/) with parameters separated by spaces. Command lines can be simple. For example, Pwrgn105.exe /A=Examples.gen will build all of the applications defined in the project, Examples.gen. This means it will regenerate the PBLs and create PBDs and EXEs as defined in the project. (See Figure 2)

Note that the name of the PowerGen EXE corresponds to the version of PB that you're using; Pwrgn105.exe corresponds to PB10.5.

A more complicated example is:

Pwrgn105.exe /K=Examples.gen /PBG /P=PBExamfe.pbl /RP /L=Example.log /A=Example

This command line synchronizes an individual PBL, PBExamfe.pbl in the example application defined in the project file, Examples.gen. The /PBG switch indicates that the synchronize function should use the corresponding PBG file, PBExamfe.pbg, to get information about the objects that belong in the PBL. The /RP switch specifies doing a full regeneration following synchronization and the /L parameter names the file where the output log is saved.

PowerGen signals a failure from a command line operation by writing a file containing an error code. Scripts can be branch-based in the absence or existence of the file. For example:

If Exist Power1.err Goto ERROR
(next operation)
Goto END
:ERROR
Echo Error Building Examples
:END

You can see the scripts that we use at NH-DHHS on the E. Crane Web site on their support pages, http://ecrane.com/scripts.htm.


About Al Soucy
Al Soucy is software configuration manager at the State of New Hampshire's Department of Information Technology (DoIT). In that role Al manages software configuration for dozens of PowerBuilder applications as well as applications written in Java, .NET, and COBOL (yes, COBOL).

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

We discovered PowerGen when we were looking for a command line utility for importing objects into PowerBuilder. At the time (PowerBuilder V5.0) we were struggling with a source control system whose SCC-API interface was having all kinds of trouble with PowerBuilder (as most source control systems did at the time). As a result we cobbled together our own check-in/check-out utility using PowerGen's command line operations.

We discovered PowerGen when we were looking for a command line utility for importing objects into PowerBuilder. At the time (PowerBuilder V5.0) we were struggling with a source control system whose SCC-API interface was having all kinds of trouble with PowerBuilder (as most source control systems did at the time). As a result we cobbled together our own check-in/check-out utility using PowerGen's command line operations.

We discovered PowerGen when we were looking for a command line utility for importing objects into PowerBuilder. At the time (PowerBuilder V5.0) we were struggling with a source control system whose SCC-API interface was having all kinds of trouble with PowerBuilder (as most source control systems did at the time). As a result we cobbled together our own check-in/check-out utility using PowerGen's command line operations.


Your Feedback
PBDJ News Desk wrote: We discovered PowerGen when we were looking for a command line utility for importing objects into PowerBuilder. At the time (PowerBuilder V5.0) we were struggling with a source control system whose SCC-API interface was having all kinds of trouble with PowerBuilder (as most source control systems did at the time). As a result we cobbled together our own check-in/check-out utility using PowerGen's command line operations.
PBDJ News Desk wrote: We discovered PowerGen when we were looking for a command line utility for importing objects into PowerBuilder. At the time (PowerBuilder V5.0) we were struggling with a source control system whose SCC-API interface was having all kinds of trouble with PowerBuilder (as most source control systems did at the time). As a result we cobbled together our own check-in/check-out utility using PowerGen's command line operations.
PowerBuilder News Desk wrote: We discovered PowerGen when we were looking for a command line utility for importing objects into PowerBuilder. At the time (PowerBuilder V5.0) we were struggling with a source control system whose SCC-API interface was having all kinds of trouble with PowerBuilder (as most source control systems did at the time). As a result we cobbled together our own check-in/check-out utility using PowerGen's command line operations.
Enterprise Open Source Magazine Latest Stories . . .
Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP). The...
With Cloud Expo 2012 New York (10th Cloud Expo) just four months away, what better time to start introducing you in greater detail to the distinguished individuals in our incredible Speaker Faculty for the technical and strategy sessions at the conference... We have technical and st...
AMD said late Tuesday that its chief sales officer Emilio Ghilardi had left the company and that CEO and president Rory Read is going to do his job while a replacement is sought. AMD didn’t say why Ghilardi left but it’s assumed Read wants his own people. Read is relatively new to th...
During the lifespan of M3 (Monitis Monitor Manager) there has always been something lacking – timers. M3 execution procedure was outlined in this previous article. The execution mentioned in the latter was a one-time-execution, whereas server monitoring requires periodic invocati...
Red Hat is putting its bought-in Gluster scale-out NAS storage technology, acquired in October, on the Amazon cloud. It’s styled Red Hat Virtual Storage Appliance for Amazon Web Services and other clouds are supposed to follow in short order.
A new episode of the screencast series is now available at the OpenNebula YouTube Channel. This screencast demonstrates the new easily-customizable self-service portal for cloud consumers. Its aim is to offer a simplified access to shared infrastructure for non-IT end users. The scree...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE