Web Server Programming

Chapter 11
Future Technologies

These technologies are here now - but their real impact is still in the future. For some, the real uses are still unknown - you may help define the best uses for the technology.

The first example is Akamai; a system for distributing content and balancing load. The references here include several other services related to mapping IP addresses to locations. Akamai illustrates how a fairly obvious idea can be worked through to a commercial product.

The peer-to-peer and related technologies are the ones where you may make a contribution. The best uses for these technologies are still to be identified.

The final section covers Web Services. Many demonstration products exist now, but real commercial winners are still to establish themselves.


Akamai and location based services

There are many sites with simple demonstrations of location detecting services. Some use "trace route" (a mechanism that allows you to "ping" another computer and get a list of the Internet nodes that the packages travel, the last node will be the ISP of the service provider of the computer - and its location roughly defines the location of the computer). Others rely on detailed databases of IP addresses and locations. Other services use combinations of different mechanisms.

Some example services are:

One site has a visual demonstration of "traceroute".

If you can locate the user of your web site, then you can include targetted advertising. An example of many web discussions of the value of targeted advertsing is at ECommerce Times.

Akamai currently has dominant position in this field (lots of court cases continuing over others "abusing Akamai's patents" and "Akamai using some other company's patented method for routing traffic so as to avoid internet congestion"). Even if you have a good idea and a workable system, you still need very rich investors; Akamai is still running at a loss (Amazon bled money for more than four years). Akamai system isn't limited to replicating content out in the edge servers; it is possible to include edge processing.


Peer-to-peer and "Personal Internet Identity"

Peer-to-peer is still a technology for which a good, legitimate application has still to be found. There is a Business Week review of potential impact of the technology (as perceived in mid 2001) Of course, the technology is in quite widespread use already; the music recording industry complains at great length about certain dubious forms of "file sharing".

The O'Reilly company professes great belief in peer-to-peer and has helped sponsor a number of conferences. The O'Reilly site has links to books, articles, and news. The Peer to peer group have another fairly general site with news and articles.

Sun is sponsoring JXTA development model (an overview article is available). Microsoft has its peer-to-peer system. You can find numerous articles on peer-to-peer if you do a search at IBM's Developer Works site. There are a number of peer-to-peer projects registered with SourceForge (do a search on "peer" at sourceforge.net).

Both Google and Yahoo have large collections of links relating to filesharing. (Links at Yahoo). (Links at Google). Google is helpful in that it provides a separate set of links for the ever popular category Audio formats: MP3: finding and sharing.

The SETI project (illustrating sharing of idle processing power) is described at a couple of main sites:

SETI Institute
SETI @ Home (download the software etc)

The Intel sponsored projects, using distributed computing to solve problems in genetics and biochemistry, are described on Intel's "cure"site.

The concept of a personal identity on the Internet has still a long way to go before it is useful. The starting points are there with things like single sign on using Microsoft Passport or the Liberty Alliance mechanisms.

eBay has a brief explanation of their reputation scheme. A regular eBay vendor has a reputation score that is shown as a colored star, different colors indicating various levels of reputation. The scheme allows for negative as well as positive assessment but eBay doesn't show the star colors for those whose overall score is negative.

There are many web papers presenting ideas for Web Agents and Web Avatars. You will probably find that most of these are rather academic (in the pejorative sense of that word). Yahoo has a page of agent links. (Some get used. Agents are sometimes written for Massively MultiPlayer Role Playing Games such as Asheron's Call or Everquest. These agents manipulate a player's avatar, making it perform simple regular tasks that earn experience points or engage in trading with actual on-line players. See for example the Decal site that has many unauthorized plugin additions for the Asheron's Call game including some quite sophisticated game-play agents. Other agents exist that watch the auction prices at eBay; though eBay already supplies a notification service that you can use to be warned when someone puts in a higher bid for something that you are interested in.)

Weblogs represent another of the current technologies that will eventually merge into a defined Internet identity. Google has links for weblogs; links include technology, tools, and quite a large number of existing personal weblogs.


Web services

Just for interest, the specification for the long established CORBA Trader mechanism is at OMG. If you want to play with Traders (and features like the "properties" used to qualify advertised services) you can use the trader daemon in the Mico C++ ORB or a trader in the Java OpenORB CORBA implementation.

Traders never really proved popular and certainly don't have the operatic claque possessed by UDDI and WSDL.

The major players all have their sites presenting their slants on Web Services.

Ariba was another early contributor to the development of the Web Services concept. This company's focusses mainly on "Enterprise Spend Management" (things like software for ordering supplies and keeping track of expenditures). Their interest, in partnership with IBM, is to develop more effective mechanisms for business-to-business e-commerce.

The standards for the Web Services protocols and schema definitions are handled by W3.org. The site includes an overview of the architecture of web service applications, and a specification of WSDL. (There is a light introduction to WSDL at W3 Schools.).

Microsoft puts the best case for the Web Service approach:

Applications access Web Services via ubiquitous Web protocols and data formats such as HTTP, XML, and SOAP, with no need to worry about how each Web service is implemented.

It is an adage that all problems in computer science can be solved through the use of one more layer of indirection. Web Services is just another example. The programmer for a client application finds it difficult to communicate in implementation specific ways with different service providers (RMI, CORBA, DCOM, DCE-RPC, proprietary EDI, ...). So, he/she uses an implementation neutral mechanism, sending HTTP requests to HTTP servers on the service provider hosts. These HTTP servers can use any of the usual mechanisms (scripting, servlets, the .NET server-side objects that have similar roles to servlets, CGI) to grab the requests and forward them to the real server object (using whatever communication mechanism is required by that object.) (While work for the client-side programmer is reduced, the programmers on the server side get more work as they must provide the bridge between the SOAP-HTTP component and their existing legacy systems.) There are also overhead costs - inefficient communications protocols, XML parsing, heavy volume traffic, problems of state maintenance, need to reinvent CosTransactions, etc, etc. Few other examples of "solving problems by an extra level of indirection" have quite such high overhead costs. Although costly, this static side of web services is obviously a practical approach for distributed computer applictions that operate across diverse systems. It just needs a few extensions like proper distributed transaction management.

The dynamic side of Web Services is the "discovery and integration" capability. The proponents of Web Services envisage a time in the future when an inventory package running on one machine that has been given instructions to order widgets will find widget suppliers via a Universal Discovery Description and Integration registry. Having found its preferred widget supplier it will get the Web Services Description Language document that will specify the details of the order operations supported by the widget supplier's computer system. The software will then automatically compose an order in the correct format and submit the order. (Clearly, the scenario is implausible - it has no point at where contract lawyers can take a cut.)

Deployment, management, and legal problems for UDDI/WSDL can be left to the future. Meantime, the technology is pretty much here. The main sites for UDDI, WSDL and related topics include:

Finally, for a bit of a laugh, you can visit XMethods for the latest Web Services that will change the way that e-commerce is conducted. Some of the recent offerings are:

These join classic web services such as: "the daily horoscope for all zodiac signs", "the quote of the day service" (damn - I should have patented the Guru service), "Bork Bork Bork - The swedish chef!", "Returns SQL Server 2000 terms and their Definitions", "Calculates the distance between two U.S. ZIP codes", "Currency quotes in Norwegian Kroner", "Get Atomic Weight ,Symbol and Atomic number for all elements", "Lookup Grocery Items by UPC Number", "A 'babel fish' that speaks Swedish Chefish, Jive, Drawl, Eleet and other dialects", "Converts a number to words", "Get the NFL Headline News", "Get Used Cars From http://www.AutoHellas.gr", and "Converts inches <-> mm".

One day they will have to stop bothering with these proof of concept demonstration services. Accept it, Remote Procedure Calls tunnelled via HTTP connections are a proven technology. The proferred Web Services are almost all simple, stateless, single-function servers targetted at end users; they could be handled as easily with any server side technology that takes data from a HTML form and returns a dynamically generated response. Web-services are supposedly for program-to-program use with real business applications.