Alpha Software is focused on enabling developers to create robust, data-driven business applications that run on any PC, Tablet or Smartphone in the fastest, most efficient and cost-effective manner possible.

Share this blog:

Monday, August 31, 2009

Alpha Five Version 10 Feature Peek #25: Ajax windows

When you click on a hyperlink in a grid in Alpha Five Version 10, you can display related information. There are several different types of window styles, such as modal popup windows, modeless popup windows, and dropdown windows. You can also display the related information in any user-defined DIV on the page.

The first video shows how information can be shown in windows on the current page, and the second demonstrates a user-defined DIV.

Thursday, August 27, 2009

Another look at two of last week's Alpha Five Version 10 training presentations

As I've already pointed out in a few my posts this week, last week's Alpha Five Version 10 training was a hit. If you couldn't make it, or if you were there, but would like to explore a particular topic again, don't worry. Lenny Forziati and Dave McCormick, who both gave incredibly impressive presentations at the event, have offered to share them with you here on the blog.

Lenny's session focused on the important improvements to the Alpha Five Version 10 Application Server. Have a look at his PowerPoint presentation.

Dave's presentation was titled "Designing v10 Web Applications with Style." Dave went through the steps to explain how you can ensure that your Web applications look professional and appealing to users. He presented the first part of a series, and it's reproduced here in either the 800 kbps hi-res version or on YouTube, for slower connections.

Wednesday, August 26, 2009

Alpha Five Version 10 Feature Peek #24: Form layout

The records in an Alpha Five Version 10 grid component can be displayed in either a tabular view or a form view. When you use the form view, the grid offers many different layout options that let you create highly customized form layouts. To demonstrate, we've put together two videos. The first will show you tab controls and accordion controls. And the second displays container controls and frame controls.

Monday, August 24, 2009

A pat on the back from InfoWorld's Martin Heller for codeless Ajax and Alpha Five Version 10 training

Among the developers who were present for last week's Alpha Five Version 10 training seminar was reknowned software expert and reviewer Martin Heller. If you're a regular Alpha Software blog visitor, you already know our beta testers have been doing cartwheels over v10's new capabilities. But Martin summed up the sentiment of the seminar perfectly when he wrote:

About half the attendees had been working with pre-beta versions of the IDE, and they were uniformly sold on it before walking in the door; the other half were seeing it for the first time. Developers that I talked to during the conference were generally impressed with the technology, even if they had come wondering if the product would be flexible enough for their needs; the presentations were frequently interrupted by applause at especially impressive features.

Martin went on to give his full review of the Alpha Five Version 10 Web design system, with plenty of screen shots to illustrate his points. Make sure you head on over to the Strategic Developer today, because whether you're already a v10 believer or not, Martin's article is well worth a read!

Missed last week's Alpha Five Version 10 training course?

Don't worry! A ton was covered in the day-and-a-half seminar, but you can see first hand some of the incredible capabilities of Alpha Five Version 10 in our feature peeks series. We've already shown you videos demonstrating a lot of the new features for the Web and desktop, but you can easily browse through what we've highlighted in the list below. And stay tuned, because we still have many new feature peeks to reveal!

If you would like to get a beta copy of Alpha Five v10 (slated for release in the next few weeks), please e-mail

For a more complete look at videos showing off how you can rapidly build AJAX database applications without having to code in Alpha Five v10 (you can code if you want to), please click here. (Please note the first few videos do not have sound.)

Master templates

Conditional images

Conditional formatting

Global breakpoints

Conditional breakpoints


Row expander

Foreign language support

Detail view

Client-side formatting, calculated fields, and show/hide fields

Data validation

Tabbed linked grids with codeless Ajax

Multi-user editing

Constrained keyword search

Rich text

Windows options

Codeless Ajax Special: liquid forms and watermarks

Editing options

Easy searching

Ajax grids

Tabbed UI builder

Edit-combo box fields

Auto-suggest fields

Thursday, August 20, 2009

Great reactions from attendees at the Alpha Five Version 10 training conference!

We're just about to wrap up things here at our Alpha Five Version 10 training .

It has been a HUGE success because attendees have been able to see "in the flesh" the tremendous productivity that Alpha Five Version 10 gives developers looking to build highly responsive AJAX Web database-driven apps that perform with desktop like speed, smoothness, and richness.

We had a lot of interesting presentations from our own Alpha developers, and tons of great questions from our guests. The overall reaction from attendees can be summed up in this quote from Bill Griffin, IT director at Parkell Inc:

"V10 is one of the most revolutionary products I have ever used. To be able to build robust and rich AJAX powered database applications against any SQL backend with full security and reporting without having to code is really quite amazing! Furthermore it is mind boggling to think about what you can do by being able to combine it with coding. I am actually excited about work once again."

Resident Alpha guru Dave McCormick snapped some pictures while the seminar was taking place. Here's a little Flickr slideshow from the past two days. Enjoy!

Wednesday, August 19, 2009

It doesn't get betta' than beta codeless Ajax

Rather than hit you with a bunch of posts every time I get an e-mail from one of our Alpha Five Version 10 beta developers, I thought I'd roll them up into a few larger posts. As I've said, the response to v10 -- and codeless Ajax in particular -- has been overwhelmingly positive. And the messages continue to flow in.

I'm going to drop their comments in right here, verbatim, but with their names and e-mail addresses redacted (instead of getting permission from everyone to post their names).

First a little background:

I am an I.T professional with twenty four years experience, and have worked with PowerBuilder, Oracle Forms, Crystal Reports, and some older software most of you would not recognize

Currently I am involved in setting up a reporting database, using data from the CERNER health care suite of products.

I dabbled with A5 V8 as a novice and liked what I saw on the surface

Now, on to V10, and the videos. I just watched a few on the web components and the grid components and I am completely amazed. If the final product ships with all this working correctly, and Alpha prices this well and does some decent promotions/advertising, I believe it will be a game changer. I cannot believe the amount of customization available without coding. The amount of hours that Alpha must have put into this 'codeless Ajax' must be staggering.

And to have the owners post videos at 2AM, and get the information out there, is unprecedented in this industry.

I will download the final product as a trial, and if all goes well, I will purchase it.

It is the first week of August and I hope this ships soon, the suspense is killing me.

Good work.


Hello Richard,

Just a an initial start note, I started playing with row expanders in grids and it took me less then 30 min to setup a webpage. With a 3 tier row expander grid system starting with the Brand as level 1 then the Appliance Groups (limited to the Brand) as level 2. Then the actual range of appliances as level 3 filtered to the Brand/ Group combination. The web development needs the right dbf tables to use to make rapid solutions possible but that is a breeze. With the operations and Xbasic code solutions. The simplicity of it all plus the help notes shown along the way truly justifies RAD development. My story will continue when I continue the parts and pdf doc insertion. Gosh ... there is so much to explore ... it is outstanding and so simple.
I will keep you informed.


About your product... Now that I am learning this, I cannot believe you guys aren't on every shelf in every computer place nationwide.. THIS IS WONDERFUL and EASY (Once you get the hang of it) It makes me look like a GURU yay!


Of course im enjoying it, v10 is GROUND BREAKING, I promise to prepare a video of one application im developing in v10 and send it to you. Im all ready developing 2 different applications (not too wise I know, but I just cant help it), grid templates makes work flow so much faster especially because I don't have to translate every single property over and over again, you have a winner here.

Thank you again for your time and patience.

I can't help but smile every time I read your e-mails. In fact, I did a little more than smile when that last note came in. The developer is an IT guy from a large mining company in Mexico. I think it's really saying something if someone from a mining company calls our product ground breaking. As one of our own developers Kurt noted, he can be sure we'll never give him "the shaft." And I hope he continues to enjoy it as he "gets further down into it." Okay, I've had my fun. I promise I'll stop now before I "dig myself any deeper." ;)

Tuesday, August 18, 2009

REMINDER: Alpha Five Version 10 training! Will YOU be there?

Don't forget our Alpha Five Version 10 training seminar is taking place TOMORROW from 9 a.m. to 5 p.m. and Thursday from 9 a.m. to 12 p.m. at the Hilton Garden Inn in Burlington, Mass. You'll be able to meet the team behind the development of Alpha Five Version 10 and pick their brains. You'll also learn all you need to know to create powerful data-driven Web-based apps faster than ever before.

If you're going to be there, we invite you to join in on the online discussion as the seminar is taking place by tweeting with the hashtag #ajax. Not only will you be able to tap into our brains, but you'll be able to see what other developers are thinking as they think them.

And if you can't make the training seminar, you can still chime in. Keep your eyes on the Twitter trends to see how it all unfolds. See you tomorrow!

Monday, August 17, 2009

Alpha Five Version 10 Feature Peek #23: Master templates

The grid component is made up of three sub-parts: search part, grid part, and detail view part. In previous versions of Alpha Five, you laid out these three parts on the .a5w page that contained the grid component. With master templates, you can lay out these parts in the grid definition itself. You can also enclose the parts in a tab or accordion object. Have a look.

Friday, August 14, 2009

Alpha Five Version 10 Feature Peek #22: Conditional images

Alpha Five Version 10's conditional image feature lets you display different icons in the grid depending on the data in each row. Have a look at the video below, which demonstrates how above-average quantities have a green icon and below-average have a red icon. There is no limit to the number of conditions you can test for.

Thursday, August 13, 2009

Alpha Five Version 10 Feature Peek #21: Conditional formatting

The conditional formatting option in Alpha Five Version 10 lets you format data conditionally, depending on its value. For example, you might set the color of the quantity field to be red if it is above average. In the video below, you'll see the conditional formatting in action, including conditional formatting at the cell and control level, and conditional formatting at the row level.

Wednesday, August 12, 2009

Configuring, tuning, and maintaining Alpha Web app production servers (part 3)

When I left off last week, I gave the full download on our sample computer's memory and disk drives. Today, I'm going to start talking about tuning.

When you purchase a new car, the factory has already assembled your car and done some last minute work to make sure that the engine is tuned to run efficiently. Although you assume that you will have to take it back periodically to keep it running well, this last touch by the service department assures you a good ride, and dependable service -- at least for a while ...

As for computers, even with the best hardware installed, there are still some things to be considered for making your Web application perform well. We are going to "tune" the server to assure you a dependable roll-out.

Hardware and software tuning are very involved subjects, and many people make careers out of this area of computer science. As for the rest of us, we really care about only the most critical factors. I'll give an overview of some key topics to be aware of and refer you to some Internet links and books for further investigation.

Disk Configuration

Now that you have a system with four different drives, how you will use them? Every application is different, but in general, you want to keep your data files, static Web resources, and your Web pages on different drives.

Log files are generally written sequentially and, since logging tends to be done frequently, log files work best on their own drives.

There is no simple formula, but as you install your applications and data files, think about read and write patterns and try to spread out your activity across the drives. Four drives could improve your response time by four times or more.

Although I would recommend that you not run the Alpha Five Application Server and your SQL server on the same machine, you might have to do so. If you do, you probably want to install dedicated disk drives. Ideally, use one disk for each database file and always keep the log file on a separate disk from the database files. This improves performance, but it is also essential for recovering your database in the case of a disk drive failure.

Paging and Virtual Memory

We've already discussed swapping memory in the section on memory. But for review, memory (RAM specifically) is the working memory for a running program. The computer can give the appearance to running programs that it has much more memory than is physically installed by copying memory to disk and then reloading it when it is needed. The memory blocks are stored on disk in what is referred to as a "page file." This all happens automatically, without the program being involved. This feature is referred to as "virtual memory."

While virtual memory is a very useful concept, it comes at a price. When a program references a block of memory (referred to as a page), the operating system automatically checks to see if the data that the program is looking for is in memory. If it is, life is good and your program continues on.

If it's not, however, the operating system suspends your program while it loads the page you need from disk (a read of the disk) and then returns control to you. It might also have to write out a block of memory that hasn't been used in a while to make room for the block you need.

This process introduces a wait into your program that you didn't expect. This is why a program that you have left running might seem a little sluggish when you return to it. The operating system is feverishly trying to serve up blocks of memory that have not been accessed in a while.

The first thing to consider is isolating the paging file on its own disk drive so that we let the reads and writes occur without affecting other file access (loading executables and reading files). You can set the location of the paging file (or files) from the control panel. Tony Northrup has written a great article called "Restore Your Computer's Performance with Windows XP" which explains how to do this in detail.

If a system has enough memory so that paging is unnecessary, it would be nice to be able to turn it off. This is accomplished through the same interface you use to set your paging file. Warning! Be absolutely sure you have more RAM than you will ever need before you change this setting.

Lighten the Load

Microsoft generously includes a host of applications for you when you install Windows. These "extra" applications are often running unnecessarily; each tying up the processor, using up memory, and cluttering the hard drive.

Make sure that before you start any other configuration of your system, you uninstall any program that is not necessary. There are lots of good references for which programs you truly need and we won't go into them here.

Disable any services that are not being used. If FTP is installed and running so you can publish from your development environment, make sure you disable it when you don't need it.

Look at the auto-start list on your system. Are there additional programs being run that you don't need? If so, remove them.

Processor Affinity

I mentioned processor affinity in the note at the beginning of these posts. Processor affinity is an important feature for multi-core systems. As I said before, cache memory is used to keep a processor busy. If a process (a running program) is scheduled to run on a different processor each time it receives control, the cache must be reloaded for the new processor. By setting the affinity of the process to a particular core (processor), the performance of the program is further improved. Alpha Five Application Server does this automatically.

Make sure that any other server applications have their affinity set to a different processor than the one Alpha Five Application Server is assigned to. This will minimize the chance that Alpha Five and the other applications keep moving between processors and will improve performance.

Finally, my next post will round out the article, and will delve into all the details of regular maintenance, so stay tuned.

Friday, August 07, 2009

Alpha Five Version 10 Feature Peek #20: Global breakpoints

Have you ever had the experience while debugging code, when you know a variable's value is being changed, but you don't know exactly which section of your code is changing the variable? That won't happen in Alpha Five Version 10, because the new global breakpoints feature lets you set a breakpoint on an expression. Have a look at the video for more information.

Thursday, August 06, 2009

Alpha Five Version 10 Feature Peek #19: Conditional breakpoints

In previous versions of Alpha Five, if you set a breakpoint in your code, the debugger would always stop when that breakpoint was hit. Now, you can set a breakpoint and specify a condition. The debugger will only stop if the condition is true. The video below shows how you can set a conditional breakpoint.

Wednesday, August 05, 2009

Alpha Five Version 10 Feature Peek #18: Debugger

Alpha Five Version 10's debugger has been completely rewritten. It's much faster and has a huge number of new features to make your debugging easier and more productive.

The video below gives a brief overview of the key new debugger features, including:

  • color coding
  • search for text
  • go-to line
  • hover over variable to see value
  • drag drop to watch window
  • drill down of property and array values
  • comment out a line at runtime
  • persistent watch variables
  • save watch variables to file
  • load watch variables
  • expand/collapse watches to see multi-line values
  • step out

Codeless Ajax in action

If you're a regular here, you're already well aware that we're knee deep in our latest series of feature peeks, highlighting some of the great new and improved features of Alpha Five Version 10. We put out a press release earlier this week announcing the series, and I wanted to share it with you here.


See Codeless Ajax in Action on Alpha Software’s Blog

The real-time Web is coming, where online apps look and feel like desktop apps. Codeless Ajax makes building real-time Web apps nearly effortless for developers, consultants, businesses, and Web designers.

BURLINGTON, Mass.--(BUSINESS WIRE)--Calling all developers, designers, and entrepreneurs! Hit the Alpha Software blog right now to see how codeless Ajax lets you create rich Internet applications, without having to write or debug any code. Watch how easy it is to assemble custom Web apps that look, feel, and perform like desktop apps, but run entirely in the cloud. Witness Web databases that take user input and update screens in real time, without reloading pages or having users click “submit.” See how you can spend less time bringing killer ideas to life, and more time making money with them.

“The era of slow Web applications is ending,” says Richard Rabins, Co-Chairman of Alpha Software. “With the emergence of rich Internet experiences and the drive to cloud computing, businesses want desktop-like functionality for their workers and customers. This is a huge market opportunity for any developer, designer, or entrepreneur who can deliver next-generation Web experiences quickly and efficiently. And you won’t find a programming tool on the planet that can build rich Internet apps faster than Alpha Five Version 10, with codeless Ajax technology. You must see it to believe it.”

Invented by Alpha Software, codeless Ajax is the hallmark of the upcoming Alpha Five Version 10, an award-winning rapid development platform with visual editor, database designer, reporting engine, support for major SQL databases, Xbasic language, app genies, dozens of prefab functions and controls, and more. Now in beta, the platform is slated to ship this year. Developers can request a copy of the beta by writing to And everyone can see Alpha Five Version 10 in action by visiting the Alpha Software blog, and watching the company’s New Feature Peeks. New Feature Peeks are being added every few days, so check back often to see the latest demos of codeless Ajax in action. You can also subscribe to the Alpha Software blog to be alerted whenever a New Feature Peek is posted.

Beta tester and professional developer Jim Dusoe used Alpha Five Version 10 to build a student information tracking and reporting system in just 24 man hours. This would have taken him at least three man weeks using other development platforms, such as Visual Studio, IronSpeed, FileMaker, Servoy, PHP, or Java.

“I was able to prototype the app and get my client’s buy-in in minutes, literally,” Dusoe says. “I had the system finished and delivered three days after first contact with the client. I’ve never used anything as productive as Alpha Five. In fact, I was so impressed with the results, I dropped IronSpeed as my development platform and switched to Alpha Five.”

Rabins characterizes codeless Ajax as a true breakthrough in the history of development tools. “In the 80s, Borland’s Turbo Pascal revolutionized programming by introducing the integrated development environment,” he says. “In the 90s, Microsoft’s Visual Basic raised the bar with visual programming for Windows applications. The bar will be raised again when we unleash our codeless Ajax technology in the next quarter, and developer productivity will take a flying leap forward. No matter what you use to build Web apps, if you care about productivity, keep your eye on Alpha Five with codeless Ajax.”

Dusoe agrees. “Users want Web applications that perform as well as desktop apps,” he says. “Designers want to add database features to their sites without having to get a computer science degree. Entrepreneurs want to launch their killer app in weeks, not months. And the faster developers can prototype and deliver solutions, the more revenue they can earn in a year.”

For more information about Alpha Five Version 10 please visit the Alpha Software blog, Web site, or contact


Since 1982, Alpha Software has been providing developers with award-winning tools that make it easy to build business applications. Today over 1 million developers and tens of millions of users rely on Alpha Software’s Alpha Five. The company is privately held, and based in Burlington, Mass. Alpha Software can be found on the Web at The company’s blog is located at

Media contact:
Kate Ritchie, 610-642-8253, ext. 162

Tuesday, August 04, 2009

Calling all developers: Alpha Five Version 10 training Aug. 19 and 20

To help our customers understand the unique leverage Alpha Five Version 10 provides in terms of being able to rapidly build highly interactive, Ajax-enabled Web apps without writing a stitch of code, we're hosting a seminar for a core group of developers.

I'm sure by now you've seen some of our feature peeks, so you know why we and the beta testers are excited about the release of this newest version. If you're interested in codeless Ajax, and plan on using Alpha Five Version 10 to increase your competitiveness, productivity, and profitability, then this is the training seminar for you.

At the seminar, which will be held Wednesday, Aug. 19 from 9 a.m. to 5 p.m., and Thursday, Aug. 20 from 9 a.m. to 12 p.m. at the Hilton Garden Inn in Burlington, Ma., you'll be able to meet the team behind the development of Alpha Five Version 10, and pick their brains. You'll also learn all you need to know to create powerful data-driven Web-based apps faster than ever before.

The entire seminar will be conducted directly by Alpha Software personnel, and is aimed at professional developers and consultants. Space is limited, and we've already passed 80 percent of our capacity, so register today!

The price for the training is $295. If you've already registered, but you haven't paid yet, don't forget to please confirm your reservation.

Configuring, tuning, and maintaining Alpha Web app production servers (part 2)

When I left off yesterday, I was describing the system of the Dell PowerEdge T300. Today, I'll pick up with more information on the system's memory and disk drives.


As a review, memory (RAM) is used by the computer to temporarily store information that might or might not ultimately end up on a disk drive (or some other permanent storage). When a program stops running, the memory it has used is returned to the operating system for other programs to use. When the operating system is shut down, all memory is effectively cleared out.

Why is more memory better? Memory is tremendously faster than disk drive access. As a result, the more memory the machine has, the more information can be kept close at hand (and not re-read from disk). This speeds up program execution.

Modern day operating systems are not really limited by the amount of physical memory installed. They are able to pretend that there is more memory by automatically swapping sections of memory out to disk in something called a "swap file." This is similar to putting some of the papers on your desk in a folder so you have more room to work.

Swap files are essential for programs that temporarily need a lot of memory, or when many programs are running on the computer at the same time. Otherwise, the computer would come to a dead stop when all physical memory is used up.

We'll talk more about this further along, but for our current discussion, it's enough to understand that if the system doesn't have enough RAM to run efficiently, it will be forced to read and write from the swap file, which is much, much slower.

So how much RAM do you need? This is a number that changes daily. The system I configured includes 24GB (Gigabytes -- about 24 billion characters). The difference in price to install only 8GB was about $500 dollars, so we can assume that we are paying about $750 for the memory. These prices and the capacity of RAM modules are constantly moving. Get the most that your running application will use.

Disk Drives

Disk drives are probably the least understood and most important component gating performance on servers today. Why? They are so much slower than the memory and processor that they cause delays in typical applications. Most of the time spent in a typical program is actually waiting while doing such things as loading executables, reading configuration settings, opening files, and processing database queries.

Disk drives today have one or more "platters" -- round disks that store information in rings (or cylinders) spreading out around the center. To read or write information, the platter must be rotated to the right position and a read/write head must move in or out to the right ring to do its work.

Once the position is right, the disk controller will start to transfer bits (ones and zeroes) in one direction or the other. All of this happens at tremendous speed relative to the description you just read, but it is never quite as fast as we would like.

A disk drive platter rotates somewhere between 7,000 and 15,000 times per minute, depending on the specifications of the drive. We call the delay in waiting for the platter to rotate to where our data is "rotational latency." The faster the drive turns, the sooner we get to the data. The drives selected above are all spinning at 15,000 times per minute.

The time a read/write head takes to move in or out on the disk to the required ring is referred to as "seek time." This number doesn't tend to show up in drive descriptions as much as it used to, but it is a good number to be aware of when you're looking at two drives that appear the same otherwise.

The last metric we want to think about is referred to as "transfer rate." This is essentially how fast data can be read once we get to the right spot on the disk. In the case of the drives in the configuration above, the drives transfer data at 3 gigabits per second (about 3 billion binary digits; it takes eight to make a full character, or "byte").

Note that I chose only 450GB drives and SCSI (pronounced "skuzzy") drives at that. Why not use the much larger 1TB (terabyte) SATA drives instead? In this case, bigger is not better.

The larger drives will hold more information, but they won't turn as fast as the SCSI drives. In this configuration, each of the drives added about $500 as compared to a similar SATA drive. It's worth the difference for the speed.

You'll also see that I chose to install four different drives instead of one or two larger drives. This is because we can organize our data on different drives to maximize the performance of our drives.

Think of it this way: You ask a drive to read a piece of information from a disk file that is on the outside edge of the platter. Then you ask it to write to another file that is on the inside edge. As you repeatedly read and then write, you must wait for the drive to turn and the head to move in and out for every read and write you do. With two separate drives (one for reading and one for writing), the delay is much less.

Since most applications open many files in many places on the disk, the drive spends most of its time moving from one place to another to read and write data. And this is the most expensive operation on our computer.

By carefully organizing our two files on different disk drives we might (not everything is that simple) actually read from one drive and write to the other drive without making them jump around. We'll discuss this more in the "tuning" section tomorrow.

A Final Note about Hardware

Brand names are almost always more expensive than discount machines. There is often a very good reason for this. When a vendor assembles a machine for you, they have tested the compatibility of the various components and are far more likely to use the best matches.

For example, when you buy memory, the system will attempt to adjust to the speed of the slowest memory module installed. If the modules run at different speeds or are assembled with components with different specifications (or quality standards), your system will actually run slower and might handle more timing errors at the hardware level than you realize.

Alpha Five Version 10 Feature Peek #17: Row expander

The row expander in Alpha Five Version 10 turns on a small icon next to each row in the grid. When you click this icon, the row expands to show additional information related to the current row. The video below will show you how to use the row expander in a number of ways, including:

  • with a single grid
  • with multiple grids in a tab control
  • with multiple grids in an accordion control
  • setting the row expander to only allow one row to be expanded at a time
  • and defining a custom row expander event to show any arbitrary content generated by the server.

Monday, August 03, 2009

Are you properly configuring, tuning, and maintaining your production server for your Alpha Five Web applications?

While a well-designed Web database application can fundamentally increase the competitiveness and efficiency of your company/organization, it does require an investment, no matter how large or small your business is. And, how many of you have dedicated valuable time to building your application, only to deploy your application and find out that performance is lackluster? I don't have to tell you about what a disappointing experience this can be.

While we work very hard to make the Alpha Five Application Server correct, fast, robust, and efficient, deploying an application to underpowered or unmaintained systems can have a tremendous negative effect on your user experience.

That's why I've written an article that discusses some of the concepts involved in the proper configuration, tuning, and maintenance of a production server for your Alpha Five Web applications. The goal is to explain the concepts and why they are important, and to get you thinking about factors that might needlessly limit your system.

To start off, today I'll discuss hardware configuration, and later this week move on to cover initial tuning and software configuration, as well as thoughts on maintenance and baseline analysis.

As a side note, always keep in mind that correctness, robustness, and performance -- the three pillars of a useful application -- are each essential to a successful implementation, and should be prioritized in that order. While you need all three, the following blog posts will be focusing on performance.


First and foremost, you need to install your software on a server that will give you the maximum power for your money. Such a server will have a fast processor, a lot of RAM (memory), and will include several fast hard drives. Fortunately, prices on systems are constantly going down, and the power of systems is growing tremendously.

It would be a mistake to scrimp on hardware. It's easy to do though, isn't it? Just look at those bargain systems for under $1,000! I can save so much money! Actually, no you can't. Having an underpowered server will cost you in many ways: labor through lost productivity, customer loyalty will be lost through delays in service, or worse, customers abandoning your site in favor of a competitor.

How much should you spend? That's a difficult question to answer because you might not need the processing power immediately, or you might not have a return on investment (ROI) for an internal system that justifies a large expense. In six months, prices and available hardware will have changed significantly, and any hard numbers I give you will be irrelevant. Don't worry, we'll try anyway.

How long should you keep a system before upgrading it? Systems don't tend to wear out. They become obsolete within six to eight months. You probably want to plan an annual upgrade of your server, and budget your purchase so that your savings assumes this. So what should you buy? You can get some very nice performing servers for about $2,000.

For an important high-volume application, I priced a configuration on the Dell Small Business site today that included a Xeon® X5460 3.16GHz processor with a 2.6M cache and a 133MHz FSB (front side bus). It included 24MB of RAM, four 450MB serial-attach SCSI drives with 15K RPM and 3Gbps transfer rate handled by a SATA/SAS Controller with RAID 6 support and the Windows 2008 Server Standard Edition operating system.

The system I configured (a Dell PowerEdge T300) comes in at about $5,000. Does that sound like a lot? More importantly, did you understand all of the jargon in the second sentence? If you did understand it, you don't really need this series of posts. I'd suggest saving your time for more interesting reading ;).

As for the rest of us, let's start reviewing this system.

The Processor

The CPU (central processing unit) is the brain of the computer. The better systems will have multiple cores (processors) on a single chip. The one I chose for the configuration above has four. These processors share the work by taking turns running applications.

Note: Alpha Five does not use more than one processor by itself (although the operating system and other processes will), and is specifically programmed to try to stay as close to one processor at all times as is possible. This is referred to as "processor affinity." We'll discuss this more in the "tuning" section.

A processor runs at a speed (referred to as clock speed) that is generally measured (these days) in Gigahertz (roughly billions of cycles per second). Adding numbers, reading memory, and making comparisons (the kinds of things processors do) will take at least one of these cycles and maybe more. Faster is better. The processor above runs at 3.16 GHz. Not bad!

The processor's cache is a very fast kind of memory that is used as a scratch area to help keep the processor busy as much as possible. Cache memory is much more expensive than regular memory (RAM) so you don't get as much to work with. A processor must access disk drives (storage) to load programs, and read and write data. It must depend on memory (think of it as a bigger scratch pad) to process instructions and manipulate data values.

Access to RAM is much faster than a disk drive, so it's a useful place to store frequently used values. A processor cache is significantly faster than RAM, and is used to store instructions and data values for a short period of time. The processor above has 2.6 megabytes (roughly millions), and can make good use of it.

The last number on the description of the processor is the speed of the bus. A bus is conceptually a bunch of wires that run between the processor, the memory, and adapter cards (or onboard adapters) that handle things such as the disk drives, displays, and network access (not to mention the keyboard and mouse).

This particular computer has what is referred to as a front-side bus (FSB), and this has its own clock speed that controls how fast data can move back and forth between all of these adapters and the processor. In the case of our configuration above, the speed is 1333MHz (roughly millions of cycles per second). Again, faster is better.

Stay tuned until tomorrow, because I'll delve more deeply into the specifics of the PowerEdge's memory.

Related Posts Plugin for WordPress, Blogger...