Scott's Column
Accelerated house plans and I revisit the Client/Server vs. Web issue

April 1, 2000
By Scott Lewis

House Plans

For those of you that follow this column regularly you are aware that my wife and I have purchased 1.1 acres of land. We had intended to start building in March 2001. That date was arrived at because I wanted to have enough cash in the bank to cover any possible scenarios. My company gives an annual performance bonus in February. I wanted to bank my entire bonus check from 2000 & 2001 as well as bank my income tax refund checks for both time periods.

With Alan Greenspan planning on raising interest rates throughout the year we are worried we will end up with a mortgage rate over 9% if we wait too long to build. My sister-in-law offered to lend us the money to pad our bank account. We would pay this money back with the appropriate bonus and income tax checks after we move in, or sooner if the house comes in under budget.

We plan on using my VA benefits for this house. Fortunately, the VA has relaxed its requirements some. They didn’t use to allow you to get loans from family members when buying a house. Their reason was based on the fact they determine your financial credibility based on all your debts. A family loan that enables you to meet their requirements was thought of as not really meeting the requirements.

But VA now understands that family loans don’t hold the penalty associated with a true loan from an institution. Previously you had to get it in writing that the family member was giving you the money as a gift with no expectations of repayment. Most people signed these things with no regard for their meaning. People pay back family loans when they can.

Since we will have the money in the bank to handle any situation that may arise, such as paying off the land or putting 10% down, we are prepared to start building as soon as we have plans. If my brother-in-law brings the house in under budget we will be able to use the money toward extras like hard wood floors, ceramic or marble tile, custom cabinets and fixtures, etc (oh yea, or paying back my sister-in-law).

So, watch this space over the next few months. I will be covering the buildup of this house here. I plan to run as advanced a home network as possible given my budget constraints. As soon as we have plans they will be posted.

The first thing I bought toward building the house is a chainsaw to help clear the land. I may try to get pictures of the land as is progresses. For the moment, look at my Cars page and scroll down to my Suburban. Those pictures were taken in front of our property.

Stay tuned... 2000 could be a very good year.

To Web or not to Web?

Quite a while back I told you about getting the web site up for my project. It had less functionality than the client/server application that it is eventually to replace, and its performance lagged behind the client/server application.

Recently our project sponsor traveled to some of our regional offices. He tried to drum up interest in our application. The resounding feedback he received was that it was too slow. When I talked with him I told him that we have performance enhancements in place for the client/server application.

Alas, he told me that he doesn’t care about the client/server application, and only wants to promote the web solution.

A quick overview is in order here. We are using Oracle’s Express product line. Express is their Multi-dimensional Database Server. We have been using Analyzer as the client tool to display data in our various databases. Analyzer looks a little like Excel in that it displays data in columns and rows using tables. It also displays graphs rather well.

But Analyzer is integrally connected to Express, and can be used to rotate data views, and "slice & dice" data much better than Excel could in such a database. Analyzer is also the runtime module for briefings created with Express Objects. Objects is a Visual Basic like tool that allows you to build custom screens to display the data. Objects allows extremely complicated programming of screen elements and navigation that would not be possible otherwise.

Our client/server architecture has us place our "briefing" file on a LAN drive, a shared resource that everyone has access to. We load Analyzer on the client workstation, and we provide a shortcut that has Analyzer run our briefing from the LAN. The briefing/project file contains the information necessary to connect to the Express server.

Now for the web... in our web environment we use Oracle’s Web Agent to build custom pages in a combination of Express code and HTML. All this is stored on the Express server.

The main difference is the client takes a minute or so to start up as it loads Analyzer into memory, and open the project/briefing file. Once open performance is reasonable on a fast machine. The web environment is run completely though the browser, Internet Explorer in our case.

But this doesn’t really tell the underlying architecture. In the client/server application the data is processed on the server, and sent to the client for display. All the screen objects are in the project file and completely loaded into memory on the workstation when the application is started. All processing of screen elements and custom code are handled on the local workstation. The server is only required to supply the data.

Through the browser everything is handled by the server except for the table and graph which are Java applets. These Java applets must also come from the server.

As many of you may be aware, Java is slow. It is an interpreted language and its performance suffers from that. Add to that the HTML and JavaScript that the server generates to create the final pages the browser will display and you begin to realize this web solution puts a larger burden on the server, and the speed that information passes to the browser.

So what about our regional offices. To improve performance in the regions we keep mirrors of our shared data from the home office. Currently we have 9 mirrors around the world. The client software is loaded on the local machine, and connects to the users local LAN drive. Then it connects to the Express server in the home office. Under this arrangement the server only processes and delivers the data.

In a web environment everything comes from the server. This includes the Java applets, the screen/page elements, the data, graphics, HTML, etc. Pumping this much information across the country, and in some cases half way around the world, takes time. So yes, the application has poor performance.

We are moving to a newer server. I say "newer" because it is still not new. Our company is on a major consolidation rampage. We are being forced off our old server. That is good since it is 5 years old. However, the "newer" server is two models behind a new server. Oh well.

I did some benchmarking to see what kind of performance gains this newer server gave us, and decided to take it a step further and do the closest possible comparison to the client/server and web application. I developed a script, and ran if for each combination (4 in all). Here are the results (in seconds, lower is better):

     Old Server - Web Application 371
     Newer Server - Web Application 178

     Old Server - Client/Server 286
     Newer Server - Client/Server 120

All these tests where done from our home office. I expect we will find that the difference in performance between the web and client/server would be greater in a remote location without the aid of any locally stored information.

I expect my project sponsor will ignore these numbers. I can understand why. He is hoping to roll this application out to 1500 users around the world. Although we could get better performance by putting more mirrors of our LAN files in each office, that along with maintaining over 1800 (we already have around 300 installed users) client installations would be a nightmare.

It all comes down to where you want to buy your time. We can buy it in a lot of up front preparation and continued "mirror" maintenance, or we can buy it with slower performance for 1800 users. Heaven forbid we have to roll out a new version of the client tool to 1800+ users at one time.

We are looking into getting the Java applets to remain locally loaded on the workstation regardless of the individual users "caching" configuration. This should help some, but I doubt it will bridge the gap we have, especially around the country. At least the performance numbers show that any of our existing users should see an improvement in performance if they go to the web application on the newer server, since it beat out both tests on the old server. If we could just get a current server, I would expect another boost in performance.

I will keep you posted.