+ All Categories
Home > Documents > International Spectrum Magazine - Mar/Apr 2008

International Spectrum Magazine - Mar/Apr 2008

Date post: 29-Nov-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
48
INSIDE: REPORTING & BUSINESS INTELLIGENCE: SIERRA BRAVO $7.00 U.S. INTERNATIONAL THE MULTIVALUE TECHNOLOGY MAGAZINE I MAR/APR 2008 Spectrum Spectrum Plus! Reality File Triggers Plus! Reality File Triggers ® Keep Those Files From Prying Eyes: Keep Those Files From Prying Eyes: Protecting Your Files With GPG Protecting Your Files With GPG
Transcript

INSIDE: REPORTING & BUSINESS INTELLIGENCE: SIERRA BRAVO

$7.00 U .S .

I N T E R N A T I O N A L

THE MULTIVALUE TECHNOLOGY MAGAZINE I MAR/APR 2008

SpectrumSpectrum Plus!

Reality File Triggers

Plus!

Reality File Triggers®

Keep Those Files From Prying Eyes:Keep Those Files From Prying Eyes:

Protecting Your Files With

GPGProtecting

Your Files With GPG

Embed the ability to scale.

For software developers seeking competitive advantages, InterSystems Caché® makesapplications more valuable by increasing their speed and scalability, while decreasinghardware and administration requirements. Embed our post-relational database in yourapplications, and enjoy the combined benefits of high-performance object and relationaltechnologies. Thanks to its innovative architecture, Caché spares Java and .NET pro-grammers a lot of tedious work by eliminating the need for object-relational mapping.Caché is available for Unix, Linux, Windows, Mac OS X, and OpenVMS – and it supports MultiValue development. Caché is deployed onmore than 100,000 systems worldwide, ranging from two to over50,000 users. Embed our innovations, enrich your applications.

Download a free, fully functional, no-time-limit copy of Caché, or request it on CD, at InterSystems.com/Cache26WW

© 2008 InterSystems Corporation. All rights reserved. InterSystems Caché is a registered trademark of InterSystems Corporation. 2-08 EmbedCache26 Sp

MakeApplicationsMoreValuable

D E P A R T M E N T S

From the Inside page 4

Newsmakers page 18

New Products page 20

Webonomics page 40

Clif Notes page 47

International Spectrum and MultiValue

are a registered trademark of International

Spectrum, Inc. All other registered

trademarks and trademarks are the property

of the respective trademark holders.

I N T E R N A T I O N A LSpectrumSpectrum

6GPG is a well-known and widely

accepted public-key encryption

program with a number of options.

This article brings you up to speed in

using GPG to encrypt and decrypt

files. BY JEFF BUTERA, PH.D.

F E AT U R E S I M a r c h / A p r i l 2 0 0 8

®

THE MULT IVALUE TECHNOLOGY MAGAZINE

12IT PLANNING: WHY PROGRAMMERS SHOULD PLAN Planning. It’s not just for managers.

Planning is an important part of a programmer’s career, also. BY CHARLES BAROUCH

14REPORTING AND BUSINESS INTELLIGENCE TOOLS: SIERRA BRAVO Next in

this series, we talked with the folks at Sierra Bravo about two of their products — Bravo

Reports and Bravo Dashboard. BY CHARLES BAROUCH

26IBM ADO.NET PROVIDER: WHAT’S IN IT FOR U2? The standard method of data

access for the .NET platform is ADO.NET Provider. Now, the IBM ADO.NET includes support

for IBM’s UniVerse and UniData. BY BRIAN LEACH

30MULTIVALUE PARTICIPATION IN BUSINESS INTELLIGENCE Learn about some

key considerations for a successful Business Intelligence project and a few tools that can

help your implementation. BY ROBERT HOUBEN, FUSIONWARE

34REALITY TRIGGERS While previous issues have discussed file triggers, each

platform implements them differently. Find out how to use file triggers in Northgate's

Reality product. BY CANDI HART

36SWAPPING YOUR OI SYSTEM’S DATABASE TO U2 OpenInsight can now use IBM’s

UniVerse and UniData as the back end database. But how do you set that up, and when

would you want to? BY MIKE RUANE, REVELATION SOFTWARE

42USING UNIVERSE INDEXES: PART 2 This second part in this series about using indexes

on the IBM UniVerse platform discusses how indexes are implemented, how to get information

about the distribution of keys, and avoiding a common trap. BY CLIFTON OLIVER, CCP

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 3

Encrypting Files With GPG: The BasicsYou Should Know

4 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

tm

MO/EMentor Pro

Native PICKPCVerse PICK OA

Power95

R91

RPL

MV.ENTERPRISE

MV•BASE

N A T H A N R E C T O RPresident

C L I F T O N O L I V E RManaging Editor

S H A N N O N S T O L T ZContent Editor

Learn more about the MultiValue Symbol and see what MulitValue Technologies and MultiValue

Communities exist to help you support and manage your business and systems.To find out more visit

http://www.intl-spectrum.com

M I S S I O N S TAT E M E N T International Spectrum magazine’seditorial mission is to be the premier independent source of usefulinformation for users, developers, and resellers of MultiValue databasemanagement systems, open systems business database solutions,and related hardware, software, and peripherals. Published bimonth-ly, International Spectrum provides comprehensive coverage of theproducts, companies, and trends that shape the MultiValue market-place as well as the computer industry at large — helping its readersget the most out of their business computer systems.

International Spectrum is published six (6) times per year at the sub-scription price of $40.00 U.S. in the U.S.A.; $45.00 U.S. in Canadaand Mexico; $50.00 U.S. for other countries. Single copy rates are$7.00 U.S. in the U.S.A. and Canada, and $9.00 U.S. in all other coun-tries. International Spectrum is published by International Specturm, Inc.,80 Garden Center, Suite 6, Broomfield, CO 80020; Tel: 720/259-1356;Fax: 603/250-0664 E-Mail: [email protected]. Copyright2007 International Spectrum, Inc. All rights reserved. Reproduction inwhole or in part, without written permission, is prohibited.

PRINTED IN USA • ART AND DESIGN: CP Design; 619-246-6878;San Diego, CA

NEWS RELEASES/UNSOLICITED ARTICLESInternational Spectrum is eager to print your submissions of up-to- the-minute news and feature stories complementary to the MultiValue mar-ketplace. Black and white or color photographs and diagrams arewelcome. Although there is no guarantee a submitted article will bepublished, every article will be considered. Please send your pressreleases, articles, and queries to: [email protected]. Interna-tional Spectrum retains all reprint rights.

International Spectrum is a registered trademark and MultiValue is atrademark of International Spectrum, Inc. All other registered trademarksand trademarks are the property of the respective trademark holders.

I N T E R N A T I O N A L

MARCH/APRIL 2008

SpectrumSpectrum

AP/PROREALITY

MULTIVerse

Over the last 2 years, I’ve made a lotof changes to International Spec-trum, both in the magazine and onthe web site. Now, with Internation-al Spectrum 2008 upon us, there arequite a few changes to the confer-ence as well.

Some of you have seen it in the mar-keting materials for the Conference.Some of you are actually experienc-ing it, being at the conference at thismoment. Many of the changes I’vemade to the conference and maga-zine has been in direct response tocomments and suggestions I’vereceived from people who read themagazine or attend the conference.

But there are many more of you thatI have not heard from. Like witheverything else in the world, if youonly hear from a small group of peo-ple, then your view points canbecome too narrow or broadlyfocused and not provide the infor-mation needed by the large whole.

This is one of the reasons why Clif andI are always screaming for feedback.

Clif has covered many eye-openingtopics such as:“You Pay Peanuts,YouGet Monkeys” and “Are You a Multi-Value Couch Potato?” While thehumor factor of “Clif Notes” isalways entertaining, Clif has pushedsome people into thinking aboutthings they are not used to thinkingabout. Whenever you introduce anidea, there are always people whoare likely to disagree or who expandupon your thoughts.

These articles should have generatedswarms of e-mail, but nada.

While Clif has talked about manythings of interest, I know I haveintroduced some ideas and conceptsin “From the Inside” that I figuredwould really tweak peoples noses:“Business Application Paradigm”,“Perception: Your hourly fee beingtoo low”,“What is the most Valuableasset in your company?”

All these ideas should have created astorm of e-mails disagreeing withsome of my ideas and suggestions,but again, nada.

Now with the Conference here, andin motion for those of you readingthis between “Quickstart to PHP”and “Simply Implementing .NET”, or“RFID 101” and “GUI and Event-Dri-ven Programming”, I have peopledoing surveys of attendees to findout what they most want and needout of the conference.

Now comes the hard part—fromthose of you that I am unable to talkto directly, what is the best way tosolicit feedback on ideas, concepts,and new services?

Webinars are a service that hasexpanded over the years, and Iwould like to ask you, the MultiValueCommunity, what are you in mostneed of? What kind of training pro-grams are needed? What topicswould you like covered in webinars?

This is your marketplace, your busi-ness, and your livelihood. I’d like tomake sure I continue supporting andenhancing what you need to be suc-cessful and Work Smart, not Harder.

B Y N A T H A N R E C T O R

InsideFrom the

-NATHAN RECTORPresident, International Spectrum [email protected]

I’m listening, but am Ihearing from YOU?

FEELING A BIT TRAPPEDWITH YOUR CHARACTER-BASED INTERFACE?OpenInsight can help unlock yourapplication’s true potential.

If you have an in-house applicationor product that you sell, and it’s character based, you’re probablyhearing comments about how old itis. And let’s face it, in today’s world, an80x24 character-based screen looks antiquated, no matter how manycolors are used.

OpenInsight, from RevelationSoftware, offers many ways to helpyou transform your application into

a more user-friendly, sellable system,whether you sell to customers orto management. Our Character-to-OpenInsight (CTO) and OpenInsightfor U2 are just two ways we can helpyou out.

We won’t tell you that going from character to graphical is easy, but wemake it as easy as it can be. More andmore companies are choosing thisroute; what do they know that youdon’t?

Email us at [email protected], orcall us at 800-262-4747 for a freeon-line demo. We promise you’ll beimpressed!

cations. However, inevitably one endsup working on a project where a third-party needs data in a file outside yourDBMS. You work diligently and com-plete the data extraction requirementsfor the project only to find a short timeafter going live you now have a slew offiles at the operating system level thatcontain data which you would ratherhave protected.

I work in higher education and whilewe strive to encrypt all data transfers,

often we have to work with vendors orother colleges who want data as flat(ASCII) files.The format is almost irrele-vant with some wanting comma or tabdelimited while others want XML. Thedata you need to protect is in plain text.We're also very alarmed by the numberof people who ask us to "just e-mail thedata." E-mail is surely one of the mostinsecure mediums available today.Whilemany e-mail clients do have encryptiontools or plug ins available, they're oftennot as platform- or application-inde-pendent as vendors might lead you tobelieve.

Some myths about addressing this typeof problem include:

“We secure access to our server andnobody gets to the operating sys-tem prompt, so the files are secure.”

Continues on page 8

6 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

Where these points of view divergemay be over precisely what type of datais deemed "sensitive." Again, a consen-sus of people might lump date of birthand tax identification numbers in thiscategory, but a host of other data ishighly sensitive, depending on the busi-ness and application in question.

Most all DBMS offer encryption fordatabase files and encrypted protocolsto ensure the security of data both atrest as well as en route between appli-

With several well-publicized incidents in both the public and pri-

vate sectors over the past few years, just about everyone today

understands the need for protection of sensitive data — from

software developers and DBAs to other far less computer savvy

individuals such as retirees counting on that nest egg.

The Basics You Should KnowThe Basics You Should Know

Encrypting Files with

GPGEncrypting Files with

GPGB Y J E F F B U T E R A , P H . D .

1.

8 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

In this case, you're only one hack,flaw, or other security threat awayfrom a really bad day.Don’t presumeserver security is equivalent to datasecurity.

“We’ll ZIP the files with a pass-word.” ZIP password protection islightweight at best. Just perform aweb search for “zip password hack”and see how many people want tohelp you.

“We’ll just delete the files periodi-cally.”Even if you periodically deletefiles, if you have just one file when asecurity threat occurs, you’re in thesame situation. Likewise, in manycircumstances you might not wantto delete the file immediately aftertransfer for both auditing purposesas well as troubleshooting technicalproblems that might not arise untilhours or days later.

Thus the ability to encrypt files in arobust, secure, and reversible manner isan essential tool all IT professionalsshould have in their arsenal.

The ToolsPretty Good Privacy (PGP) is softwarethat provides encryption and authenti-cation, originally created by Philip Zim-mermann in 1991.The irony in the nameis that PGP's security was intended to befar better than “pretty good.” Zimmer-mann became convinced that an openstandard for PGP encryption was impor-tant due to patent issues PGP, Inc wasfacing and so proposed to the InternetEngineering Task Force (IETF) that therebe a standard called OpenPGP. (See TheLinks to learn more.)

The Free Software Foundation devel-oped its own OpenPGP-compliant pro-gram called GNU Privacy Guard (abbre-viated GnuPG or GPG). GnuPG is freelyavailable together with all source codeunder the GNU General Public License(GPL).There are also several GUI interfacesfor GPG that are maintained separately.

gpg: directory `/home/jvb/.gnupg' createdgpg: new configuration file `/home/jvb/.gnupg/gpg.conf'createdgpg: WARNING: options in `/home/jvb/.gnupg/gpg.conf' arenot yet activegpg: keyring `/home/jvb/.gnupg/secring.gpg' createdgpg: keyring `/home/jvb/.gnupg/pubring.gpg' createdPlease select what kind of key you want:(1) DSA and Elgamal (default)(2) DSA (sign only)(5) RSA (sign only)

Your selection?

F I G U R E 1 - % gpg --gen-key command sample output

DSA keypair will have 1024 bits.ELG-E keys may be between 1024 and 4096 bits long.What keysize do you want? (2048)

F I G U R E 2 - Setting the key size

Please specify how long the key should be valid.0 = key does not expire

<n> = key expires in n days<n>w = key expires in n weeks<n>m = key expires in n months<n>y = key expires in n years

Key is valid for? (0)

F I G U R E 3 - Set Key Expiration

You need a user ID to identify your key; the softwareconstructs the user ID from the Real Name, Comment andEmail Address in this form:

"Heinrich Heine (Der Dichter) <[email protected]>"

F I G U R E 4 - Prompt for entering identification for the key

Real name: Jeffrey ButeraComment: Administrative SystemsEmail: [email protected]

F I G U R E 5 - Example of entering information

We need to generate a lot of random bytes. It is a goodidea to perform some other action (type on the keyboard,move the mouse, utilize the disks) during the prime generation; this gives the random number generator abetter chance to gain enough entropy.

F I G U R E 6 - Prompt for action during prime generation

Encrypting Files With GPGContinued from page 6

2.

3.

Precisely what is GnuPG? From theirown web site: "GnuPG stands for GNUPrivacy Guard and is GNU’s tool forsecure communication and data stor-age. It can be used to encrypt data andto create digital signatures. It includesan advanced key management facilityand is compliant with the proposedOpenPGP Internet standard asdescribed in RFC 2440."

There are other OpenPGP implementa-tions as well as other competingencryption methods available.With theavailability of GnuPG on many plat-forms including virtually every flavor ofLinux and Unix,Windows, and MacOS,it has become the de facto standard.

In layperson's terms, I will show how itis easy to set up the encryption anddecryption of files to ensure the pro-tection of your data (but I will not bediscussing the use of digital signatures).Likewise, it is also a straightforwardprocess to exchange encrypted fileswith a third-party where they alonehave the ability to decrypt them.While

1. Building KeysYou only need to build keys once – thefirst time you use GnuPG.You'll need tolog into your server as the user who willbe encrypting and decrypting files. Tobuild keys you issue the command

% gpg --gen-key

which will result in output similar tofigure 1.

Under most circumstances the defaultof (1) should suffice. It will then ask youthe size of the key to create (fig. 2).Thelarger the key size, the longer it wouldtake to crack an encrypted file, but usu-ally the default value is acceptable.

You will then be asked how long thekey should be valid (fig. 3). If youchoose anything other than 0 (no expi-ration), you will need to exchange keyswith recipients on a regular basis.

After entering your choice, you will beasked to enter identification for yourkey (fig. 4).

I discuss the encryption of ASCII files,GnuPG can be used to encrypt any file,including binary data.Also, all examplesbelow are presented from a Unix/Linuxperspective, but work in a similar man-ner on Windows (although some pathnames might be different).

Getting the SoftwareThis article does not cover installation,

but you can obtain GnuPG from

http://www.gnupg.org. With both

source code and binaries packages

available for many operating systems,

any reasonably experienced system

administrator should be able to install

the GnuPG software in an hour or less.

SetupYour keyring contains GnuPG keys you

have created and/or received in

exchange with other individuals. First,

we will illustrate how to build a key for

the first time, exchange with others,

and then use the key to encrypt/

decrypt files. Continues on page 10

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 9

gpg: /home/jvb/.gnupg/trustdb.gpg: trustdb createdgpg: key 604B7CE2 marked as ultimately trustedpublic and secret key created and signed.

gpg: checking the trustdbgpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust modelgpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1upub 1024D/604B7CE2 2008-01-24

Key fingerprint = 87CC F271 5DD3 4868 314F E8AF 1147 5B70 604B 7CE2uid Jeff Butera (Administrative Systems) <[email protected]>sub 2048g/6596A86C 2008-01-24

F I G U R E 7

% gpg --list-keyspub 1024D/604B7CE2 2008-01-24uid Jeff Butera (Administrative Systems) <[email protected]>sub 2048g/6596A86C 2008-01-24

F I G U R E 8 – List key example

% gpg --export -a --armor 604B7CE2 > my_key.pub.gpg

F I G U R E 9 – Command to export key as an ASCII file

following the slash. In my example (fig.8), it would be "604B7CE2". Now I canexport my key as an ASCII file for easyexchange with another individual byperforming the command in figure 9.

The file "my_key.pub.gpg" will contain

something like figure 10.

At this point, you simply need to sendyour public key (the file “my_key.pub.gpg”) to desired recipients. Since this ispublic information, you may transmitthis as an attachment to regular (unen-crypted) e-mail.

3. Importing Someone’s Public KeyPresuming you've received a public keyfrom another individual, you would taketheir key and import using the command

% gpg --import dans_key.pub.gpg

presuming the file "dans_key.pub.gpg"was sent to you by Dan, someone youtrust.When you import a key, you'll seethe results of a successful import (fig.11).

I entered my information (fig. 5).

Note that the e-mail address here isimportant to identify the key and will berequired when you attempt to encryptor decrypt a file. You will then beprompted to create a passphrase to pro-tect your key. Once you enter thepassphrase twice for confirmation,you'llsee the message shown in figure 6.

It is normal that the process of generat-ing the keys may take 30 seconds orlonger. Once completed, you should seea message similar to that in figure 7.

2. Exporting Your Public KeyOnce you have keys constructed, you'llneed to exchange your public key withany desired recipients. First, list yourkeys with the information in figure 8.

To export your public key,you need thearmor ID: the string on the "pub" line

Trusting the Imported KeysOnce you import an individual's key, youprobably want to go ahead and "trust" it.If you don't trust the key,gpg will promptyou with a warning every time youattempt to encrypt or decrypt a file. Pre-suming you really do trust that the keyyou received came from the person whoclaimed to have sent it to you,you wouldperform the operation in figure 12.

At the "Command>" prompt enter trustand hit enter (fig. 13).

You may choose the desired level oftrust. If you choose 5, you’ll see

Do you really want to set thiskey to ultimate trust? (y/N)

I entered Y and hit enter. Then I enter‘quit’ to exit gpg.

Regular UsageOnce you’ve built and exchanged keys,you’re ready to begin encrypting anddecrypting files anytime you wish.

10 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

-----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v1.4.7 (GNU/Linux)

mQGiBEeY2cYRBADZdbq8FTEKbSahh+n8XKl/ZqsA8OS3fcbibflRO40DJf5NolI33L+iQzydI9xHFKNLvT3XxnQE6d7k7VDbS8jw8YZndALUxhHF4giVnmVQgAX4fLHKpxmiJZ9lKVtZ63HoamJXH6uxgG1Zr97J+8kNzuXMPQYMFlRgyIhpN+TwKwCgrV9Y...2Wt6tjGISQQYEQIACQUCR5jZxgIbDAAKCRARR1twYEt84iTiAKCh0grMoRgdzyuo6q1umKwMhT9R4wCfQ+sr/K/O1jtUp8eSQ3tn93aV2fA==WxgZ-----END PGP PUBLIC KEY BLOCK-----

F I G U R E 1 0 - Example file "my_key.pub.gpg"

gpg: key 153D8BA4: public key"Dan Smith (Administrative Systems) <[email protected]>" imported

gpg: Total number processed: 1gpg: imported: 1

F I G U R E 1 1 - Results of a successful import

% gpg --edit-key [email protected]: checking the trustdb[unknown] (1). Dan Smith (Administrative Systems)<[email protected]>Command>

F I G U R E 1 2

Encrypting Files With GPGContinued from page 9

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 11

1. File EncryptionTo encrypt a file, you would performthe command in figure 14.

'[email protected]' is the e-mailaddress of a key you had previouslyimported and 'sample.txt' is a file youwish to encrypt. If you simply need toencrypt a file for data protection andyou have no intention of exchangingwith another individual, it’s perfectlyreasonable to list yourself as the recipient.Presuming you’ve previously trustedthe recipient’s key,you’ll see somethinglike what is in figure 15.

At this point you’ll have your original,

unencrypted file sample.txt and a new,

encrypted version named sample.txt.gpg.

DON’T FORGET TO DELETE THE ORIG-

INAL UNENCRYPTED FILE!

Now that you have an encrypted fileyou can exchange this with anotherparty using any means, includingencrypted or unencrypted methods

such as FTP, e-mail, SFTP, SCP, HTTPS,and so forth.

2. File DecryptionTo decrypt a file you would perform theoperation in figure 16.

Enter your passphrase and the file willbe decrypted and saved as "sample.txt".If you do not use the --output directive,the file will be printed to standard out-put (presumably your screen).

SummaryGnuPG is a freely available and robustpackage which provides the ability forstandards-based encryption and decryp-tion of files. is

JEFF BUTERA is a data-base administrator andsoftware developer inAdministrative Systemsat Hampshire College in

Amherst MA.

Comand> trust1 = I don't know or won't say2 = I do NOT trust3 = I trust marginally4 = I trust fully5 = I trust ultimatelym = back to the main menu

Your decision?

F I G U R E 1 3 - Trust prompt

% gpg -r [email protected] –encrypt sample.txt

F I G U R E 1 4 - Command to encrypt files

TThhee LLiinnkkss

For a complete history of PGP:http://en.wikipedia.org/wiki/Pretty_Good_Privacy

For more information on GnuPG:http://www.gnupg.org

gpg: checking the trustdbgpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust modelgpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u

F I G U R E 1 5

% gpg --output sample.txt --decrypt sample.txt.gpgYou need a passphrase to unlock the secret key foruser: "Jeff Butera (Administrative Systems) <[email protected]>"2048-bit ELG-E key, ID 6596A86C, created 2008-01-24 (main key ID604B7CE2)

F I G U R E 1 6 - Command to decrypt a file

12 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

However, planning has some meaning-ful benefits. One of the biggest hasnothing to do with the project; it has todo with future employment.You see, ifyou keep the coding separate from thedesign,you can often apply your designskills to projects which will ultimatelybe written in other languages. Thisyields a few different benefits:

You are promotable from coder toanalyst.

You can make system-neutral argu-ments which can help justify keep-ing and expanding the MultiValuesystems you support.

It is easier for you to survive in acompany which moves away fromMultiValue, increasing your options.

It lets you learn new languages andincorporate them into your tools,making you a more valuable employ-ee or consultant.

Think of it the way you think abouttuning a car. You can learn how to tunea 1979 Impala,or you can learn how totune pre-fuel injection cars in general.Learning the Impala, you might pickup some tricks which are specific tothat car, making you better with thatmodel. However, learning tuning at thebroader level means you can do a goodjob in more situations,even if you can'tdo the absolutely best job in the onespecific case.

Nothing is stopping us from learningboth.

Planning to Fail

One of the exciting aspects of plan-ning is that it helps you fail faster.Given a choice between hitting a deadend six months into a project or sixdays into a project, I vote for the fasterone.The sooner,and therefore cheaper,I find the roadblocks, the better myclient or employer can make decisionsthat allow the project to restart or read-just. I've worked on projects whereplanning has allowed me to convincethe boss to hire more staff or redeploythe folks we already had. I watchedsomeone lose a job once because theydidn't raise their hand soon enough. Bythe time management knew that thingswere at a standstill, the investment oftime and money was so high that some-one was getting fired.

So, I don’t mind failing early. It is mucheasier to adjust the plan and try againthan to adjust a million lines of code.Planning, unlike coding, is a journey

you might be able to share with other,less technical people. I’ve had anynumber of visionaries, who despitebeing code-illiterate, understood somuch more about the business than Idid. Coding as I went would have cutme off from their participation. Some-times a failure isn't considered a failureif it is discovered communally andresolved by the group.

Show Your Work

In math class, you could often get par-tial credit for a wrong answer if youshowed your work. More importantly,the teacher could show you where youwent wrong so that you had a chanceto do better next time. I never do aproject on the assumption that I willnever have to do anything similar.Every project is prep for the next proj-ect. So, the better we set up the expe-rience for learning, the less pain wefeel on the next project.

When we plan, we show our work toothers, including them in the process.We increase the number of voices—for good and bad—and we spread theunderstanding of why we do what wedo. This brings me to the story of achemist friend of mine. She called meone night in an attempt to make senseof her boss’s recent hostility.When shestarted the job, they got along famously.He was her mentor. Recently, she hadbegun working more independently,and he had started shooting down allof her projects. She didn't think hecould be jealous, she was still well

Last installment we looked at

the pain points we have as IT

professionals — at least as they

relate to planning big projects.

One could easily point to that

article as proof that planning

introduces as much trouble as it

solves. I can see the cowboy

coders in the room smiling. We

all have had the instinctive urge to

ditch the planning phase and

jump in with our metaphoric guns

blazing. Personally, I know I’ve

given in to that urge a time or two.

WhyProgrammers

Should PlanB Y C H A R L E S B A R O U C H

1.

2.

3.

4.

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 13

below his level, but she was at a lossfor a better reason.

So, I asked her if she had come to himfrequently with questions in the begin-ning and she says, “Of course.”Then Iasked her if she thought that the ques-tions gave him some insight into herthought process, and she said,“Absolutely.” So then I asked if she wasnow presenting conclusions withoutexplaining her thought process andshe said,“That’s it!”

The next day she presented a new projectand included a section on her thoughtprocess, her dead-ends, and her eventualconclusions. He approved the project.Showing your work is very useful.

Leap of Faith

Let’s assume that you believe that plan-ning has a sufficient value. The nextstep is to understand how to maximizethat value. When I have the option ofsetting the pace, which is certainly notall of the time, here’s my preferredmethod:

1. Meet

2. Build a Straw Man

3. Build a Plan

4. Get Buy-in

Meetings, to quote one former co-worker, are often a group of people sit-ting around a table, trying to contactthe living. What we are looking forhere is some healthy exchange. Gener-ally, I try to get one of the people whoneed the project talking and then I aska few wide-open questions. The moregeneral the question, the better thechance of getting a useful answer.“What’s the biggest issue we need tosolve?” vs. “Do you want that as areport or an inquiry?”

Once they are talking, get the otherpeople engaged. If the project servesAccounting and Sales, make sure youget both sides talking. Otherwise youend up with half a project specifica-tion. Hopefully, the key people willstart interacting and refining the idea.

Continues on page 45

S P E C T R U M : So, why BI and

Reporting tools? Is that what the

company was founded to promote?

M A R K : Well, no. Sierra Bravo wasreally founded to help people get totheir data. Most of the projects that wetackle are oriented around helpingpeople visualize and connect the infor-mation in the systems that they use torun their businesses. That naturallyfeeds into the BI space.

L U K E : Sierra Bravo wasn’t foundedto promote any specific product ortool. We’re a services company. Ourproducts make up less than 10% of ouroverall sales. Bravo Reports, for exam-ple, is a web-based, ad hoc query tool.There are character-based reportingtools out there, but one of our cus-tomers asked us to make one thatcould be used by their users on theweb. Later, we expanded upon it andturned it into Bravo Reports.

It’s not intended to be a BI tool, really.It’s a data mining tool.

M A R K : All of the products whichwe offer, from warehouse managementto e-commerce, are all based on real-world problems that we’ve run intoover and over.

ule. But to be honest, we really try notto present ourselves as a software“products” company. We’re all aboutservices and software packages makeup such a small part of what we do.

Bravo Reports provides what weintended — a way for clients to minedata out of their systems without hav-ing to be query language experts. It’sour approach to finding a good bal-ance between “full featured”and “over-ly complex.” It’s the type of productthat a user can start using on a Mondayand be a power user on Tuesday.

M A R K : The whole idea behindBravo Reports was to create a simple,wizard-like interface for mining thedata in a MultiValue database withoutrequiring the user to understand the

S P E C T R U M : Now that Bravo

Reports is out in the market, how

is it being used?

L U K E : It seems that one of the pri-mary attractions to Bravo Reports is itsability to deliver the report informationin multiple formats.Microsoft Excel andPDF are the big winners. And, that itdelivers them automatically on a sched-

14 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

Continues on page 16

B Y C H A R L E S B A R O U C H

Sierra Bravo Corporation is a software develop-

ment company founded in 2003.They’ve taken

a number of interesting turns, so Luke Bucklin,

President, and Mark Hurlburt, Director of Mar-

keting, stopped by to tell us about it.

F I G U R E 1 – Bravo Dashboard

Reporting and Business Intelligence Tools:

Sierra Bravo

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 15

( 3 0 3 ) 7 5 5 - 1 1 0 2

w w w . f i t z l o n g . c o m

Fitzgerald & Long

A FILE ANALYSIS AND S IZ ING TOOL

Automated file maintenancefor UniVerse and Unidata filesis essential for top system per-formance (UNIX & NT).

D Y N A M I C F I L E S N E E D M A I N T E N A N C E T O O

• Client/Server architecture

• Windows interface

• Both static and dynamic files

• Detect file corruption

• Improve system performance

• Resize your files automatically

• Join our 2,275+ customers

16 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

downloaded and installed by MultiVal-ue consultants or in-house developers.It’s intended to provide the profession-al a new way to leverage their skills tomeet the real-time reporting needs oftheir clients. Free to develop and freeto deploy.There are no license fees forBravo Dashboard. Bravo Reports is acommercial product.

S P E C T R U M : Where can peo-

ple download Dashboard?

M A R K : http://www.sierra-bravo.com/multivalue

S P E C T R U M : What flavors

does it support?

L U K E : Currently, Bravo Dashboardwill run on D3, UniVerse, and UniDataon Linux and AIX.We have the Windowsport nearly done, at which point it willsupport UniVerse, D3, and UniData onWindows as well.jBASE is close to follow.

The download package comes with aninstallation guide and a programmer’sguide. It’s pretty straight forward.

16 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

M A R K : In many cases, the mainthing we’re bringing to the table is anew interface (to existing greenscreen functionality) so it’s importantthat we make the solutions as easy touse as possible. In some ways, BravoReports and Bravo Dashboard do thesame thing for diametrically opposedaudiences.

S P E C T R U M : Diametrically

opposed?

M A R K : Well, Bravo Reports andBravo Dashboard are both solutionsdesigned to help users visualize andmine the data in their MultiValue data-base. Bravo Reports approaches thissolution by trying to make things asuser-friendly and straightforward aspossible, whereas Bravo Dashboard isa tool for real power users to do simi-lar kind of mining.

L U K E : Beyond that, Bravo Dash-board is a free utility intended to be

behind-the-scenes queries that neededto be written. But, we’ve also workedwith some customers on extendingBravo Reports to feed enterprise portalsystems.

Since you mentioned BI, do you wantto talk about Bravo Dashboard, the BItool we’ve just released?

S P E C T R U M : Certainly.

L U K E : Dashboard is a program-mer’s tool to build web-based dash-boards.The widgets themselves are pro-duced by MultiValue Basic subroutines.Non-programmers need not apply. Wemake it very easy for a MultiValue Basicprogrammer to build web-based reportdashboards without having to learn abunch of new technologies. In fact, theMultiValue Basic programmer doesn’treally need to learn anything new at all.It’s all done with the same MultiValueBasic programming methods that theyare already using.

Reporting and Business Intelligence Continued from page 14

There is also a 30-minute screencast ofa web demo of Bravo Dashboard avail-able on our web site.

M A R K : In order to download Dash-board, users will need to register for afree MultiValue Central account.

S P E C T R U M : What about

Bravo Reports? What platforms is

it on? Where can I try it or buy it?

L U K E : Bravo Reports will run onUniData, UniVerse, D3, mvBase, andjBASE on all Windows and Unix plat-forms. We provide WebEx demonstra-tions upon request.

You can buy from us or through

Zumasys.They represent our products

and services to their clients. We also

have some individual VARs who resell

our products to their customer base.

S P E C T R U M : Any other

reporting tools?

L U K E : We haven’t talked aboutBravo Forms.

of hands-on experience. How long

have you been in the industry?

L U K E : Sierra Bravo was founded in

late 2003; so we’ve been in business

for just over four years.We have been

providing programming and technical

services to a rapidly growing list of

MultiValue customers, as well as non-

MultiValue clientele.

M A R K : We were founded by Luke

and his two business partners and have

grown to nearly 50 people in 2008.That

includes a little over two centuries of

MultiValue experience on staff.

L U K E : We work with about 150

active customers (work performed in

the last 90 days), and we deliver over

1,000 hours of programming services

each week.

If our customers know us for anything,

it’s that we are the ones who can fig-

ure out how to get it done, and also

who have the resources to actually get

it done. IS

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 17

M A R K : That’s our document work-flow system, designed to streamlinethe formatting and dissemination ofdocuments

L U K E : Bravo Forms is our solutionfor leveraging existing print programsthat generate text-based documents tocreate electronic versions of the form.Bravo Forms runs on a server on thenetwork and,using a web interface,sys-tem administrators can configure virtu-al printers on the forms server. Thoseprinters can then be added to the Mul-tiValue (or any other) host as “plaintext” printers.

M A R K : It also includes functionali-ty to add generated content like barcodes and digitally captured signaturesto printed or archived documents.Theproducts that we’ve been talking aboutare really a nice by-product of having ahuge room full of super-smart comput-er nerds in Bloomington, MN.

S P E C T R U M : It sounds like

you’ve built products out of a lot

18 � INTERNATIONAL SPECTRUM MARCH/APRIL 200818 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

RAM Mutual Insurance Company, a prop-erty and casualty carrier located in Esko,Minnesota, wanted a stronger web pres-ence to become more competitive intoday’s market. They were running System-Builder on top of an mvBase system andreceived notification that IBM would nolonger support SystemBuilder on any non-IBM platform. They quickly realized theyneeded to upgrade in order to regain Sys-temBuilder support and, at the same time,better position themselves for aggressiveweb development.

After a trip to the International SpectrumConference and many conference callslater, RAM decided a migration to IBM’sUniVerse would provide the most seam-less migration solution. It would offer them the platform they needed to pursueaggressive web development as well as give them the software support andupgrades for their now outdated version of SystemBuilder.

The only hurdles they faced were movingtheir software from mvBase to UniVerseand finding a way to continue to meettheir heavy printing requirements withoutmodifying their software. To solve theseproblems, they contacted Sysmark Infor-mation Systems, Inc., an authorized IBMBusiness Partner.

Using Sysmark’s FileCaddy programs — TAPE.DUMP andTAPE.LOAD — RAM was able to convert their applicationaccounts directly from mvBaseto UniVerse. They then recom-piled their programs, modified a few statements to UniVerse syntax, and tested for systemintegrity.

And, using Sysmark’s genericPick print spooler, SpoolerPlus,they were able to set up theirprinters and print queues onUniVerse just like they were onmvBase and continue to printover 3,000 completedinsurance policies a month,convert many print jobs to PDF,and manage hundreds of printjobs on hold in the spoolerwithout costly software modification.

Their first impression was the dramaticincrease in speed of their software.

“Programs that used to take hours to runnow run in minutes,” said Bob Utech, theSenior Information Services Coordinatorinvolved with the migration. “And, simplelist statements that utilize the larger filescome up in seconds now,” he added.

“Even our Pick calls from our web site areso much faster with UniVerse,” said AngieSalmi, a Sr. Services Analyst in the Informa-tion Technology department.

Their software had become so highly cus-tomized over the years that replacing itwith some other software package wasnever an option. Hundreds of System-Builder screens and hundreds of programsthat utilized the Pick spooler would havehad to be rewritten.

“UniVerse has allowed us to continue touse our Pick file structure coupled with anetworked system that can access theInternet and, more specifically, provide usthe opportunity to build a strong web pres-ence. This will increase our ease of doingbusiness and help us become more com-petitive in today’s soft insurance market,”according to Steve Hinnenkamp, the Information Technology Manager.

NewsmakersRAM Mutual Insurance Company

Upgrades Legacy Software

Aptron Corporation and Entrinsik, Inc. Partner to Bring Powerful

Web-based Reporting Capabilities to the Higher Education Market

Aptron Corporation, a leading provider of comprehensive enterprise systems for Colleges and Universities, and Entrinsik, Inc., producers of Informer Web ReportingSoftware, have announced a partnership providing Aptron customers with an intu-itive web reporting tool for accessing data in real time. Aptron continuously pur-sues a “total solution” approach for their customers, and Informer provides a great

complement to their existing offering.

“Aptron’s software suites are made up of several applications that rely on a single data storeand can be customized for individual institutions, and we chose Informer because it provided ahighly intuitive conduit to this valuable data,” said Tom Makosky, President of Aptron Corpora-tion. “We are excited to offer our end users this web-based reporting capability, all seamlesslydelivered with our existing applications.”

With the Entrinsik partnership, Aptron customers will experience a fully integrated, familiar, intu-itive platform for reporting, enabling them to easily and securely access data directly fromAptron applications on demand and view the data in HTML, Excel, or PDF formats.

“We are delighted to have Aptron as a partner,” said Doug Leupen, President of Entrinsik.“We’ve been developing solutions for the Higher Education market for over 20 years, and weare confident that Informer will add tremendous value to Aptron’s already robust enterprisemanagement platform. We look forward to working with them to enhance their customers’capabilities to turn raw data into valuable information where and when they need it.” �

“And, the scalability of Spooler Plusenabled us to move our software over andcontinue to meet our heavy print require-ments without changing any of our printingprocedures and without the cost of modi-fying all of our print processes,” he added.

“All in all, the responsive support we contin-ue to receive from Dave Taylor at Sysmarkhas been the key factor for the success ofour upgrade”, according to Steve.

For more information about IBM U2products and SpoolerPlus, contact:

World Wide: Sysmark Information Sys-tems, Inc. Authorized IBM Business Partner;800-SYSMARK; 800-797-6275; [email protected]; www. sysmarkinfo.com

United Kingdom: Brian Leach ConsultingServices Limited, [email protected];www.brianleach.co.uk �

MITS Report Fuels

Popular New RV Dealer

Applications from Inte-

grated Dealer Systems

MITS and Integrated Dealer Systems(IDS) have joined forces to make it easierfor RV dealers to grow their businesses, byintegrating MITS Report technology intoIDS’s flagship Astra Dealer ManagementSystem (DMS). The new CRM Reportsapplication is available now from IDS.

IDS showed the new solution, which pro-vides web-based reporting capability to RVdealers wanting to analyze key customer

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 19

revealed an initial set of standardizedhypercubes for MITS Discover at theRVDA show in September, each of whichenable dealers to analyze, query, and drilldown into a particular area of interest, andintend to refine and augment these cubesduring the coming months.

For more details on MITS software solu-tions, contact a MITS representative [email protected] or visit the MITS Web siteat www.mits.com. For more details on IDSAstra, visit www.ids-astra.com. �

Datatel Appoints

David J. Gutch Vice

President of Sales

Datatel, Inc. announced that David J. Gutchhas joined the company as vice president ofsales. Mr. Gutch will head Datatel’s SalesDivision and focus on driving strategic rev-enue growth and positioning Datatel for con-tinued success in the higher educationtechnology and services market.

Mr. Gutch brings more than 25 yearsexperience in technology-related organiza-tions, most recently as Everest Software’ssenior vice president of worldwide salesand marketing. There he was responsiblefor all revenue and lead generationthrough both direct and indirect saleschannels covering 49 countries. Previously,Mr. Gutch held executive sales positions atInfinium Software, a web-integrated enter-prise resource planning (ERP) provider,and SER Solutions, a leading provider ofsoftware, hardware, and professional serv-ices for the call center industry.

“I welcome Dave to our Executive Teamand look forward to his contributions toour ongoing growth strategy,” said John F.Speer, Datatel president and CEO. “Dave’soutstanding talent and experience as aleader of sales teams will strengthen Datatel’s growth initiatives while at thesame time preserving and enhancing ourclient relationships.”

“I am excited to join the Datatel team andplay a critical role in accelerating the compa-ny’s growth,” said Mr. Gutch. “Datatel’s well-deserved reputation as a leader in thehigher education market and its strong clientcollaboration offer attractive opportunities tobuild on the company’s strong foundation.”

A native of New Jersey, Mr. Gutch holds adegree in Economics from Boston College,where he was an honors graduate. Mr.Gutch resides in Waterford, Virginia withhis wife and three children. �

relationship data, to an enthusiastic streamof RV dealers at the recent 2007 RVDA RVDealers International Convention and Expoin Las Vegas. “The CRM application, withMITS Report embedded, was an enormoussuccess,” according to Sean Raynor, direc-tor of sales and marketing at IDS. “Ourbooth overflowed throughout the weekwith customers who want to sign up to geton the installation schedule.”

Raynor adds that leveraging the MITSReport technology shaved months off hisproduct development cycle. “By not divert-ing software development resources fromtheir core DMS expertise, we were able tofocus on important CRM features for ourcustomers. At the same time, we giveusers all the reporting capabilities theyneed — and then some. It was faster andmore cost-effective to use MITS Report.”

The new CRM Reports application letsusers interactively retrieve and analyzecustomer, sales, and operational informa-tion through pre-configured and user-cre-ated reports — any of which can befiltered, sorted, and totaled according toindividual user needs, then exported toother formats or shared via e-mail.

IDS chose the MITS technology because itmet all of its reporting functionality require-ments, due to its architectural fit, and inlight of what Raynor calls “the strong MITStrack record” in the reporting and businessintelligence for MultiValue computing plat-forms. The Astra DMS runs on MicrosoftWindows desktops, in independent clientsoftware and via Web browsers, whichinteract with remote, IBM UniVerse-basedcapabilities via a Microsoft .NET framework.

“When we designed MITS Report, wewere thinking beyond the MultiValue mar-ket,” explains MITS President Fred Owen,“so we made it easy to integrate into otherapplications on various platforms.”

Like Owen, IDS’ Raynor believes softwarecompanies can and should leverage theexpertise of other providers who specializein “horizontal capabilities” like reporting.“They [MITS] have been doing this formore than ten years, and most softwaredevelopers don’t have their business intelligence and reporting expertise. Nor do they have much interest in pursuing it. It just makes sense to use technology like theirs.”

Largely because of the positive experi-ence with MITS Report, IDS also plans tooffer MITS Discover — the company’sbusiness intelligence (analytics) solution —as an add-on product into its Astra DMSsolution during the first half of 2008. IDS

Get It Right From the Source.

� Problem Reporting

� Change Control

� Project Management

� Time Tracking

� Test Management

� Deployment

� Rollback

� Audit

Want control over the changes

you make to your software?

PRC can help you get it

right — and keep it secure.

For U2/MultiValue and SB+ environments

SJ+ Systems Associateswww.sjplus.com

9 5 4 • 7 9 6 • 9 8 6 8

PRC®

20 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

BlueFinity International, amember of the Mpower1group of companies, has

been providing .NET con-nectivity tools for MultiValue

developers for nearly five years. Theextensive range of features provided bythese tools underpin many hundreds ofdiverse MultiValue-based applicationsthroughout the world.

BlueFinity’s flagship product, mv.NET,enables software designers to combinethe power and flexibility of proven Mul-tiValue technology with the feature richMicrosoft .NET environment. Its seam-less integration with Visual Studio pro-vides a potent rapid applicationdevelopment environment fine-tunedfor the MultiValue developer.

As BlueFinity prepares to roll out thenext major release, its developers areclosely watching the market’s futuredirections to bring the latest technolo-gies to the MultiValue and .NET devel-oper communities. The main thrust ofmv.NET Version 4 is the support of newMicrosoft technologies, namely:

Version 4.0

Visual Studio 2008 Extensibility ModelMicrosoft has enhanced the rangeof features and scope for third-party integration within Visual Stu-dio. mv.NET V4.0 will takeadvantage of these enhancementsto provide even tighter MultiValuedatabase integration and furtherfunctionality within Visual Studio.

Support for .NET Framework 3.5Microsoft has just released itsmuch anticipated .NET Framework3.5. mv.NET V4.0 will provide aversion of the product targeted atthis framework release while alsomaintaining support for Framework2.0. BlueFinity is committed toenabling both frameworks to coex-ist and to providing ongoing sup-

port for new versions of the .NETFramework.

64-bit Supportmv.NET V4.0 will introduce supportfor Windows 64-bit platforms inaddition to the current 32-bit sup-port. Visual Studio 2008 32-bit and64-bit will be fully supported withinmv.NET.

Extended InternationalizationFurther enhancements will bemade in mv.NET V4.0 to extendthe current support for foreigncharacter sets.

SSIS IntegrationLeveraging the functionality ofmv.NET V4.0, a new Data Connec-tor will be released to provide SSISintegration. This will provide aneasy to use and versatile capabilityto move MultiValue resident databidirectionally to and from theMicrosoft SQL Server.

Version 4.1

LINQ ProviderLanguage-Integrated Query (LINQ)will be an integral part of the .NETFramework. mv.NET V4.1 will sup-ply a LINQ provider that leveragesthe unique abilities of the MultiVal-ue database model.

Version 4.2

Silverlight Application DevelopmentMicrosoft is still in its early adopterphase for Silverlight (http://sil-verlight.net/). This exciting technolo-gy promises to deliver to webapplication developers the power,versatility, and speed of applicationinterface development that rich-client developers have enjoyed foryears. mv.NET V4.2 will provide thedatabase connectivity that will be a

vital aspect in the creation of busi-ness-based Silverlight applications.

David Cooper, Lead Developer atBlueFinity International, feels that inte-gration with emerging technologies hasbecome increasingly important forgrowth. “LINQ is the future of .NETdata connectivity. It will change the wayin which we (as developers) view andinteract with data repositories,” heexplains. “Silverlight will (if its promisecomes to fruition) provide web applica-tion developers with a fundamentallydifferent way of creating solutions —one which will improve developer pro-ductivity by orders of magnitude. Hereat BlueFinity, we are working at a fever-ish pace to ensure that we can provideour customers with tools that not onlyprovide integration with these key tech-nologies but tools which actively pro-mote and leverage the uniquestrengths of the MultiValue model.”

BlueFinity is accepting applications for the Version 4 early adopters program. Those interested in testingtheir applications against mv.NET V4should email [email protected] formore information.

More information will be available at aseries of BlueFinity seminars takingplace in the USA and the UK in April.The USA show will take place on thelast day of the International SpectrumMultiValue Conference in NewportBeach, California on April 4th followedby a London seminar in the UK onApril 22nd. More information regardingboth shows is available on the BlueFinity web site.

mv.NET is available for D3, jBASE,mvBASE, Power95, QM, Reality, UniDa-ta, UniVerse, UniVision and others byrequest. Visit www.bluefinity.com formore information.

About BlueFinity International

BlueFinity International, a member ofthe Mpower1 Group of Companies(www.mpower1.com) offers its two flag-ship products — mv.NET and RSDC —to the global MultiValue community.mv.NET allows the full benefits of the.NET service oriented architecture tech-nology to be realized by users of estab-lished MultiValue applications. RSDCenables MultiValue developers to utilizethe very latest Microsoft Reporting Ser-vices technology. For more information,visit www.bluefinity.com. �

BlueFinity Roadmap Unveils Plans

for mv.NET Version 4

New Products

22 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

Revelation Software announced that ithas purchased Freedombase WebReady, a web development suite fromFreedomsoft, for inclusion into itsOpenInsight database developmentproduct.

Freedombase Web Ready is a quick andeasy way to add web front-ends to exist-ing OpenInsight applications, providing afast and cost-effective means of rejuve-nating existing or legacy systems andretaining the investment that those sys-tems represent.

“Today’s software user expects to beable to run applications in a browser,whether from a PC or mobile devices”,states Mike Ruane, President, RevelationSoftware. “By purchasing the Freedom-base product, we’re able to give ourdevelopers and users the most efficientpath for doing so.”

“We have been running Freedombaseon OpenInsight, as our preferred devel-opment platform, for around threeyears,” states Glenn Groves, ManagingDirector, Freedomsoft. “We have beenimpressed with both the realistic pricingof OpenInsight and the portability ofapplications between Windows, Linux,and recent Macs. Incorporating Free-dombase Web Ready into OpenInsightdelivers fast and easy web developmentand web porting of existing OpenInsightapplications to OpenInsight developersand is a great combination.”

Revelation plans to rebrand the pur-chased Freedombase product as WebOIin order to eliminate any confusionbetween the two products. Further infor-mation can be found at Revelation Soft-ware’s website, located atwww.revelation.com. �

Northgate Information

Solutions Announces

Availability of Reality v14.0

Northgate Information Solutions ispleased to announce the availability ofReality V14.0. Following on from previousreleases, Reality continues to beenhanced. Reality V14.0 again deliversgreater benefits in the areas of:

• Connectivity

• Integration

• Resilience

• Productivity

• MultiValue Migration

• By delivering new functionality in the following areas:

Safe & Secure

Data Encryption at RestReality has addressed the securedata concerns with its new DataEncryption at Rest feature. Thisrefers to all data stored in computerstorage, both for online access andoffline data archiving. Reality V14.0offers several new encryption components to meet these needswhich are summarized below.

Fully Encrypted FilesWhen a file is created it can beidentified as encrypted with accessdetermined within a user’s profile.All data types (including binary) willbe encrypted when written anddecrypted when read back, with thisbeing transparent to the user orunderlying application.

Encrypted Data in Reality IndexesAny indexes that refer to encrypteddata are themselves encrypted toensure that the data remains hiddento unauthorized access.

Save/Restore of Encrypted FilesReality’s utilities save all items as is.Any encrypted data will not bedecrypted prior to writing to media.Similarly, restore utilities restore dataas is, any encrypted data will remainencrypted.

Freedombase Web Ready to be

Included in OpenInsight

New Products

Nebula Research and Development Announces

New NebulaXLite Software

NebulaXLite allows MultiValue Basic code to generate real spread-sheets and workbooks that open in Microsoft Excel, Open Office, andGoogle spreadsheets. NebulaXLite is free for developers and only

$200 per end-user server. Bug fixes and occasional enhancements areprovided free for the current release. Support is free via public forum. Developershave access to update an online issue tracker with bug reports and enhancementrequests. Platforms currently supported are D3, jBASE, QM, UniVerse, and UniData.

Tony Gravagno, President of Nebula R&D says, “We know we’re on the right trackwith NebulaXLite. The best evidence of this comes from one of our first users.”

David Gordon of CardPak card packaging solutions says, “Minutes after I read yourad, I was called in by management to discuss how we can create spreadsheetsdirectly from our database. They were tired of having to import into Excel. I down-loaded the demo and had spreadsheets being generated by the following morning... they love it! I have since added the option to most of the key reports manage-ment uses. ... The most worthwhile $200 we’ve spent! Well documented and easy to use. Keep up the great work!”

http://Nebula-RnD.com/products/xlite.htm has product information and a link fordownloads and the forum. Register on the forum to get access to the issue tracker.Product inquiries may be posted to the forum or sent directly to [email protected].

Encrypted Data on Portable MediaAll Reality tape devices and imagesallow for an encryption option whichcauses data written to use a speci-fied key for data export. The datacan only be decrypted and read withaccess to this key, thus allowing it tobe transported and stored securely.

Enhanced DataBasic ENCRYPT and DECRYPTEnhanced versions of the existingDataBasic commands allow the useof the new encryption feature.

Secure Management of Encryption KeysData Encryption is based on keysthat encrypt and decrypt data. Theseuser-defined keys are held securelywithin Reality and are referenced byname within a user’s profile. Utilitiesare provided to securely manageand archive encryption keys, withDES (Data Encryption Standard),CBC (Cipher Block Chaining), andtriple-DES currently supported.

Enhanced Disaster Recovery - RealityDRReality V14.0 Disaster Recovery (DR) capability provides an unattended mechanism for synchro-nizing stand-alone or Failsafe Data-bases to a separate remote system.Significantly, this can operate over aslow or intermittent communicationslink. RealityDR is fully integrated intothe resilience management utilities, simplifying the configuration andday-to-day tasks.

Interoperability

English generated Web Pages

Reality V14.0 can generate HTMLWeb Pages directly from Englishwithout the need for programmer or third-party product intervention,enabling greater efficiencies for business reporting.

New ActiveX Interface

The ActiveX interface delivered with Reality V14.0 enables Windowsapplications written in environmentssuch as .NET, C, VBA, and VisualBasic to efficiently call individualDataBasic subroutines remotely.

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 23

together, e.g., system and DataBasicrun status, return stacks, and lockcontention.

New TCL LoggerReality V14.0 satisfies the newdemands in security auditing andsupport capabilities. This new feature logs user activity across the system enabling:

• Logging and monitoring of user

activity at TCL

• View or run all user TCL history,including program invoked commands

Advanced HTML User DocumentationViewable from the Reality CD image or installed on any file or web server, including the built-inmini web server.

For more information and pricing or torequest a free evaluation, contact yournearest Northgate Sales office, visitwww.northgate-is.com/reality, or [email protected]

Performance

Configurable Database Frame SizeReality V14.0 now supports framesizes of (1, 2, 4 or 8 KB) to achieveoptimum application performance.Statistics are generated to assistchoosing the frame size required.

Auto File SizingAuto File Sizing is now set by defaultto deliver optimal performance withno administrative overhead.

Multi-stream Account RestoreThe multi-stream restore process hasbeen optimized to reduce disk frag-mentation, thus significantly improv-ing the performance of the restoreddatabase.

Increased Transaction Log Sizes

Reality V14.0 increases each individualtransaction log size from 2GB to 200GBor 4 billion individual transactions,whichever occurs first — thus reducingthe total cost of ownership.

MultiValue Compatibility

Reality V14.0 further simplifies andeases migration from other MultiValueplatform environments.:

• Simulate MultiValue platforms

• Options and definable MultiValueenvironment configurations canchange the behavior of English,DataBasic, TCL, Proc, and other run-time areas

• New TCL stacker which is capableof emulating other MultiValue envi-ronments

Key DataBasic Enhancements

• DataBasic EQU to statements

• DataBasic functions and statements - RAISE, LOWER, SORT,COMPARE, PAUSE and WAKE

• Improved error handling within theDataBasic compiler

• Plus numerous other enhancements

Reality Environment

ANALYZE “user process” Command

Key information about a userprocess can now be presented

[email protected]

Visa � MasterCard � AMEXDiscover � Diners � JCB

Debit Cards � Custom

CREDIT CARD INTEGRATION

� Seamless Integrations into POS,Order Entry and e-Commerce

� Single or Multiple Merchants� TCP/IP - Secure Internet� Single or Multiple Modems� Your Clearinghouse or Ours� VAR Partnerships

March 31 - April 4, 2008

REGISTER BY 2/20/08 AND SAVE UP TO $200!

2/20/08

BEFORE 2/20/08ACT NOW AND SAVE!After 2/20/08

26 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

Preparing for ADO.NETThe ADO.NET provider uses the UniCall Interface (UCI) to expose U2 filesas relational tables. On UniVerse, thekey to a successful implementation isto create a clean and complete dic-tionary layer through which the datacan be presented.

One way to achieve this is by buildinga reporting account.This uses modifiedfile pointers to link local, tidied dic-tionary files together with live data filesto give a better presentation of theapplication data. These dictionariesshould include an @SELECT phrase tolist the visible fields, and should useexclusively D-type and I-Type diction-ary items with multivalued fields cor-rectly identified and all associationsdefined. For more details on setting upUCI,please see my articles in the U2UGKnowledge Base (see The Links).

The latest edition of the IBM ADO.NET

provider supports UniVerse and UniData.

This is a generic provider that operates

across the IBM database range, and at

time of writing is only available with the

DB2 client. The product integrates direct-

ly into Visual Studio 2005, though not yet

into Studio 2008 or the Express editions.

U2 and the .NET platform

U2 developers already have a wealthof options for integrating with .NET.The middleware of choice is theUO.NET member of the UniObjectsfamily, which delivers high-perform-ance native access for transactionalapplications and now sports connec-tion pooling and XML data set facili-ties.For SOA architects, IBM has addedweb services to the two databases,while for web developers, RedBack(U2 Web DE) offers a tried and trustedmodel for building scalable applica-tions. What is the need then for anADO.NET provider?

ADO.NET is the standard method ofdata access for the .NET platform. Ithas overtaken OLEDB and ODBC asthe mainstream solution to buildingprovider-independent database appli-cations. It also forms a major part ofVisual Studio, which offers a compre-

hensive set of tools for working withdata sources.

As with OLEDB and ODBC before,ADO.NET is modelled around a rela-tional view of a data source,using SQLstatements to retrieve and updatedata represented in the form of twodimensional tables and views. TheIBM ADO.NET providertherefore offers U2sites the advantages ofmainstream coherenceand the prospect ofintegration with third-party products, whilesuffering the difficul-ties that inevitably arisefrom normalizing mul-tivalued data.

26 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

B Y B R I A N L E A C H

F I G U R E 1

F I G U R E 2

F I G U R E 3

IBM ADO.NETProvider:

What’s in it for U2?

Creating a Data Bound Form

A key component of ADO.NET is adata set. This is an in-memory repre-sentation of a database containingtables, columns, and relations. A dataset can be generated using designtools and filled using an intermediateobject called a TableAdapter that actsas a conduit between the data set anda data source.

Here’s how to create a data drivenform in a few easy steps.This uses theIBM ADO.NET provider and the Wych-books demo (see The Links).

First, create a blank Windows Formproject and open the solution DataSources window. Click Add NewData Source and choose Database.Click the New Connection button.

Change the Connection to IBM DB2,IDS and U2 Servers and click theAdvanced button to open the fullproperty list (fig. 1).

Enter the server name, database(account), server type, and your cre-dentials.Turn off pooling unless yourserver has a Pooled Connectionlicense.

Accept the dialog and the connectiondetails, and the Wizard will connectand return a list of tables. SelectBOOK_TITLES.

At this point it may complain that itcannot find the table. UniVerse doesnot resolve the schema name: justcontinue and create an emptyBOOK_TITLES DataTable. Right-clickthe table in the data set view (fig. 2)and select Configure. Remove theaccount name from in front ofBOOK_TITLES and the data set willrebuild itself correctly.

Finally, open the blank Form1 in yoursolution and drag the BOOK_TITLEStable from the Data Source windowonto the form surface. Visual Studiowill create a data grid, navigator, andadapter controls. Press F5 to run theproject. (Fig. 3)

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 27

String connString = getConnectionString();String cmd = “SELECT COUNT(*) FROM BOOK_TITLES”;

DB2Connection dbConn = new DB2Connection(connString);dbConn.Open();DB2Command dbCmd = new DB2Command(cmd, dbConn);DB2DataReader dbReader = dbCmd.ExecuteReader();dbReader.Read();MessageBox.Show(dbReader.GetValue(0).ToString() + “ items”);dbReader.Close();

F I G U R E 4 – Snippet executes a simple SELECT statement and parses the results

User ID=demo;password=demo;database=books;Server=grunt;

ServerType=universe;pooling=false

F I G U R E 5 - DB2Connection uses a connection string like this

SELECT SUM(UNITS),SUM(PRICE),SUM(UNITS*PRICE) AS “Value” FROM→ BOOK_TITLES;

SELECT TITLE_ID, SHORT_TITLE, DEPT||’-’||GENRE FROM BOOK_TITLES;

SELECT EVAL “OCONV(@DATE,’D4’)” FROM BOOK_TITLES;

F I G U R E 6 – Example of SQL and UniVerse extensions supported

SELECT A.SHORT_TITLE, A.AUTHOR_ID, B.FULLNAME FROM → BOOK_TITLES A LEFT JOIN BOOK_AUTHORS B ON → A.AUTHOR_ID = B.AUTHOR_ID

F I G U R E 7 – Example Join clause

SELECT BOOK_SALES.ID, SURNAME, FORENAME, TITLE_ID, QTY → FROM BOOK_SALES LEFT JOIN BOOK_SALES_SALE_ITEMS → ON BOOK_SALES.ID =BOOK_SALES_SALE_ITEMS.ID;

F I G U R E 8 – Associations example

SUBROUTINE GetTitleById( Id )TCL = “SELECT * FROM BOOK_TITLES WHERE TITLE_ID = “ : IdT = SQLExecDirect(@HSTMT, TCL)RETURN

F I G U R E 9 – Example of a stored procedure Continues on page 28

Using a Data Command

ADO.NET is a series of classes imple-mented by each provider. Besides thedata set, which imposes considerableoverheads, developers can use a Data-Command to run com-mands and a DataRead-er to read results.

The IBM provider is ref-erenced through theIBM.Data.DB2 name-space and each class isprefixed with DB2.Thesnippet in figure 4 exe-cutes a simple SELECTstatement and parsesthe results.

The connection is made through aDB2Connection, which uses a connec-tion string like the one in Figure 5.

Supported SQL Syntax

The IBM ADO.NET provider supportsstandard SQL including summary oper-ations and column expressions, andsome UniVerse extensions (fig. 6).

SQL uses JOIN clauses to access to sec-ondary files.Figure 7 shows a join usedto return the author name.

A special example is the treatment ofmultivalued data.To represent this in aform that relational clients can under-stand, each multivalued field or associ-ation is presented as a separate childtable sharing the record id. Associa-tions are named filename_assocation,for example BOOK_SALES_SALE_DETS. In the example (fig.8),TITLE_ID and QTY are part of aSALE_DETS association.

Running Stored Procedures

Stored procedures often provide a bet-ter way to access data. On U2 systems,stored procedures are written as regu-lar Basic subroutines. These can

expose existing busi-ness logic and canreturn results usingthe BCI SQLExecDi-rect function (fig. 9).

Stored procedures canbe called by setting theDBCommand Com-mandType to Com-mandType.StoredPro-cedure or by executinga SQL CALL statement.

Parameters are fed into the subroutineargument list:

CALL GetTitleById(10)

For more flexibility and control, theDB2Command class exposes a Parame-ters collection to pass values.Note the for-mat of the CALL statement in figure 10.

Not all stored procedures returnrecord sets. Basic subroutines can passsimple data and messages backthrough regular arguments usingInputOutput parameters and using theExecuteNonQuery method to runwithout expecting results. (Fig. 11)

Performing Updates

Stored procedures can performupdates, or a DB2Command can exe-cute INSERT and UPDATE commands.Data sets can update the underlyingtables through TableAdapters. Spaceconstraints prevent proper discussionof this topic, but in all these cases

PICK PROFESSIONALDon’t make the mistake of placing

your career in the hands of just ANYsearch firm. We are professionals who

understand the importance of CONFIDENTIALITY and RESPECT of ajob search, and our database of clients

is one of the largest in the country.Unlike the rest, we will work in YOURbest interests’ to help you further your career. Because of our dedication andprofessionalism, we are recognized asthe leaders in the PICK/UniVerse/Unidataplacement industry in the Tri-State areaand throughout the U.S. So if you are

tired of putting yourself at the mercy of the rest.

CALL THE BEST! Contact...Matt Hart

EXECU-SYS, LTD1 Penn Plaza, Suite 3306New York, NY 10119

(212) 967-0505(800) 423-1964 x 302 Fax: (212)947-8593Email: [email protected]

Consultants Needed Nationwide

dbCmd.CommandText = “CALL GetTitleById(?)”;// lines snippedDB2Parameter param = new DB2Parameter(“TitleId”,DB2Type.VarChar);param.Direction = ParameterDirection.Input;param.Value = txtParam.Text;dbCmd.Parameters.Add(param);dbReader = dbCmd.ExecuteReader();

F I G U R E 1 0

IBM ADO.NET Provider Continued from page 27

ADO.NET is the standard

method of data access for

the .NET platform.

28 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 29

dbCmd.CommandText = “CALL GetAuthorName(?,?)”;// lines snippedDB2Parameter oparam = new DB2Parameter(“AuthorName”,DB2Type.VarChar);oparam.Direction = ParameterDirection.InputOutput;oparam.Value = “”;dbCmd.Parameters.Add(oparam);dbCmd.ExecuteNonQuery();MessageBox.Show( oparam.Value.ToString());

F I G U R E 1 1

TThhee LLiinnkkssU2UG Knowledge Basehttp://212.241.202.162/kb/kbhome.wsp

Wychbooks demo http://www.brianleach.co.uk

developers need to be very carefulespecially when processing multival-ued data.

One particular difficulty is contention:ADO.NET uses optimistic concurren-cy, which differs from that used inmost multivalued applications. Wher-ever possible, ADO.NET will use timestamp columns to improve perform-ance when testing for changes, butthese are not supported by the U2databases. And even with these, con-tention is the bane of ADO.NET devel-opers. I recommend Expert One to

One Visual Basic 2005 Database Pro-gramming by Roger Jennings (WroxPress) to anyone going down this path.

Native protocols, including UO.NET,that understand MultiValue conceptsand data offer a safer route for updat-

ing and should form the backbone oftransactional applications. But, forselecting and presenting data, callingstored procedures and integrating intoa broad range of tools and technolo-gies,ADO.NET is a promising new addi-tion to the U2 stable. IS

BRIAN LEACH is an independent

consultant working in the UK. He is

the current President of the IBM

International U2 User Group. You

can find out more at http://

www.brianleach.co.uk.

International Spectrum University

WEBINAR SERIESInternational Spectrum University

WEBINAR SERIESBack-To-Basics Series

The Back-To-Basics courses offer funda-mental MultiValue knowledge comprisingthe backbone of the environment. Thisis a great place to start if you are newto MultiValue or have been working inMultiValue for a while but need arefresher of the fundamentals.

MultiValue Programming SeriesThe MultiValue Programming coursesare targeted to beginner and experi-enced programmers. This is where you can get started if you are new to programming in the MultiValue environment. Experienced programmerswill find advanced topics of interest.

MultiValue Administration SeriesThe MultiValue Administration Series is aimed at those who are involved with day-to-day administration of the MultiValue database environment. Eachcourse will include the following keytopics: file maintenance (creation, sizingand resizing), managing users, managingprinters, managing foreground and background processes, backup, locking,working with persistent and non-persistent connections.

MultiValue Reporting SeriesThe MultiValue Reporting Series focuseson getting information from your MultiValue application to other report-

ing environments. There are a variety oftools available to offer better ways oflooking at the information contained inyour MultiValue application if we canget this information to them or exposeyour information to them.

Beyond MultiValue SeriesThe Beyond MultiValue Series takes you into the world of the Web, .NET,integration environments and more.

Not Just For MultiValue SeriesThe Not Just For MultiValue Series presents topics of general interest regardless of your computing environment.

Visit www.intl-spectrum.com to finddates and times of available webinars

30 � INTERNATIONAL SPECTRUM MARCH/APRIL 200830 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

System Resources • BI can bring great benefits toyour organization,but be aware thatthe additional processing involvedin this analysis will either requiremore processing on your existingsystems or additional systems to off-load the processing to, or somecombination of these.

ApproachIn this article, we will explore some ofthe tools and approaches that can beused to enable your MultiValue applica-tion to participate in BI,along with someof the issues and benefits of eachapproach. Our focus will be on how thevarious tools that you have at your dis-posal can be made to access your Multi-Value data. It is hoped that this willassist you in choosing a path to BI thatwill be successful and beneficial for you.

We will start by looking at the questionof Data Warehousing or a Data Mart vs.accessing live data dynamically. Forthose who find the Data Warehouse orData Mart a compelling option, we willdiscuss ways to get your data out of yourMultiValue environment into a relationaldatabase, including considering thequestion of which system controls thecopying of data. Then, for those whowant to work directly against the livedata using dynamic access, we will dis-cuss different tools and technologiesthat can be used to present your Multi-Value data directly to end users. All ofthese,of course, can access the data in aData Warehouse or Data Mart.

Copy or Live?The first question that you need to askis whether you want to do your BI

• Standards protect your invest-ment and ensure its relevance intothe future.

• Resistance to change is oftenreduced when users can use toolsthat they are already familiar with.

Culture• BI changes the dynamics of yourcompany. It puts information, andtherefore power, in the hands ofmore people. It may challengeassumptions and deep-rooted cor-porate beliefs. You will need towork with both your IT staff andend users to ensure the bestreturn on this investment.

Considerations for Business Intelligence

When considering a BI solution, youneed to look at a number of issues:

Standards• Standards enable a larger set ofsolutions to work with your dataaccess layer. You probably alreadyhave invested in tools that canwork with them.

• The more your solution uses stan-dards, the more you will find thatthere are people who understandand can work with the solution.

B Y R O B E R T H O U B E N , F U S I O N W A R E C O R P .

MultiValue Participationin Business IntelligenceWhat is Business Intelligence?Simply put, Business Intelligence (BI) is a term that refers to processes, platforms,and tools that enable a business to analyze,understand, and manage their businessbetter in order to reduce costs and/or increase revenues.

BI can be as simple as putting a report on an employee’s desktop that they canrun once a day to see certain key information that reflects how the business isdoing. Or, it can be extremely complex, involving platforms that involve multiplecomponents and servers and require client components to be installed, config-ured, and maintained.

Regardless how complex the approach, the data in your mission–critical MultiVal-ue system contains key information about the health and performance of yourbusiness and must be included in whatever you use as a BI platform.

Ultimately, BI is about reporting.The reports might be in the form of an asynchro-nous alert that sends you an e-mail or updates an RSS feed on your business portal,or it may be something that your staff has to select and run on a periodic basis. Itmay occur hourly, daily, weekly, monthly, or even less frequently.

Having a successful BI strategy really requires a willingness to learn and change.The things that you originally think are key indicators may turn out to be symp-toms of the real indicator. Sometimes you find that it is the data you originallyidentified plus something that you weren’t initially aware of. Flexibility is the key.In larger organizations,you need to involve both management and users to get themost from your initiative. It is also imperative that you have proper access toenough of your data to allow you to explore and learn.

activities on a copy of the dataor against the live data. The realquestion is: Data Mart/DataWarehouse or Dynamic Access?

Live DataLive data is never stale anddoes not get out of sync. Livedata is easier to administer. Itdoes not require additional sys-tems or disk space.And, it typ-ically involves less networkbandwidth.

On the other hand, reporting againstlive data can put load on a server thatmay not be desirable. Also, there aretimes when there is value in workingwith a stable snapshot. The data youare working with will change throughthe course of the day if you do not fil-ter out new orders that have come insince you started your analysis. Thiscan lead to changes in aggregate datathat can make it hard to correlate dis-parate views.

Copied DataCopied Data (often referred to as aData Mart or Data Warehouse) has anumber of benefits. It provides youwith a consistent snapshot to workwith. It off-loads processing from yourMultiValue system to a (usually) rela-tional system. It allows you to buildcustom reports using skills that arereadily available on the open market.

The downsides are that you requireadditional systems,disk,network band-width, and administration to build andconfigure this type of system.

There is an additional benefit to thisapproach for those companies whofind themselves subject to Sarbanes-Oxley (SOX) requirements. One chal-lenge that SOX brings is that any timea report is used to support a decisionthat is made, that affects SOX require-ments. You must retain the ability toregenerate this report. Doing thisagainst live data is nearly impossible,unless you can cleanly time stamp allrelated data to a level of granularitythat supports re-querying it. And you

cannot then delete any of the data thatcontributed to the report.

Using an offline copy of the dataallows you to easily archive a backupof the relational databases, makingregenerating of the reports for SOXpurposes much easier.

Or BlendedWhy choose when you can have both?

Some users develop a system that startswith a Data Mart, but allows them todrill into live data if they want an up-to-date refresh of their data view. Thisrequires more effort to design and build,but gives you the best of both worlds.

In some cases, users will import datainto a spreadsheet,and then work withthat data through pivot tables or otherfeatures of the spreadsheet. For small-er data sets (that will fit in a singlespreadsheet), this can be an ideal solu-tion. It allows you to work offline witha snapshot, but allows you to refreshyour view with current data at will.For larger data sets, you will need tohave a database to hold the snapshot,with a strategy to refresh your viewwith live data as needed.

Copying Your DataThere are a number of tools and tech-nologies that will enable you to copyyour data to a relational database.Some questions you need to askinclude: Which system needs to con-trol the copying? Does the copy needto happen in real time? Do you needto go both ways?

That last question is technically outsidethe scope of normal BI, but if you arelooking at an overall integration solu-tion, this is another factor to consider.

In some cases, you will findit most beneficial to gowith a blended approachthat uses a one-way prod-uct to update your relation-al data mart with your Mul-tiValue data, and use othertools to build out accessthat needs to update the

MultiValue system.

Controlled By Your MultiValueSystemFusionWare Legacy2SQL Bridge allowsyou to control the copying of data to orfrom a relational database from withinyour MultiValue programs. An API con-sisting of MultiValue Basic subroutinesis used to take the place of OPEN,READ,WRITE, SELECT, and READNEXTstatements enabling high-performance,real-time access to a relational table asthough it were a MultiValue file con-taining single-valued data.

This is ideal for those situations whereyou want incremental changes to beupdated to your relational database. Italso allows you to pull relational databack into the MultiValue program asthough it were a MultiValue recordwith single values in it.

This solution allows you to controlaccess from within your MultiValueapplications and copy the data either inreal time or on a batch basis. It is alsobidirectional. The strength of this prod-uct is its performance and flexibility.

Controlled by Non-MultiValue SystemFusionWare Direct mv2SQL allows youto transfer data from your MultiValuesystem to SQL Server, Oracle, DB2, orMySQL directly. It can be run stand-alone, as a SQL Server DTS package, orfrom within SSIS. This solution allowsyou to perform batch updates of yourrelational data mart or data warehousewith data from your MultiValue system.This is a one-way only solution; it doesnot update your MultiValue system.Thestrength of this product is that it willcreate and configure your target tables

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 31

Continues on page 32

Having a successful BI strategy really requires

a willingness to learn and change.

32 � INTERNATIONAL SPECTRUM MARCH/APRIL 200832 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

based on how and what you mappedfrom your MultiValue database.

You can use the FusionWare DirectADO.NET Provider to build out an SSISpackage that does the transfer for you,allowing you to combine it with othercopies that you may be doing using SSIS.This allows you to perform batch updatesof your relational data mart or data ware-house with data from your MultiValue sys-tem.It is a bidirectional solution.

Or, you can use other products, likeFusionWare Direct JavaAdapter andother Fusionware middleware tech-nologies, to enable the tools of yourchoice to access your MultiValue data.These tools are all bidirectional andallow either batch or real-time updatesto occur.

Presenting Your DataYou have a number of options for pre-senting your data.

Microsoft Excel This is probably the tool of choice foractually working with and analyzingbusiness information. The good newsis that you can access your data direct-ly from within Excel. You can alsohave Microsoft SQL Server ReportingServices serve up your report as anExcel spreadsheet. SharePoint datathat is exposed through the BusinessData Catalog integrates seamlessly

with Excel. There are many roads togetting your data into Excel.

Microsoft SQL Server ReportingServicesMicrosoft allows you to access Report-ing Services in two ways.First, you canaccess it through a Reporting ServicesWeb Portal. This allows users withnothing more than a browser to viewthe data and request that it be servedas HTML, PDF, Excel, and other for-mats. The formats can be extended bythird parties.

Secondly, there is a viewer control thatcan be embedded in a Windows Formsor Web Forms application to allow anapplication to include a report. In thisway,you can put critical information inplaces that your staff will find conven-ient to access repeatedly through theday.By embedding this control in a cus-tom web part, you can even include itin a Microsoft SharePoint portal.

Microsoft Office SharePoint ServerSharePoint has a number of ways that youcan expose data for your staff to access:

• You can put data into the Busi-ness Data Catalog, accessing it asWeb Services through the Fusion-Ware Integration Server, or asADO.NET data using the Fusion-Ware Direct ADO.NET Provider.

• You can access it using InfoPath,using the FusionWare DirectADO.NET Provider.

• Or, you can create custom WebParts that access your data usingthe FusionWare Direct ADO.NETProvider.

Third Party BI PlatformsThe following 3rd Party BI Platformswill enable you to access the datathrough the FusionWare DirectADO.NET Provider.

• Cognos

• Business Objects

• Crystal Reports

• And more…

MultiValue Participationin Business IntelligenceContinued from page 31

Other PortalsSo far, this article has been focused onmostly Windows-based solutions.FusionWare’s Direct products and theFusionWare Integration Server supportnon-Windows clients and middle-tierservers as well. For instance, IBMLotus Notes can access your MultiVal-ue data, and there are many otherthird-party, non-Windows solutionsthat we support.

SummaryBusiness Performance Managementenhances processes by creating betterfeedback loops. Continuous and real-time reviews help identify and elimi-nate problems before they grow. Onthe other hand, it provides forecastingabilities to help the company gaincompetitive advantage and increasethe opportunity to meet or exceedearnings projection.

Providing data with Business Intelli-gence provides the what-if scenariosfor analysis in predicting outcomes toyour corporate goals. ImplementingBusiness Intelligence successfully isthe challenge. As discussed, each tierwithin the concept of delivering datato the data consumer is complex andneeds to be defined from a variety ofperspectives to achieve a successfuloutcome.

Coming NextOver the years, we have found thatmany of our customers have, throughmergers and acquisitions, accumulateda plethora of disparate systems. Wehave a wealth of experience in assist-ing these customers in quickly andeffectively bridging these systems. Inour next article, we will take a look attools and options for integrating yourMultiValue systems with other applica-tions and systems.

We look forward to seeing you at theInternational Spectrum Conference inNewport Beach this year.Please visit usat booth 108 or attend one of ourknowledge sessions. is

PICK PROGRAMMERSUrgently need PICK professionals

for the following positions:Tampa, FL . . . . . . . . . . Salary to 70KLouisiana . . . . . . . . . . Salary to 65KNorth Carolina . . . . . . Salary to 70KBuffalo, NY . . . . . . . . . Salary to 80KAtlanta, GA . . . . . . . . . Salary to 80KNew Jersey . . . . . . . . Salary to 80KLouisville, KY . . . . . . . Salary to 80KLos Angeles, CA. . . . . Salary to110K

Chuck Okeson - VPS O F T W A R E S E A R C H

at 8 0 0 - 9 4 9 - 5 4 2 3 [email protected]

In the November/December 2007

issue of International Spectrum

magazine, Brian Leach discussed

UniVerse triggers. He explained how

triggers originated in the SQL world

and are basically just code that is

automatically called every time a file is

updated. Just a few examples of how

they have been used are to build audit

records, to force data validation and

consistency, and to add full text index-

ing. Brian also provided some very

valid design and coding considera-

tions. In this article, I will provide

examples of how to write a trigger in

Reality and discuss some differences

between using a trigger in UniVerse vs.

Reality.

Triggers were first made available inReality in July 2003 with release 10.0.Like all triggers, they are ‘triggered’ byany process that updates a file – includ-ing SQL – but they were designedspecifically for the Reality MultiValuedatabase, and not for SQL tables. Thedocumentation for Reality triggers,therefore, is not found in the RealitySQL Reference guide,but in the RealityUser’s Reference Manual. MultiValuedevelopers will find the syntax morefamiliar, and the use is not as restrictiveas it doesn’t adhere to all SQL rules.This is both good and bad.A program-mer must be more diligent about goodcoding practices like file locks and givecareful thought about what a trigger isgoing to be used for. I refer you back tothe section in Brian’s article titled ‘Per-formance’.

Creating a trigger is a two stepprocess.The first step is to write, com-pile, and catalog a Basic subroutine.The second step is to attach that sub-routine to a file. The subroutine must

B Y C A N D I H A R TReality TriggersReality Triggers

34 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

001 SUBROUTINE IM.TRIGGER(IM.REC)002 * Trigger called from IM file003 * Writes an audit record to IM.AUDIT004 * This is a PRE-WRITE & PRE-DELETE trigger 005 * 006 INCLUDE FILE.EQUATES IM007 EXIT=0008 GOSUB ASGN.VALS009 IF EXIT THEN RETURN010 *011 BEGIN CASE012 CASE EVENT=”DELETE”013 GOSUB WRITE.AUDIT014 CASE EVENT=”NEW”015 GOSUB WRITE.AUDIT016 CASE EVENT=”CHANGE”017 IF NEW.QOH # OLD.QOH THEN GOSUB WRITE.AUDIT018 END CASE019 RETURN020 *021 *========================================022 ASGN.VALS:023 OPEN ‘IM.AUDIT’ TO AUDIT.F THEN024 PORT=SYSTEM(18)025 FILEVAR=ACCESS(1)026 ITEM.ID=ACCESS(10)027 DELETE.FLAG=ACCESS(12)028 NEW.ITEM=ACCESS(16)029 BEGIN CASE030 CASE DELETE.FLAG031 EVENT = “DELETE”032 CASE NEW.ITEM033 EVENT = “NEW”034 CASE 1035 EVENT = “CHANGE”036 END CASE037 READ ORIG.REC FROM FILEVAR,ITEM.ID ELSE ORIG.REC=’””038 OLD.QOH=ORIG.REC<IM.QTY.ONHAND> + 0039 NEW.QOH=IM.REC<IM.QTY.ONHAND> + 0040 END ELSE041 EXIT=1042 END043 RETURN044 *045 WRITE.AUDIT:046 AUDIT.REC=’’047 AUDIT.REC=SYSTEM(50) ;* User048 AUDIT.REC<2>=OLD.QOH049 AUDIT.REC<3>=NEW.QOH050 AUDIT.ID=ITEM.ID:”*”:DATE():”*”:TIME():”*”:PORT051 WRITE AUDIT.REC ON AUDIT.F,AUDIT.ID ON ERROR NULL052 RETURN053 *054 ENDEOI 054

F I G U R E 1 - Sample embedded sub-routine used to track inventory quantity changes

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 35

be cataloged in the account in whichthe data file resides.Though on Realitythe default catalog is a global catalog, ifyou want the trigger to run from otheraccounts that have Q pointers to yourdata file,you need to copy the MD itemfor the cataloged subroutine into thatother account.

Reality DifferencesReality triggers can request input.For example, when creating anaudit file, the trigger may ask for areason for the update. I would cau-tion against using an input state-ment on a file that could also beupdated with SQL,ODBC. etc. with-out knowing how the inputprompt would be handled by theseother processes.

You can debug Reality triggers. Bycreating the trigger subroutinewith a debug statement in it, youcan step through the program dur-ing testing to assure the code’saccuracy. You can simply edit arecord and watch it go through thecode when you file it.

You don’t have to delete and recre-ate a Reality trigger if you want tochange the subroutine.The changeswill take effect when you recompileyour program.

The subroutine has only oneparameter, and the ACCESS func-tion is used to provide informationabout the record being updated.

The Trigger SubroutineThis is a regular Basic subroutine,but itonly accepts the single parameter thatis the record that is being (or was)written. This is called an EmbeddedBasic Subroutine and is the same typeof subroutine that is called from attrib-ute eight of a dictionary item.All embed-ded Basic subroutines use the ACCESSfunction to retrieve the informationabout the record and its status.

Figure 1 is a sample embedded subrou-tine that is used to track changes to thequantity on hand in an inventory file

(IM). Since Reality does not pass theoriginal record in as a parameter, theORIG.REC must be read from the filebefore the file is updated, so this mustbe a PRE-WRITE and PRE-DELETE. Ifthere are any errors opening or read-ing the file we just want to returnwithout writing the audit record, notabort.The Audit file ID is unique and isa new record so no file locking isrequired.

Attaching the Trigger to the FileThe Reality command to attach a trig-ger is the same command as UniVerse,though the syntax is simply:

Where the trigger name is the name ofthe cataloged subroutine, and the typemay be PRE-WRITE, POST-WRITE, PRE-DELETE, or POST-DELETE.

Once the trigger has been created youwill see the subroutine name in attrib-ute<4> of the dictionary of the file.The command LIST-TRIGGERS is sup-plied by Reality to display the triggerson a specific file. (Fig. 2)

As Brian mentioned, MultiValue pro-grammers are not used to looking fortriggers to find all file updates in anapplication, but I have adhered to thefollowing conventions:

I name my program with the filethat the trigger is attached to(IM.TRIGGER).

I use a case statement to determinethe event so I only need one trig-ger subroutine per file.

I put a comment in the subroutinewhich also indicates which file thetrigger is called from.

I have written a program to gothrough all files in an account andcheck for triggers in attribute<4>so I can LIST.ALL.TRIGGERS.

For further examples, I recommendyou review the documentation andEmbedded Basic Examples in the Data-Basic Reference Manual.That gives anexample of using named commons

within embed-ded basic pro-

grams, and INPUTERR when a ‘fatal’error occurs. When used in a PRE-WRITE or DELETE trigger the INPUT-ERR statement will stop the update onthe file that has the trigger, and theerror message will print on the screen.Again, be cautious if that file is updat-ed by GUI screen drivers or othertypes of databases. is

C A N D I H A R T has

been an independent

consultant in Southern

CA since 1980. She was

known as Candi Piech

when she served as president of

CDBMA. She may be contacted at

[email protected]

:CREATE-TRIGGER IM IM.TRIGGER PRE-WRITE[1901] ‘PRE-WRITE’ trigger added to file ‘IM’.

:LIST-TRIGGERS IM

File ‘IM’ has the following triggers:

PRE-WRITE: IM.TRIGGER

1 trigger(s) listed.

:ED DICT IM IMTop.L4001 D002 231409,3001,110003 B3 3001,1004 *IM.TRIGGER

F I G U R E 2 - The command ‘LIST-TRIGGERS’ displays the triggers on a specific file

CREATE-TRIGGER filename trigger-name trigger-type

2.

3.

4.

1.

Why Change Back Ends?Why would someone want to changetheir OpenInsight application’s backend database? There are a number ofreasons, almost all to do with largeamounts of data and the resulting per-formance needs.

The standard Linear Hash database thatcomes with OpenInsight is extremelyrobust. Individual files can be set withtheir own frame size, expected numberof records,and resize thresholds,allowingfor extremely flexible tuning.The files areself resizing, work well, hardly ever getGFEs when using one of Revelation’s net-

work products, and are generally just ‘setand forget’. However, when very largeamounts of data are stored within a singleOpenInsight table,performance on thesetables can degrade.

The specific degree of degradationdepends upon a number of factors,including type of data stored (text orimages), the average size of the recordsas compared to the frame size, and thenetwork packet read size as comparedto the Linear Hash frame size.However,it appears that as the number ofrecords approaches ten million in a sin-gle file, performance begins to suffer.

IBM’s U2 data servers offer multiple filetypes and hashing schemes, and workextremely well with large amounts ofdata, offering an increase in perform-ance. (They also work well with smallamounts of data, but, for most Revela-tion users, the price difference between

IBM’s UniVerse and UniData dataservers also offer their own MultiVal-ue databases.These databases scale tohandle much higher volumes of datawithout performance degradationand offer users the ability to specifydifferent types of filing systems andhashing algorithms.

In early 2007,Revelation Software andIBM announced a partnership andRevelation released its OpenInsightfor U2 product. This product com-bines OpenInsight’s graphical toolsetwith IBM’s U2 back end. It provides acombination of the best of bothworlds: cutting edge, easy to use, andMultiValue friendly graphical front-end and tools, and a powerful, highvolume, feature rich back end.

Since that time, users have purchasedthe product and created applications.Users have also purchased theOpenInsight front-end for use withtheir existing U2 data servers, andthese pages have shown how to dothat in the past.However, the specificsof converting an existing OpenInsightapplication to use an U2 data serverhave not been detailed before.

So, in this article, we will explain andgive detailed instructions on how youcan change an OpenInsight applica-tion’s database from Linear Hash to aU2 data server.

SELECT BOOK_SALES.ID, SURNAME, FORENAME, TITLE_ID, QTY→ FROM BOOK_SALES LEFT JOIN BOOK_SALES_SALE_ITEMS→ ON BOOK_SALES.ID = BOOK_SALES_SALE_ITEMS.ID;

F I G U R E 1 – Copy_Table_FS command

Orig_TableName The name of the original table as it exists in OpenInsight.

To_Volume The location to which the file should be copied. This name matches the name given in the U2 Connector screen.

Database The database name of the new table.

New_Tablename The new name for the table

Lock Flag A Boolean value indicating whether or not the source file should be locked during the copy

Delete Flag A Boolean value indicating whether or not the source file should be deleted after the copy.

Overwrite Flag A Boolean flag indicating that it is ok to overwrite the file if it already exists.

Exist_Flag A Boolean flag indicating the file must already exist.

Status Return value indicates success or failure

IXStrip_Flag A Boolean value indicating whether or not the source file’s indexing information should be stripped. Not applicable to U2.

F I G U R E 2 – Copy_Table_FS parameters

OpenInsight, Revelation Software’s flagship product, provides users and

developers with a feature-rich graphical design environment. It also pro-

vides users and developers with a powerful MultiValue database. This

database, which is unofficially known in-house as ‘Linear Hash’, easily

supports hundreds of tables and millions of records in an application.

36 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

SSwwaappppiinngg your

UU22UU22OI System’s Database to

B Y M I K E R U A N E , R E V E L A T I O N S O F T W A R E

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 37

the products doesn’t justify the switch.)More information regarding IBM’s Uni-Verse and UniData data servers can befound at the website http://www-306.ibm.com/software/data/u2/.

Converting the DatabaseOnce you’ve decided to change the databack end, the actual process of movingthe data is not that difficult at all.

First, you must set up a connection to aU2 data source.Instructions on how to dothis is described at the Revelation.comweb site under the Tutorials section.

The specific command used to copy atable from OpenInsight to a U2 backend is the COPY_TABLE_FS command(fig. 1). The COPY_TABLE_FS com-mand copies the tables from one filingsystem (in this case, OpenInsight’s Lin-ear Hash) to another (in this case,IBM’s UniVerse).The COPY_TABLE_FScommand takes the parameters shownin figure 2.

From an OpenInsight point of view, itdoes not matter whether the back endused is UniVerse or UniData. However,these products have differentstrengths and features. Be sure tocheck IBM’s web site for the featuresets and which one is appropriate foryour data needs.

The copy process does a number ofthings. First, it copies the data from theOpenInsight database to the specifiedvolume. Second, it creates the shadowdictionary needed by the OpenInsightfor U2 connector.This shadow diction-ary is created in the Shadow Dictio-nary location specified in the U2 Con-nector window. Finally, the copyprocess creates dictionary records forthe F type fields that exist in the origi-nal OpenInsight tables. Symbolic/Cal-culated fields are not created automat-ically and must be recreated by hand.OpenInsight’s Symbolic/Calculatedfields have different functionality thanmost U2 calculated fields and do notusually translate directly.

Once the tables have been copied, theoriginal Linear Hash files should be

The 300K RPM Disk Drive

Announcing affordable solid state

storage solutions for enterprise servers

featuring 10-30 times the performance of

15K hard disks for data intensive

applications.

The next generation starts today.

www.ManagedFlash.com

800-470-2756

Continues on page 38

The longer answer is a little moredetailed.

An OpenInsight application is com-prised of many entities. For example, ifyour application has a menu,a screen,apopup, and a report, then the applica-tion contains at least six entities (yes,wecounted correctly). These entities haveto be stored somewhere, and this some-where is the OpenInsight Linear Hashdatabase.Behind the scenes of an applica-tion, these are tables named SYSREPOS,SYSREPOS-WINS,YSREPOSWINEXES,SYS-REPOSREPORTS,and so on.

OpenInsight has a series of tables andprograms that sup-port our repository.The repository sup-ports and providesour inheritancemodel, maintains theuses and used-byrelationshipsbetween the enti-ties, security andaccess rights, plusmuch, much more.The repository andall its related compo-nents are still main-tained in a LinearHash database. Thesource code, symbol

tables, and object code are still locatedin Linear Hash tables.

The bottom line: the OpenInsight data-base does not go away completely.Nearly all the application componentsstill remain in Linear Hash tables; theapplication database is what uses theU2 data server.

Other Back End Choices foran OpenInsight ApplicationWhile IBM’s U2 data servers make anexcellent back end for an OpenInsight-based application, is it the only choice?No. But it is the easiest to use becausethe U2 products are MultiValue productsand use the same row- or record-basedaccess method,as opposed to a set-basedaccess method such as found in SQL.

the back end (as in true Client Servercomputing), or on the local worksta-tion, if it is only a subset of data.

With regards to indexes, OpenInsighthas a number of explicit index com-mands, such as BTREE.EXTRACT andCOLLECT.IXVALS, and implicit indexcommands, such as SELECT, which willuse indexes when indexing is availableon the tables. Revelation’s OpenInsightfor U2 connector will make the appro-priate call changes.

Does the OpenInsight’s Data-base Go Away?So, once the application data has beenmoved to a U2 back end, does thatmean that OpenInsight’s database is nolonger used? The short answer is no.

detached by using the Database Man-ager. Once they have been removed(not deleted!), use the U2 ConnectionSetup screen to attach the new tables.At this point, your system should workas it did before, except for the fact thatit is using a U2 data server as the back-end database.

Figure 3 shows a connection defined fora UniVerse server, and Figure 4 shows aprogram listing that can be used as astarting point for a developer whowants to move all the tables from theOpenInsight-based EXAMPLES applica-tion to a UniVerse back end. It can easi-ly be modified for your particular needs.

What About My Programs?Once the data has been moved back toa U2 data server, all of the existing pro-grams, reports, windows, popups, etc.will still work as they did originally.With a different back end, one mightthink that there were some codechanges that would be necessary. Infact, this is not necessary.

Revelation Software’s OpenInsight forU2 connector helps to optimize yourBasic+ code as it applies to the data onthe U2 data server. In programs thathave SELECT statements, the connectordetermines whether the statement willrun faster if the selects are resolved on

F I G U R E 3 – A connection

defined for a UniVerse server

F I G U R E 4 – Example program: Moves all tables to UniVerse back end

38 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

Swapping your OI System’s Database to U2 Continued from page 37

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 39

Using Revelation’s Client/Server Work-space to connect to one of these data-base back ends will certainly work, butwill require changes to the underlyingdata access code. For example, wheremost MultiValue developers wouldopen a file, then read a record from thefile handle providing the key, the SQL-based database developers wouldSelect a data set from a file where a cer-tain criteria was met.

Is a U2 Back End for Everyone?So, should every user of OpenInsightgo out and switch their back end to aU2 data server? While this author sus-pects that IBM would not be againstthe idea, it is not a practical solution orneed for most users of OpenInsight.

However, for those who do have theneed for a larger, faster data store, theU2 data server is an impressive backend to an OpenInsight front-end.Together, they create applications thatare truly world-class. IS

40 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

[ Webonomics 101 ]

Hence, I got rather tickled when I saw Microsoft going afterYahoo to stand against Google.This, dear me, was irony.

A huge desktop near-monopoly (90% of the planet’s PCs)announces the possible deal as a great opportunity to createcompetition in the internet market. A search engine near-monopoly (55-62% of searches) frets that the deal would beanti-web. Both companies sport brand names that are icon-ic. Heck,“google” is now averb. Mixed in with thisbrew of self-righteous-ness, Google wants topartner with Yahoo tostand against Microsoft’sunwanted, uncompeti-tive courtship.This typeof irony is so thick, youcould plant a rose bushin it.

Now, I’m sure some ofyou have noticed that I’m

somewhat of a fan of Google and its deployment over theWeb. I still think that Google’s done a great job.There arevery few companies that deservedly succeed through acombination of clever innovation, useful products, andimpressive vision. It’s Apple, but without worrying aboutretail storefronts. So, with an efficient use of style sheets,XML, Ajax, web services, and a keep-it-simple-Sammy men-tality,Google has morphed into an astonishingly productiveand profitable workhorse for the masses, people and com-panies alike.

But competition is good for us.We get new features and wesee motivated development.

And ironies of ironies, Microsoft believes that it can be theforce creating competition rather than impeding it. If itseems like Google has been developing features and serv-ices rapidly before, then what pray tell are we likely to seein the future?

This all ignores the fact that if Yahoo and Microsoft com-bine forces, there will be one less big search engine fromwhich to choose. Not exactly competitive there.

Besides, is MicroHoo still too, well, micro? After all, theirsearch engine market shares combined would still be less

than half of Google’s.

Despite Microsoft’s affec-tion and embraces, Yahooplays the field. Smart busi-ness sense. Why buy themilk if the cow yaddayadda yahoo? No, theremay actually be othercompanies that couldmake a viable argument tomerge with Yahoo. Butlet’s face it, who else has

the cash for this cow?

Web - = 1A pet peeve of mine is the

misuse of the word “irony.”

Some people say that a

situation is ironic, when with

all due respect, it merely

appears coincidental. There’s

nothing contradictory or

incongruous.

B Y M E L V I N S O R I A N O

But competition is good for us.

We get new features and we see

motivated development.

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 41

Amazon? Apple? AT&T? Google can’t do it, because that lit-tle thing called antitrust (ask Microsoft) could and shouldbe an issue.

What would I like to see in a merged MicroHoo? Well,Yahoo knows more about news, dating, videos, and othersquishy content. Despite the NBC connection, Microsoft’sstill a tech powerhouse through and through. I think I’dlike to see Microsoft listen to Yahoo, spend money on whatYahoo thinks is best, but use its technical prowess to do itbetter and cheaper.

For advertisers, it would certainly motivate Google to staycompetitive and not simply throw its weight and invoicesaround.After all, companies spend, ahem, $40 billion annu-ally on online advertising. And if advertising comes intoplay, what about tossing AOL into the merger maniac’sstew? Companies would definitely have a compelling argu-ment to work with an instant messenger juggernaut com-bining MSN+Yahoo+AIM! The combined services and fea-ture set of chat software could finally meet the needs ofhard-nosed chatterers the world over.

It could be fun.

I grew up playing musical chairs.We kids would stalk thechairs, studying how best to move forward, how best tolunge, and how to trip and shove opponents without rais-ing the ire of the authorities, a.k.a. parents. Cavalier andsomewhat blood-thirsty teenage kids, supposedly watchingout for us, urged us to greater aggressiveness, largely fortheir own amusement. Somehow, the dance of PC andInternet titans reminds of this devious ballet, with the reg-ulators just making sure we don’t hurt anyone and thestock market trying to squeeze every ounce of fun possiblefrom the sport.

Let the games begin! is

M E LV I N M . S O R I A N O works at Eagle

Rock Information Systems (ERIS), an Internet

Application Service Provider and WebWiz-

ard/MultiValue Developer. ERIS has de-

ployed enterprise-wide solutions on most

MultiValue platforms and operating systems. HTM-Mel

can be contacted at [email protected] and visited at

www.eriscorp.com. You can always call him directly at

ERIS’s Pasadena, Calif., offices: (626) 535-9658.

B Y C L I F T O N O L I V E R , C C P

42 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

In the last article, we

generated a CUST file

and indexed on the

STATE field (fig. 1) to

explore the perform-

ance effects of indexes.

Let's take a look at where this

index is stored and how we can

examine its contents.

In UniVerse, the indexes for each fileare contained in a directory whosename is simply the name of the fileprefixed with “I_”. For the file CUST,we would then expect to find a direc-tory called I_CUST somewhere. Bydefault,when you create the first indexfor a file, the index directory is createdin the same directory as the file. Wewill discuss later how to move theindex directory or the file itself toanother location without trashing yourindexes. For now, let's assume thedefault location.

If we “shell out” to the host operatingsystem level (DOS for Windows, SH forUnix) and examine the contents of ourcurrent directory (DIR for Windows, lsfor Unix),we see that in addition to the

data section CUST and the dic-tionary section D_CUST, thereis a directory called I_CUST(fig. 2).This is where all index-es for the CUST file reside. Fig-ure 3 shows the contents ofthis directory.

In our example, you see thatwe have two files in the I_CUST

directory: INDEX.000 and INDEX.MAP.

42 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

Warning! Just because you can now use the Editor tolook at indexes as if they

were records, DO NOTchange them and file them.

Part 2

Using UniVerseIndexes:

FIGURE 1

FIGURE 2 – I_CUST directory

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 43

The first index you create for the filegets names INDEX.000, the secondgets names INDEX.001, and so forth.

The mapping of the name STATE to thecorresponding index file is accom-plished by the INDEX.MAP file. In addi-tion, the INDEX.MAP file contains infor-mation about the index such as whether

is beyond the scope of this introduction,but suffice it to say that if you monkeywith it with an editor, Bad Things arelikely to happen.

The INDEX.000 file, which in thisexample is the index for the STATEfield, is implemented as a B-tree file,or what UniVerse internally refers toas a Type 25 file.As such, they are not

readily accessible as normal UniVersefiles. There is, however, a trick youcan use to access the information forreporting purposes on the number ofindex values and distribution of keysamong them.

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 43

FIGURE 4

FIGURE 3 – The contents of the I_CUST directory

Continues on page 44

� Tech tips� Job Posting � New Products� Corprate

Updates

e-xtra-xtra™

www.intl-spectrum.com

Stay on top ofIndustry News

Stay on top ofIndustry News

it still needs to be built (populated), is itsingle or multivalued, and so on.Most ofthe information you see when you usethe LIST.INDEX command comes fromthis file.The structure of the INDEX.MAP

44 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

In the VOC file, createan F type file pointerthat contains the rela-tive path to the indexof interest in field 2and, simply to be ableto use the pointer, thename of some dictionary in field 3. Iuse D_VOC because it's always there(fig. 4).This pointer can now be usedto view the individual key values as ifthey were regular UniVerse file records(fig. 5).

Warning! Just because you can nowuse the Editor to look at indexes as ifthey were records, DO NOT changethem and file them. Due to differencesin locking between real records andthe internal structures of B-trees, youare just asking for corrupted indexes ifyou ignore me on this one. Neither Inor International Spectrum will beresponsible in any way if you startchanging indexes via an F pointer andshoot your foot off!

That being said, since we now haveaccess to the indexes as if they weredata, we can do some (read-only)reporting on them. Figure 6 showshow to list the index values and seehow many CUST keys are in each one.It should be apparent that using thistechnique,you can use in the power ofRetrieVe reporting to get some valu-able statistics.

Using UniVerse Indexes Continued from page 43 One of the situations people acciden-tally cause is that of sparsely populatedindexes. Let's assume that our CUSTfile has a COD field that indicateswhether or not a customer is requiredto pay Cash On Delivery. Hopefully, thevast majority of our customers are notdeadbeats and use of this paymentdemand is rare. However, becausesome reports in the system select onthat field, it has been indexed.You can

see in figure 7 the problemthat this creates. Since this is a“Y” or “” field and very, veryfew records have it set to “Y”(only 300 out of 3 million inthis exaggerated example),there is a HUGE index con-taining almost all the recordkeys in the CUST file! You canimagine the processing timeand lock contention issuesany time you add or delete arecord to this file. Since99.99% of this file does not

have anything in the COD field and weassume almost all selects against the file,even with the criteria WITH COD = “”,are going to have to pass the entire fileto build sort keys, there is nothing to

be gainedby havingthe NULLindex.

One of theoptions

when creating (defining) an index isNO.NULLS.This tells the indexing rou-tines not to index this field if it is

FIGURE 5

FIGURE 6 - How to list the index values

FIGURE 8 - The sequence to define andbuild both indexes

FIGURE 7 - The number ofindexed records

As you work your plan throughout theweek, keep records.Write them down.At a minimum, make an entry each dayfor each of your published goals. Youwill be documenting your results(goals achieved). This is the mostimportant thing in this discussion.Later, if you are so inclined,you can addmore detail to your records about howlong you worked on what so you havesomething upon which to base futureestimates when you are asked howlong you think it will take to makesome modification.

At the end of the week, write a sum-mary of which goals were achieved,which ones were partially completedand how much was accomplished,and what unplanned situations werehandled, like those broken files fromthe system crash. Again, e-mail it toyour boss.

By doing this, or some variation of it,you are making your results as visibleas the hours you work. It clearlydemonstrates that you produce asmany, or more, results as the next per-son, even on those days you leave atfive o’clock sharp because it is yourturn to pick up the kids. It establishesyour reputation as a planner, someonewho is always using their head bythinking ahead.And, in the long term,it will teach you a lot about your own“personal software process” andreveal ways in which you can createeven more results without workinglonger or harder.

What it won’t do, however, is give youa way to keep some of your co-workersfrom wanting to lynch you when theboss starts walking around to theircubicles asking,“Yes, but what did youaccomplish last week?”

For that you will just have todepend on your charm—or the pho-tos from the office Christmas partytwo years ago. is

Clif NotesContinued from page 46

empty. Figure 8 shows the sequenceto define both indexes and build themfor the CUST file under these condi-tions. Since STATE will always containa value, we could have also usedNO.NULLS when we created it, eventhough it is not necessary. I have beencalled in situations where the systemused to work fine, with 1 to 3 secondresponse time for a particular screen.Then, it suddenly went to 15 to 45second response time this week.Whatis usually the case is that during somekind of maintenance or applicationupgrade, some indexes were droppedand then recreated and rebuilt, andthe NO.NULLS option was forgotten.

Second PrincipleWe can now state our second princi-ple of using UniVerse indexes:

“Always use the NO.NULLS optionwhen creating indexes unless youhave carefully considered the poten-tial size of the NULL Index and cantruly justify it.”

Next timeIn the next issue,we will explore index-ing on a multivalued field and indexesusing an I-descriptor, including index-ing the results of a TRANSlate. is

C L I F T O N O L I V E R brings overthree decades of in-depth experienceto his work in the information indus-try. His expertise includes projectmanagement and facilitation, technol-ogy management, application devel-opment, data warehousing, and strate-gic planning for information services.In addition to being a Certified Com-puter Professional, he is also wellknown as an instructor, speaker, andauthor for both technical and mana-gerial audiences. As a result of hisexperience with platforms utilizing avariety of programming languages,operating systems, and databases, heis well suited to help his clients identi-fy, evaluate, and implement effectivesolutions for a variety of problemsand opportunities.

The Straw Man is a term used for a mil-itary practice dummy. It is somethingthat can be cobbled together quickly,ripped to pieces, and remade as need-ed. My Straw Man is the meeting notes.Publish the notes in summary to all par-ties and tell them that you aren’t posi-tive you have it all right in your notes,i.e., ask them to rip it apart. Most peo-ple can’t write a top flight IT projectspecification. Almost anyone can pointat your notes and say, “Line three iswrong.We never sell single units.”

Once the Straw Man has been sav-aged—perhaps in more than one go-round—you can build your plan. Theneat thing is, you have done very littlework at this point.You sent one e-mailafter sitting in one meeting. Instead oftaking the entire project—win or lose—on to your shoulders, you have agroup doing the bulk of the functionalspecification for you.You have peoplestarting to feel connected to the proj-ect.You have some people besides youwho see a success as their success.This will make them more helpfulwhen we need to test or revise later.After all, it isn’t your project, it’s every-one’s project.

With your plan in hand,knowing it mayhave to be altered as you go, you havea chance at producing what the userswant on the first try. You’ve done itwith a small expenditure of effort, andyou’ve built up a lot of goodwill.

In the next installment, we’ll look atplanning tools, like flowcharts, pseudo-code, and RAD. is

CHARLES BAROUCH is

the CTO for Key Ally, Inc.

He is also Past President

of the U2UG and a regular

Spectrum Magazine

contributor.

CHARLES BAROUCH [email protected]

Consulting; (718) 762-3884x1

Why ProgrammersShould Plan Continued from page 13

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 45

46 � INTERNATIONAL SPECTRUM MARCH/APRIL 2008

What is her reaction? I mean, the oneafter the period of stoney silence.

You see? She doesn’t care that you stayedup all night logged into the system.

So what do people care about? Results.Plain and simple. In that last example,your boss didn’t care that you stayedup all night because you didn’t accom-plish anything. You produced zeroresults (other than calling your sanityinto question). She didn’t care that youstayed up all night a few weeks ago fix-ing a slew of broken files after a systemcrash, although even she might thinkshe did. She cared about the fact thatyou fixed them. Fixed files were theresults.After all, telling her,“Let ‘em staybroken until I wake up in the morningand have breakfast,” wasn’t really anoption, now was it? That is not to saythat a “thank you” or a “take tomorrowoff” isn’t appropriate and appreciated.But when the RIF (Reduction In Force)comes, the hardest working workersare not always the ones who make thecut. Assuming astute management, itwill be the people who consistentlyproduce the most and best results.

The key is visibility. We delude our-selves into thinking that working longhours counts because it is visible. Peo-ple see you in your cubical at 7:30 AM.They still see you there at 7:30 PM.Yet,results are harder to see. How do theyknow that you came in at eight,workeduntil five, and produced 30% moreresults than other employees workingseven to seven? You have to tell them.

How about this idea? At the first of eachweek, establish a set of goals of whatyou want to accomplish that week andhow you plan to do it. Write themdown. E-mail it to your boss. Not onlydoes it show him that you are some-one who looks ahead and plans ratherthan just coming into work and react-ing, but it gives him an opportunity toadjust your priorities. This is a goodthing. Come RIF time, you’ll be one ofthe ones remembered as “always seemsto know what I want.”

(All questions must be answered. Incomplete forms will not be processed. Complimentary subscriptions are

limited to U.S. addresses.)

1. What is your job function/title?

�� Principal/Owner �� Sales/Marketing

�� President/GM/CEO �� Programmer/Analyst

�� MIS/DP Manager �� Purchasing

�� Controller/Financial �� Consultant

�� VP/Department Head �� Other

____________________________

2. Is your company a (check one):

�� Computer System Supplier �� Dealer/OEM/VAR �� Software House

�� Consultant �� End User �� Other ________________

3. What MultiValue Databases does your company use? (check all that apply)

�� D3 �� Native MultiValue �� Reality �� Other _____________

�� jBASE �� uniData �� UniVerse �� uniVision

5. What major business/industry most clearly describes your company?

�� Accounting �� Medical �� Direct Marketing �� Legal

�� Banking/Finance �� Dental �� Construction �� Retail

�� Education �� Insurance �� Other ____________________________

6. What are your firm’s approximate gross annual sales?

�� Under $500,000 �� $500,000 - $1 million

�� Over $1 million - $5 million �� Over $5 million - $10 million

�� Over $10 million - $25 million �� Over $25 million - $100 million

�� Over $100 million - $500 million �� Over $500 million

IS 3/08

NAME TITLE

COMPANY

ADDRESS

CITY STATE ZIP

PHONE FAX

E-MAIL WEB SITE

SIGNATURE DATE

FREE

SU

BSCR

IPTI

ON Subscribe on-line at

www.intl-spectrum.comor

fax this form to (603) 250-0664and keep Spectrum magazines

coming FREE for 1 year!!

Clif NotesContinued from page 47

Continues on page 45

Nobody cares how hard you work.

You work on a conversion to move a

MultiValue application from one plat-

form to another. Unfortunately, an

uncontrolled salesman at the VAR

promised the customer that since the

old system and the new system are

both “Pick,” it was simply a matter of

copying everything over and recom-

piling all the programs. Piece of cake.

Of course, when you and your otherteam members get into it, you find thatthe application not only plays everytrick in the book with the spoolerinterface, which the new system doesnot have, but one of the modules is

heavily dependent on Runoff, whichthe new system also does not have.Then you find that apparently someidiot found an old copy of the GreenBook, figured out how to use the oldBatch processor, and the applicationutilities are riddled with B/ADD verbsand batch strings. Of course, not onlydoes the new system not support this,but you don’t even have a copy of theGreen Book to help in figuring outwhat this stuff is doing so you canrewrite it in Basic.

Then, add the fact that the customerwas promised the go-live would hap-pen during a three-day holiday week-end, six weeks from now. The entire

team is now frantically working fromseven in the morning until nine or tenat night, including weekends, to meetthat deadline.And guess what?

Nobody cares how hard you work.

In the words of the old Hoyt Axtonsong, you work your fingers to thebone and what do you get? Boneyfingers.

The fact that nobody cares how hardyou work might make you sad, angry,or depressed. It may not seem right,just, or moral. It may make you want tocry, shout, or hunt down the guy withthe Green Book and hurt him. Butchange? I doubt the situation is goingto change.

“But Clif,” I hear you say.“My boss real-ly does care. She tells me how my hardwork is appreciated, how much ithelps the company,and how I have herundying gratitude.” You may believethat. I imagine she even believes that.But is it true? Try the following.

One morning next week,call the officeearly and tell her you won’t be in untilaround noon because you were up allnight monitoring the system process-es. When she asks why, tell her youwanted to make sure HPUX didn’thave a hidden root-privilege process init that ran nightly, copied all of yourcompany confidential data, and thentransmitted it to the Air Force to bebeamed to a waiting cyber-repositoryin the vicinity of Proxima Centauri.

B Y C L I F T O N O L I V E R

Continues on page 46

INTERNATIONAL SPECTRUM MARCH/APRIL 2008 � 47

So? Who cares?ClifNotes

It was a rough week. You put in four 14-hour days, eight hours on Friday,

then got called at 2:00 AM Saturday morning. You worked on the system

recovering from an aborted nighttime run until 8:00 AM on Saturday. In

all, a 70-hour week with no extra pay for overtime. After all, you’re

salaried. No comp time either, at least not officially. This kind of week is

also not that unusual in your shop. It seems to happen more and more

often. You wouldn’t mind so much if they were the exception, but the

last time you can remember working a 40-hour week was the three-day

week before last Thanksgiving, and that was only because you took one

of your “floating holidays” to have the Friday after off. And guess what?


Recommended