In Parts I and II of this
article (PBDJ, Vol. 7,
issues 1, 2) I started
comparing Java to
PowerScript. We covered
some of the fundamentals
of the Java language -
identifiers, primitive
datatypes and wrappers -
and PowerBuilder's Any
datatype, operators, flow
control statements and
more.
In the May issue of PBDJ
(Vol. 7, issue 5) we
looked at how to
initialize a Jaguar
component using the
Jaguar component
properties, focusing on a
PowerBuilder component
using the ContextKeyword
object. In this article
we'll look at a PowerJ /
Java component and the
Jaguar::Repository. The
Jaguar::Repository
interface discussed in
this article can be used
from PowerBuilder as
well.
In this month's column I
continue the series
'Creating the Executable'
- focusing this time on
project management and
software development
cycles and how this
process should be
implemented when creating
a PowerBuilder
application.
E-mail is almost as
essential as the computer
to the modern business
world. To send messages,
however, users must
switch from their current
application to the e-mail
application. Not only is
this annoying, cumbersome
and time-consuming, it's
completely unnecessary.
As PowerBuilder
programmers we can use
the MAPI (mail
application program
interface) facilities
that are built into the
language to provide
e-mail capabilities
directly into our
application.
Welcome to Part 2 of our
exploration of EAServer's
J2EE capabilities. In
PBDJ's July issue (Vol.
7, issue 7) we
constructed an Enterprise
JavaBean (EJB) that
housed the business logic
rules for craps. This
EJB, built as a session
bean using PowerJ 3.5,
was deployed with a
simple point-and-click
exercise into Sybase's
Java 2 Platform,
Enterprise Edition (J2EE)
application server:
EAServer 3.5. We also
provided a simple test
applet to call the EJB
for preliminary testing.
Let's look first at what
PowerBuilder Web
Deployment Kit (PBWDK)
does and doesn't do. What
it doesn't do is convert
your existing
client/server
applications into Web
applications. That is, it
doesn't render your
existing client/server
applications into HTML
and JavaScript. What it
does do, however, is
allow you to take
advantage of one of the
most significant benefits
of Web applications -
ease of deployment.
In this new three-tier
world of database
servers, application
servers, Web servers, and
thin and rich client
interfaces, it's
difficult to use rapid
application development
techniques. A RAD
approach to developing
software, while
approachable in the
two-tier PowerBuilder
environment, is deadly in
complex three-tier
development scenarios.
Well, here comes Sybase
PowerDesigner 7.0 to the
rescue with new support
for UML object modeling,
Java and PowerBuilder
generation, and code and
database schema
synchronization.
One of the greatest
benefits of moving your
distributed applications
to Jaguar CTS is the
ability to use Jaguar's
connection caches to
manage database access
for all users of your
application. Connection
caches allow Jaguar
applications to share a
pool of connections. In
theory, this avoids the
'connection overhead'
associated with
establishing a connection
to the database. When an
application issues a
disconnect statement,
Jaguar doesn't actually
terminate the connection
to the database, it
merely returns the
connection to the pool
for use by the next
application that makes a
connect statement. In
theory, this can provide
a substantial performance
boost for applications
that perform many
connect/disconnect
operations.
Over the past few years
Application Service
Providers (ASPs) have
become the rage. It's
unusual to pick up a
trade magazine that
doesn't contain a major
article discussing the
benefits of ASPs. Many
believe that the ASP is a
new deployment and
business model; however,
ASPs have existed for
many years. The only
recent changes of any
significance were the
proliferation of
inexpensive wide area
networking, such as the
Internet, and
improvements in software
development tools. By
using tools that are
similar to the current
offerings from Sybase,
development of ASP
service offerings is much
easier than it was
several years ago.
As many readers know,
Sybase is one of the
first licensees of the
Java 2 Platform,
Enterprise Edition from
Sun Microsystems. J2EE
promises to become the
dominant industry model
for quickly developing,
enhancing and deploying
mission-critical
e-business
applications.While
portability is the most
well-known of Java's
attractions, the J2EE
technology suite also
provides a robust
framework for reliable,
scalable and secure
applications.
For several years we've
been creating large
applications that tend to
encompass sizable feature
sets required for
enterprise applications.
The term fat client comes
to mind....Over the years
we've seen significant
changes in application
architectures, from
client/server to n-tier
to Internet/Web
applications. But there's
a new area that's growing
in use.
This month I'll show you
how to prepare a
completed PowerBuilder
application for
deployment to users.
PowerBuilder lets you
develop and deploy
applications for many
application
architectures. This month
(and next) I'll try to
help you make decisions
about creating an
executable and packaging
an application for
deployment in a
client/server
architecture.
However boring it might
be, I believe that
infrastructure is the key
to e-business success.
More specifically, it's
having (or building) an
adaptable application and
IT infrastructure that
can adjust to new
business needs and
competitive challenges
over time, thus providing
a competitive advantage
for the foreseeable
future. Keeping up with
the competition is no
longer good enough.
Business success is now
predicated on
effectiveness, or how
quickly and successfully
companies can customize
their applications and IT
infrastructure to provide
more effective and
higher-value interactions
with customers and
prospects.
When I took a class on
data structures with C++
at Brooklyn College, one
of the topics emphasized
was recursion. At first
it didn't make much
sense, and I wondered why
we even bothered when
other techniques were
more understandable.
Shared and remote objects
- powerful features of
DPB for business
applications - can also
be used in industrial
settings. If you've been
handling serial
communications with many
types of devices - such
as gate security, pump
controllers or PLCs that
need to know what they're
doing, or you simply want
to turn your coffeemaker
on remotely - read on.
Live Editing is a feature
specific to Jaguar
components. When enabled,
it causes a component to
be deployed automatically
to Jaguar whenever that
object is saved in the
User Object Painter. When
it's not enabled, the
developer must manually
deploy the object to the
Jaguar server by
executing a Jaguar
Component Generator
Project. Live Editing
automates the step that
deploys the updated
component version to the
Jaguar server when the
component is changed in
PowerBuilder. While this
feature can relieve
developers of the extra
step of component
deployment each time a
change is made, it can
also cause some
headaches.
There seems to be a lot
of 'sound and fury'
concerning the move from
PowerBuilder to the Web.
I'm convinced, however,
that the majority of
PowerBuilder developers
don't know how to get
there. Many of those who
have taken that course
have found it more
difficult than they first
anticipated. If you're in
the latter boat, perhaps
this article won't be of
much interest to you -
you've already earned
your battle scars. For
those of you who have yet
to venture into the
minefield, perhaps I can
guide you along the way.
If you're a regular
reader of PBDJ and the
Distributed Technologies
column, then you've
likely been gathering
many tips and development
techniques concerning
EAServer (specifically
Jaguar CTS). This article
will continue along this
path by looking at how to
initialize a Jaguar
component and discussing
its functions,
particularly database
connection parameters.
When writing code it's
common to store this
information in an INI
file or, for
Windows-centric
platforms, in the
registry.
AZs the title suggests,
this article is about the
error-logging feature
within Jaguar CTS.
Although this is a simple
feature with simple
commands, I'll show you
how you can enhance it
and add a level of
control to the logging
facility. I'll also show
how to access the Jaguar
repository from within
your own components and
applications.
If you're looking for the
next frontier in
enterprise IT, look no
further than your own
hand. The combination of
mobile phones, two-way
pagers and powerful
personal data assistants
(PDA) with the fast and
cheap wireless Internet
is about to unleash a
revolution in personal
and enterprise computing.
(Yes, that's right -
another one! Are you
ready?) By the end of the
year industry leaders
expect 20 million
handheld device-based
Internet users. The
Cellular
Telecommunications
Industry Association
predicts that by 2003
there will be one billion
Internet-enabled handheld
devices in use. To put
this in perspective, at
that time PC-based
Internet users are
expected to number only
about 300 million.
John Fauss sent in this
rather cool application
of DataWindow technology
along with this comment:
'I've read your PBDJ
column for the past
three+ years and look
forward to it each month,
as I almost always learn
something new. It's time
for me to pay you back
for all that I have
learned from your
column.'
Last summer I discussed
how the evolution of
consumer portals like
Yahoo! was expanding the
industry's understanding
of what a corporate Web
site might entail (see
PBDJ, Vol. 6, issue 8).
In fact, the ultimate
result of moving a
business to the Web
seemed to naturally
create an 'enterprise
portal' for the business.
I also told you to be on
the lookout for important
announcements from Sybase
regarding this trend.
Here's the follow-up?
Since the advent of
three-tier computing,
more and more people are
telling us to 'separate
the business logic from
the presentation.' And
well they should. By
separating the business
logic from the
presentation we can
achieve a high level of
reusability. Furthermore,
this is a necessity when
they're located on
separate tiers. If you're
thinking about migrating
your PowerBuilder
applications to EAServer
in the future, you should
start separating your
logic now. But how? How
do we go about separating
our business logic from
our presentation?
In last month's column,
I led you through a very
forensic and dry
discussion on how the
update process is
performed with PFC
DataWindows. This process
is complex and a bit
daunting for the
beginning PowerBuilder
programmer. The purpose
of that column was not to
dissuade you from using
the PFC DataWindow when
writing applications that
require you to update
data, but to give you an
understanding of what's
happening behind the
scenes. As a matter of
fact, you can safely
ignore most of the
processing that was
explained last month (I
know, I know, now you
tell me!).
This article discusses a
service that will help
you bring into existence
something that's been
only a dream
functionality for many of
us: generic DataWindow
retrieval. First we'll
focus on the techniques
that led to this
solution, then use the
service to build a
powerful and flexible
architecture for
deploying reports.
In some ways, the
appearance of J2EE in the
Java world is similar to
the introduction of SQL
to the database world.
Prior to SQL, each
vendor's search engine
and approach was unique
and hierarchical - in
other words, a
proprietary system that
was inflexible and
difficult to maintain.
SQL and the relational
model offered a standard,
nonproprietary approach
to storing and organizing
data that supported the
trend toward a
client/server
architecture. Similarly,
Java and the Web have
pushed the trend toward a
distributed architecture
with components running
on an application server.
J2EE provides the
standards for this trend.
This article will explain
the Jaguar component
life-cycle. Understanding
the way Jaguar handles
components is essential
before one can begin
designing and developing
a solution with EAServer.
The component life-cycle
determines when a
component is available
and what information (or
state) it will have.
Portions of this article
appeared in the book
Jaguar Development with
PowerBuilder 7, published
by Manning Publications.
Many reporting
applications use stored
procedures that sometimes
take a while to run. Even
with fast database
servers, response time
can be measured in
minutes after your best
efforts at tuning. Users
who are used to seeing
progress bars on their
Internet downloads expect
a similar visual clue
from their database
applications. How do you
monitor and display the
progress of a
long-running stored
procedure?
I have to admit I wasn't
looking forward to
writing this month's
column. I've received
many e-mails from readers
who wanted me to document
the entire PFC save
process as it applies to
DataWindows. I don't know
if the requests were
sincere or more of a
tongue-in-cheek joke at
my expense. After all,
any programmer who has
looked into this process
has been boggled by its
complexity as well as the
amount of code involved.
I challenge even the best
PFC programmer to explain
this process, step by
step, from memory.
In my January article in
PBDJ (Vol. 7, issue 1) I
covered the basics of the
Web DataWindow and we
ended the article with
the home page. We'll now
move on to the employee
page.
In this article we'll
examine how to handle a
Jaguar CORBA_TRANSACTION_
ROLLEDBACK exception that
is thrown when a Jaguar
transaction is aborted.
We'll use the BTFBank
sample application
developed in an article I
wrote for PBDJ in October
1999 (Vol. 6, issue10).
This example is written
in PowerBuilder, but the
technique covered here is
relevant for any Jaguar
client (Java, Web, etc.)
or Jaguar component
that's involved in a
transaction.
Okay, so you've used
showplan, statistics i/o
and statistics time to
identify how your query
has been optimized and
what it's costing you.
That's a good starting
point. Sometimes all the
answers are right there
in the query plan or
resource counts. They'll
point out a table scan,
the fact that your query
is using a different
index than you expected
or that most of your I/O
relates to one particular
table or SQL statement.
You know you have an
index on the search
columns, so why did it
choose a tablescan?
You've done your homework
and identified that one
index is more selective
than another, yet the
optimizer decided to
access the table with the
less selective index. You
suspect that one join
order is better than
another, based on your
knowledge of the data and
relationships, but it
didn't choose that join
order. Unfortunately,
these tools won't help
you in these situations
because they fail to
answer the question
'Why?' They only answer
the questions 'How?' and
'How much?'
If you want your
DataWindows to look
consistent, you have two
basic choices. The first
one - always code the
DataWindow expressions
the same in all your
DataWindows. However,
there are drawbacks to
this: you have to make
sure your entire
development team is aware
of the standards, and you
have to have methods to
ensure their use and
document the standards
for future developers. In
spite of such
precautions, it's likely
your DataWindows will
stray from the standards
you've set up.
Blue Cross and Blue
Shield of Rhode Island
(BCBSRI) is one customer
who's leveraged
PowerBuilder and EAServer
to develop an intranet
solution. This
application has provided
BCBSRI with tremendous
cost savings and enhanced
performance.
In Part 1 of this article
(PBDJ, Vol. 7, issue 1) I
compared Java to
PowerScript. We covered
some of the fundamentals
of Java language -
identifiers, primitive
data types and primitive
data type wrappers - and
PowerBuilder's any data
type, and we began to
discuss relational
operators, so let's
continue.
In this month's column
I'll show you how to use
the PFC multitable update
service. This service, as
you might expect, allows
the DataWindow to update
more than one table.
Multitable update, one of
the least used PFC
services, has been around
since version 5.0. I'll
demonstrate how you can
use it, how it works and
pitfalls you may find
along the way.
Imagine creating a
PowerBuilder application
that not only speaks to
the user, but also
understands when the user
speaks to it. Speech
recognition software has
been around for a while,
but so far it's found
only limited to success
in real-world use.
However, some of the
latest advances in speech
recognition make this
form of input a viable
option for business
applications. In this
article I'll describe how
to use Microsoft Agent
ActiveX technology to add
speech and speech
recognition to PB
applications. About
Microsoft Agent Version
2.0
As developers, we often
focus on code and give
less attention to the
database than we should.
Developers on large
development teams, who
can usually rely on the
database programmers
and/or DBA to write and
optimize their SQL, tend
to shy away from anything
database related. On
smaller teams the
developers are
responsible for the
schema and DML, but
typically don't
understand the nuances
and complexities of the
specific database they're
working with. A very
important yet undervalued
feature in PowerBuilder's
database painter,
'Explain SQL,' takes
advantage of the database
engine's query analyzer
(Showplan report) to show
pathing and performance
information about a SQL
statement. Every
developer should know how
it works and how to use
it. In this article I'll
describe the report and
show you how to use it to
optimize your SQL.
A lot of hoopla has
surrounded the Web
DataWindow, and it's
actually well deserved.
Not so long ago
PowerBuilder critics
claimed that PB would
never make it to the Web
because it was designed
mainly for building
client/server
applications. I had my
own doubts back then, but
with the Web DataWindow
much of the power of
PowerBuilder is now
available on the Web.
This allows PB developers
to build Web sites for
dynamic publishing and
e-commerce transactions
with relative ease.
With the industry
buzzwords being Java,
Java, and more Java, I
wrote this article to
provide insight into how
you can leverage your
knowledge of PowerScript
and PowerBuilder to
quickly learn and build
Java programs. I'm going
to assume that you're
familiar with
PowerBuilder and the OOP
religion. To exploit all
of Java's features, you
must design and build
applications in
accordance with OOP
techniques. Where
appropriate, this article
presents a syntactical
comparison of the Java
language and PowerScript.
From Application
Virtualization to Xen, a
round-up of the
virtualization themes &
topics being discussed in
NYC June 23-24, 2008 by
the world-class speaker
faculty at the 3rd
International
Virtualization Conference
& Expo being held by
SYS-CON Events in The
Roosevelt Hotel, in
midtown
Last week I posted a
screen shot of the new 3D
Rendering capabilities
being added to some of
the 3D graphs in
PowerBuilder 11.5. It was
met with mixed reviews on
the PowerBuilder Futures
newsgroup
(forums.sybase.com) so I
went back to the drawing
board to see what I could
come up with.
BluePhoenix announced
that it has expanded its
collaboration with
Microsoft on legacy
modernization projects.
The collaboration
provides customers moving
their applications or
databases to .NET-based
environments the best in
both modernization
services and technical
support. BluePhoeni
Sybase announced that
AJAX development
capabilities and further
Microsoft .NET
enhancements have been
added to the latest
version of Sybase
PowerBuilder 11, the
premier 4GL rapid
application development
(RAD) tool. PowerBuilder
11.2 represents another
milestone in the
PowerBuilder road
Sybase has released the
production version of its
flagship .NET development
tool - PowerBuilder
version 11.2. This latest
release of its premier
IDE for RAD includes not
only standard fixes but
also a good list of new
features. Here is the
'Coles Notes' version of
these new features.
In June of 2007, Sybase
released PowerBuilder 11.
PowerBuilder developers
can now deploy
PowerBuilder components
as .NET Assemblies or as
.NET Web Services. A
PowerBuilder developer
can now create these .NET
resources so that those
who develop .NET
solutions can benefit
from PowerBuild
FEATURED WHITE PAPERS
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
I began my career at RCA
Aerospace and Defense in
1983 and worked at MITRE
Corp., BAE Systems, and
the State of NH. I worked
in the defense field
performing software
In keeping with the
longstanding SYS-CON
tradition of being at the
very forefront of
software development with
all its online and
offline resources,
SYS-CON Media &
Last week, our
development team was
supposed to launch a new
version of our
application. As usual,
right before finishing
the application we
discover that one or two