by Peter Wone - Independent Developer
Welcome to the InterNot
I could wax lyrical about my favourite new toy, Delphi3, but first I'd rather have a good old whinge about the net, coz in this country (Australia) it isn't. An internet, I mean.
Depending on how much net history you know, you may or may not be aware of what it is and why it is, and what it isn't - or at any rate isn't supposed to be - and why it isn't supposed to be like that.
We don't have an internet in Australia. Or we do, but it takes the meaning of virtual to new heights, and commercial and governmental stupidity to new depths. Not that anyone in Australia would be even slightly surprised by yet another tale of governmental interference being ultimately detrimental to the national interest, or rooted in ignorance and/or stupidity.
Let me begin with a tale of ten servers, and then we'll get to why the net isn't.
Once upon a time the US DoD accidentally did something in the US national interest. They didn't set out to do a great public work; it was a by-product of their need for a robust communications system that couldn't be sabotaged.
If you have ten servers, and you want them all connected, you can put them all on one big backbone, which is simple and easy to maintain. It will also suffer from congestion due to collisions, and it's strictly limited in physical size. This approach doesn't scale up far, even for a single enterprise at a single location.
Or you can structure it like this -
This is essentially a nested version of classic star topology. All the servers connect to a central server. It combines the administrative simplicity of star topology yet doesn't require all the remote servers to have long haul connections, just the clusters. But if a long haul connection to the central server fails, an entire subtree is orphaned, and if the central server goes down, all of the subnets are isolated.
Worse, the heaviest traffic is on the long haul hops, where bandwidth is scarce and more expensive.
This wasn't good enough for the paranoid DoD, so they asked themselves "how can we connect everything to everything, without lots of long haul hops, preferably without paying for it?"
What they did was this -
And in that moment of accidental genius, the net was born. Until a few years ago the only real difference between this structure and the net we know was size. Since then, it has been structurally damaged by the interference of Microsoft, CompuServe, AOL and various telecommunication companies, in their efforts to make money out of an essentially public resource.
The main difference is that many of the servers are independently operated, and in many cases privately owned, as are the links. None of these links is especially long. At least two links must be cut to isolate a server, and breaking a single link never isolates anything. Nor is the structure particularly subject to congestion. In the hierarchical structure, traffic between nodes not in the same subtree must pass throught the lowest node bridging the source subtree and the destination subtree. This means that every level closer to the topmost node will carry increasing volumes of traffic. This is a real problem, because it concentrates traffic on the links least able to carry it.
Although it looks more complex, administration is actually simpler in the networked structure, because each administrator only has to worry about communicating with a handful of other sites. In formal terms, this is an application of cellular automation principle to network management.
What we have in Australia is an hierarchical structure. It's expensive (due to the requirement for high bandwidth long haul connections) prone to outages and the isolation of entire subtrees, and could be held to ransom by unfriendly forces.
It is being held to ransom by unfriendly forces - telecommunication companies. For the privilege of suffering from congestion and frequent outages we are required to pay dearly to our telcos, neither of which has much experience with running a true net.
Our beloved telecommunication malefactors don't want a true net in this country. In a net you can't know, from moment to moment, the path any given packet will take from end to end of a logical connection, and different packets can take different routes depending on availability.
From the point of view of a military organisation, that's wonderful. It effectively prevents both eavesdropping and sabotage. From the point of view of a telco, it's a nightmare. It frequently makes tracking of traffic impossible, which makes charging impractical.
You might wonder, with charging a practical impossibility, how the net's running costs are met, and what stops one user from sponging the resources of another. The server capital and maintenance costs are marginal because they are absorbed by the already sunk costs for existing servers.
At this point, you might well ask yourself about the millions of dial-up users who daily congest the net in their chatting, browsing, on-line shopping and sordid juvenile quests for pornography. None of them carry traffic, and all of them generate it.
Whether they are parasites depends entirely on the conduct of their service providers in terms of carrying the traffice of others. For example, the Microsoft Network mail servers are not SMTP servers, and do not (cannot) relay mail traffic. Fortunately, it is not really possible to avoid carrying IP traffic without explicitly excluding it at one's firewall, and doing that would prevent ISP customers from following most of their pursuits.
But as for communication costs, well, how much does your modem cost to run? Not much, once you've bought it. Not counting the tribute exacted by one's telco. Suppose I lived next door to my mate Brett, and we ran a bit of co-ax out my window and into his. The operating cost is zip - capital cost, plus upgrade replacement every couple of years.
The real cost of communication is the capital cost of the equipment apportioned over its lifetime carrying capacity.
My friend Brett has a two meg microwave link spanning the fifteen kilometres to his workplace. It cost him $4000 up front for each end, and nothing to run since. If I run said co-ax out my window and into his, then I too will be connected at two meg to that site - which has six meg to the States. His interest in allowing me and others to use his link is that it dilutes capital cost. It's a bit like the Australian-Italian habit of families paying off houses jointly. They buy the same number of houses in the same time, but credit costs are spread and capital-raising abilities are agreggated. (When in Australia do as the Romans do?)
The microwave link is good for about ten years, or 88000 hours. That's $11/hr, which sounds expensive until you remember that it's $11/hr for two meg. If the two of us were sharing the cost it would be $6.50/hr, which is cheaper than MSN, and performance is forty times better.
Unfortunately I don't really live next to Brett. But if I did, then I certainly would be interested to go halves in the capital cost of the link - it's very much in my interest, coz the worksite has a six meg link to the States, not to mention decent bandwidth onto the Australian backbone. And so would my neighbours, once they discovered free long distance - even international - voice comms. You can bet there'd soon be high bandwidth links tightly criss-crossed and interconnected. After a dozen households were involved we'd begin to suffer congestion, and we'd have to set up another link to some other commercial site with links.
In this scenario, where are the telcos and ISPs? Nowhere. There is no place and no need for them. Why should we pay someone to be a nuisance? They'd only raise costs and make the net less reliable.
If you get the feeling that I do not wish the telcos well, you are right. They are parasites like their forebears. Let me give you a little more history.
Once upon a time, there was a country called Egypt, and there was a crucial resource - the Nile - running down the middle of it. Everyone needed water, which was available in quantity only from the Nile.
This allowed an unparalled opportunity to a bandit chief. A necessary consumable resource that cost him doodly was centralised, so he could extort wealth in return for unmolested access. This is what we call a "water rights society."
This tactic was subsequently applied, by other bandits, to other resources. History unfurled, and eventually the combustion engine made a technological water rights society based around petroleum.
Petroleum more or less runs out of a hole in the ground on its own. All you have to do is filter it and sell it. If you're smart you fractionate it, increase the price of glunk-free fuel and sell the glunk too (grease and lubricating oils). This is called (by modern bandits) adding value. When governments do it, it's called user-pays.
Unfortunately for the Egyptians, the centralisation of water was natural and irrevocable. In the case of the "net" in Australia, the centralisation was created when our government, in its infinite wisdom, decided that since the net is a communications resource it should be set up and controlled by the government communications monopoly, and the subsequent duopoly.
In our case, the resource is bandwidth, and we can act.
Some years ago I wanted to run a co-ax cable about four kilometres across company land from HQ to one of the production facilities. There was a little road we needed to cross - a service lane for the plant. The law said that we couldn't sling a cable across the road between the power poles.
OK, I said. We have the gear and the land in the right places to put up our own poles, or even dig under the road. No chance - only a "telecommunications carrier" is allowed to do that. The amount Telstra wanted to sling the cable was too obscene to state here. And they wanted to charge - by traffic volume, no less. For ten meg of bandwidth, they wanted to charge a lot - on five bucks' worth of co-ax we could have put up ourselves.
I told 'em to stuff it where the sun don't shine. (In those words, too.) What I did instead was aggregate five modems and keep the lines open (local call fee). I will not submit to terrorism.
Will I pay? For the combat of terrorism, thousands. To the terrorists, not a cent! (Was that JFK or Clinton?). That, as a matter of interest, is why the telcos want timed local calls.
OK, now I can get off my soapbox. Oh, look - it's a Delphi3 box!
Delphi3 and the web
Among the most interesting things in Delphi3 is the capability to create ActiveX controls. Did I say capability? Delphi2 had the capability. In Delphi3 it's not a capability, it's a cakewalk. There's a wizard. All you have to do is create a VCL according to spec, taking care not to do anything an ActiveX control can't do, and run it through the wizard. It was the first new toy I tried, and it didn't give me any trouble at all.
But if you're wondering why I'd stoop to sullying the purity of my Delphi code with dependence on ActiveX controls, with all the deployment and version control headaches of the Visual Basic custom control, the answer is twofold -
Borland has gone to considerable trouble to ensure that Delphi remains the best Wintel development platform. (I said best, not most popular.) To that end, the class library has been revamped to support
The dreaded Borland documentation has improved substantially, too. I find it ironic that documentation, which to me has long been Microsoft's forte and Borland's downfall, has in less than a year become (in my opinion, anyway) for Microsoft a weakness, and for Borland a strength.
A webserver is a request broker supporting elaborate remote interfaces seamlessly integrated with both static and active documents. Borland seems to understand this. There are all sorts of automation base classes, but the infrastructure supplied with Delphi3 is very well thought out and makes no fixed assumption about what you will do other than that you will represent your response using HTML.
Borland is still charging idiot prices for Interbase, and there remains a dearth of decent Interbase admin tools. They will kill it if they keep this up, which would be a crying shame, as it eats SQL Server alive in a heavy concurrency situation - which is what most medium to large sites have.
More sedition - Jet as a royalty free server
Once upon a time Microsoft was preparing to replace SQL Server with Jet; then they got the rights to the SQL Server source and didn't go through with adding the layers necessary for Jet to be used remotely (as a server).
For the information of anyone about to assert that Jet does not have what it takes for high volume or high traffic conditions, a custom build of Jet is what Microsoft Exchange uses to store email, blobs and all. In my fairly extensive experience, "suitable for industrial applications" is a euphemism for "this software is over-priced, a pig to configure, maintain and use, we reserve the right to randomly make changes and /or depart from standards, and third -party support is sparse, expensive and mediocre in quality."
The support in Delphi3 for abstracting and separating a data broker could fairly easily be used to build a wrapper that turns Jet into a server. Microsoft's licence restrictions on distributing Jet may easily be circumvented by deploying a hello-world application which loads Jet. So you'll need to buy an otherwise useless copy of VB. So what? It's cheaper than SQL Server (or Interbase) it supports limited replication and you can distribute as many copies to as many sites as you like.