Internet : Java Glossary

*0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ (all)

Internet

The collection of computers, satellite links, fibre optic links etc. that connect together a substantial proportion of the world’s computers in one giant network where any computer can talk to any other computer.

The Law

You might wonder how Internet law can work. If you have your servers in Thailand, aren’t you immune from US law? Governments can make up whatever laws they please. The tools they have to enforce them include

We see disputes about American companies refusing to comply with European privacy laws to protect Europeans. We see the Chinese blocking their citizens from reading sites that contradict Chinese propaganda.

The Future

This essay is about my vision of what the Internet will be like in future. In future everyone will be using the Internet, from toddlers to the terminally ill. We need to make it much simpler and safer to use. There are five broad areas I will cover:

More efficient, reliable protocols. For distributing files and transporting mail.
Routine use of digital signing and encryption. A general tightening of email and newsgroup protocols to prevent forgery and spam and to ensure reliable delivery.
Automatic distribution and update of software. Rent, buy or lease your software. The effect of anti-piracy measures.
Electronic commerce. Subpenny royalties work economically even for subpenny transaction amounts. It means moving away from software purchase to software rental and other payment schemes where you don’t give the vendor all your money up front.
Desktop Migration. Whenever in the world you sit down at a computer, your familiar files and applications are there for you. They follow you around like a puppy.

More Efficient Protocols

There are six main areas that current protocols are inefficient.
  1. The IP (Internet Protocol) IP protocol is running out of addresses. Happily IPv6 (Internet Protocol Version 6) is waiting in the wings with giant 128-bit addresses (4 times longer than the current 32-bit addresses). The new IPv6 protocol has fixed-length headers and provisions for jumbograms (giant packets) which will make transmission more efficient.
  2. SMTP (Simple Mail Transfer Protocol) SMTP Email uses mime-encoded transmissions that deliberately waste the high bit of each character in various ways. BASE64 encoding adds 33% overhead to each transmission. 25% of the transmission bandwidth is deliberately wasted. There is really no need for this. New protocols should be able to send 8-bit characters through unmolested. By default, mail and enclosure are currently neither signed, compressed nor encrypted. That has to change. SMTP is too loosey goosey to trust with anything important like money, legal or medical data.
  3. NNTP (Network News Transfer Protocol) newsgroup traffic is 95% quoting something that someone else has said previously, often with correct attribution. There should be a new protocol that avoids sending the quoted data and reconstructs it as needed with automatically correct attributions. As a side effect, it would be impossible to mis-quote someone, just quote them out of context. However, anyone with a click of a mouse could see the original context.
  4. FTP (File Transfer Protocol) FTP protocols send many unnecessary ACKs thus generating extra packet traffic. FTP protocols in theory can recover from disconnection, but in practice cannot. FTP protocols don’t automatically avoid sending a file you already have. There is no provision to be notified of updates. There is no information glued onto a file to record where it came from, what it is for, where to go for updates and how frequently. I suggest the SAX protocol as a replacement.
  5. <<!-- macro Acronym HTTP (Hypertext Transfer Protocol) --> protocols don’t use compression by default. With CPU (Central Processing Unit) becoming so cheap for compression/decompression, the default should be to send all messages compressed.
  6. Both HTTP and FTP suffer from a problem if the server is overloaded. This can happen if say a small vendor releases a new version of his product. For a few days his server is swamped. It can happen if a web page suddenly becomes popular and no one can get through. A popular page or file should be cached throughout the Internet for rapid access. This is a problem URN (Uniform Resource Number) s were designed to tackle. For some reason, that project has stalled.

RFC 3439 elaborates the Internet’s philosophy of simplicity over efficiency.

Digital Signing and Encryption

Everything will be transparently signed encrypted/decrypted. When something arrives, you know it is from whom it claims to be from and that no one but the government has snooped on it. This is the key to getting rid of spam and safely distributing bulk files and allowing you to sit at any computer on the net and treating it as if it were your home machine.

Automatic Software Distribution and Update

Installing software and updates has become easier over the last few years. I think it could be simplified further: one click to install software and fully automatic updates. There are two sides to this. How do you arrange payment and prevent piracy and how do the automatic updates work. I have described the payment and anti-piracy schemes as one of my student projects. I will focus on the automatic update side here.

Software should periodically check itself out to make sure all files are present and accounted for and that no files are corrupt or inconsistent. If there are problems, a generic repair program can automatically download just the needed pieces for repair, or restore them from backup.

There is great opposition to automatic update among nerds. They want to control the process themselves. This is a delusion of grandeur. Today, installations are black boxes. There is nothing about them you can control any more, other than which drive to install on. Further, ordinary users don’t want to control them. Drive selection should be automatic. Further, clever defraggers should be free to move files about between drives to speed access. Demanding that everyone manually control drive selection is like demanding that everyone continue to manually control the spark advance on their cars.

You legitimately might want to control the timing of the installation of updates. You might want to freeze any updates the night before your income tax is due. There is always a chance that the update will somehow interfere with your crucial work, or simply confuse you with its improved user interface. You don’t have time to learn anything new.

The other objection nerds have to automatic updates is that today, so many companies botch them. As nerds, they consider themselves more capable than the vendors to handle the updates. They could care less about the average user. First, I suggest that the update process not be handled by individual vendors. Vendors provide the files, but the operating system, or standard privileged Java system classes, do the actual installation work. Operating systems must ensure installations or updates do not meddle with any other applications or files. The official installer would ensure there was a backup so that user could rollback the update with a click if there were problems.

If we don’t have automatic updates what mindless busywork do we have to contend with?:

  1. Periodically polling the vendors of all your software to see if there is an update available.
  2. Finding the proper website where updates are.
  3. Finding where on that website the downloads are.
  4. Figuring out which downloads apply to you.
  5. Figuring out if you already have the downloads.
  6. Making sure you have not missed some other downloads that must be applied first.
  7. Remembering the obscure names of all the downloads and ensuring all get processed.
  8. Babysitting the update installation with periodic OKs and shepherding it through one or more reboots.
  9. If things don’t work, talk to a vendor support person who will treat you like a criminal accusing you of not doing all these steps correctly when you are sure you did. You have no way to prove you did. You can’t even convince him what version you have or tell him your registration number since the program won’t run to show you its about box. There is nothing that will go through and verify that all necessary files are present and accounted for, without corruption.
  10. Repeat the above process for every app you use.
The problems will only get worse as updates become more frequent and we have more apps on tap. The problems will become worse as more late-technology-adapters, luddites and technopeasants start being forced to use computers.

Customers will identify themselves as beta tester, early adapters, mid stream adapters and conservative late stream adapters. They may pay different rates for these positions in the update order. Updates will be phased in for maximal safety for the late stream adapters. They won’t need to research carefully the reports of others before deciding when and if to apply an update. If the vendor repeatedly fouls up, get a new vendor.

Since vendors will be 100% responsible for cleaning up their own messes, I suspect they will be much more careful than they are now.

In any case, when a new version comes available, especially an emergency bug fix, there is a sudden burst of downloads. We need the URN-style caching to help rapidly broadcast such updates. The URN scheme would also allow all the users of a given LAN (Local Area Network) to share one copy of the downloaded update.

Because update files are encrypted and because they are useless without a custom-crafted digital key containing branding information and crucial parts of the program, they can be broadcast freely without restriction over public nets and public caching servers.

Sub-penny Electronic Commerce

If Mike Nichols were to remake The Graduate, instead of plastics, subpenny royaltieswould be whispered into Benjamin’s ear.

Subpenny royalties work economically even for subpenny transaction amounts. It means moving away from software purchase to software rental and other payment schemes where you don’t give the vendor all your money up front. This enhances competition. To switch vendors, you need not discard any investment, other than your investment in learning. This threat keeps vendors on their toes. The focus shifts from sucking in naïve new customers with dancing paperclips to meat and potatoes issues to keep existing customers happy.

When subpenny royalties are finally invented it will create a Gutenberg-comparable revolution. Anyone could become self-employed easily selling their services on the Internet without fear of piracy. See prebranded software rental, online books, digital cash.

Flat Billing

You should pay for your Internet content Via a flat bulk packet charge that applies to any Internet content. Instead of sender-pays, the Internet should be receiver-pays with the sender getting the residue after the transport costs are paid. Your monthly Internet access bill would be like an electric bill, billed in kilopackets instead of kilojoules. You are paying not only for transport but also for content. This scheme would have benefits such as: The creator of the content gets paid, no matter where the content was downloaded from. Popular content will tend to be duplicated all over the net.

Each creation has a globally unique name and a globally unique number (akin to DNS/IP).

There is a directory so you can find out the latest IN (incarnation number) of any C (creation). Ins always start at 0 and increment by 1.

You can register for birth notices on any creation so that the creator will indirectly notify you of any new incarnations.

All creations/incarnations are digitally signed, so that you can be sure you got the original work uncorrupted and untampered.

Incarnations are distributed in two compressed forms, complete and incremental deltas from the previous incarnation.

God is in the details.

Migrating Desktop

If you go to a hotel in Switzerland, there will be a computer in your hotel room. You sit down at it, identify yourself with a smartcard containing a private/public key and type in a passphrase. At that point all your files and applications appear on the desktop, just as you left them at home.

How does this work behind the scenes? First, the applications would not actually be transferred. The hotel would have common ones such as MSWord already available on its hard disk. They would be useless to anyone without authorisation to use them however. When you buy or rent MSWord, you are buying the right to use it anywhere in the world, not just to use your copy back home. Other, less common, applications would be rapidly downloaded and installed as needed from the Internet. Some that you wrote yourself might actually have to be transferred as needed from your home machine (which may have a 24-hour ADSL (Asymmetric Digital Subscriber Line technology) or fibre connection). More likely they would come from a backup service server that automatically kept backups of your personal files.

When you rent software, you can afford to have thousands of programs on tap. Your hard disk acts like a cache that holds the apps you use most frequently. If ever you use one not on the disk, it can quickly install it from the Internet completely automatically.

The desktop in your Swiss hotel room would not be completely identical to the one back home. Instead of your local printer icons, you would see the icons of some printers owned by the hotel, or by a print shop across the street.

Having your personal files flying over the Internet, perhaps arriving at the Swiss hotel before you do is disconcerting. All transmissions must be protected by heavy duty encryption. We have to persuade the nations of the world to butt out and legally permit heavy-duty encryption for files sent to yourself or to anyone else for that matter.

Java

Java is key to the migrating desktop. If you had a Mac back home and the Swiss hotel had a French Sparc processor, your code would not have much chance of working. Java provides the common denominator for code and file formats. Eventually emulators, co-processors etc. may allow other languages to piggyback on the migrating desktop scheme. However, the first out the gate with this migrating desktop will be Java.

For this to work well, we need faster communication lines than are common today. Thus efficient use of bandwidth is very important. Java is the most efficient language in terms of small executable sizes and so is a good candidate to lead this effort off.

I repeat, fast download is crucial. Other techniques that will be used include: giant hard disks to speculatively cache huge numbers of apps the user might want to install (i.e. make visible), compression, distributing all manner of updates as deltas, ADSL and fibre links.

To start with, only a very few apps may migrate — ones that come in perfectly compatible editions for a variety of processors. Perhaps, to start, only the business basics will be provided — email, spreadsheet, word processor, browser.

Backup Service

The backup service has two functions:
  1. recovery: from theft, fire, loss of file, accidental mass deletions.
  2. travel: to enable you to access your home file from anywhere else on the planet (including your office or the machine in the bedroom), even when your main machine is turned off.
The backup service is key to the migrating desktop. Instead of mucking about with fragile DAT (Digital Audio Tape) tapes, media that became unreadable after a few years, forgetting to do backups, forgetting to keep backups offsite as well, micro managing incremental backups and restores, software that can’t restore from a previous version of the backup, software that can’t restore a single app, software that can’t restore the registry etc. you hand the problem over to professionals who look after this for you. They backup just what needs to be backed up using the high speed Internet connection. There is no need for the most part to back up the apps themselves which are freely available cached all over the Internet. The backup service can combine backups from different customers so they need to keep only one physical copy of an identical file, while logically keeping two copies.

This page is posted
on the web at:

http://mindprod.com/jgloss/internet.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\jgloss\internet.html
logo
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[107.21.163.40]
You are visitor number