« April 21, 2003 | Main | April 23, 2003 »
April 22, 2003
Biological Models of Computing and Self-Reconfiguring Robots
I'm attending the Biological Models of Computing session tonight. John Scott is the moderator. When I was at the University of Idaho, I was in a weekly seminar with two other CS faculty members and two faculty members from the Biology department where we read books and papers to explore this topic. I've been out of it for a long time, but it sounded like an interesting way to spend an evening.
We just played a game that shows emergent behavior. In the game, everyone picks two people at random and identifies one as the aggressor and one as the defender and when the moderator says "go" you try to position yourself so that you get behind your defender from the point of view of the aggressor. Then you make a simple change where you are the defender and try to position yourself between the aggressor and your other pick. Two very different kinds of behavior emerge. I won't say how it turns out so as to not ruin the game for you. Try it. The behavior is predictable if you've seen the game before, but not easy to predict without empirical data.
John works for Icosystem. The question of the day, because of the background of Icosystem is "what coherent behavior emerges from lots of independent actors each following their own set of rules. There are many other "biology inspired" computing models (viz. neural nets, genetic algorithms).
The USC CONRO project was mentioned in passing, so I looked it up. Very cool, self-reconfiguring robots. Check out the hardware prototypes and the movies on the software hormones page. The concept appears to be similar to what Rodney Brooks has been talking about, but in a cellular construction. These things are like Legos on steroids. Imagine being able to create 1000s of these kinds of things with self-contained power and good sensory equipment on each one. Who couldn't love playing with these?
08:28 PM | Recommend This | Print This
Texts for My Enterprise Computing Class
I've selected the following texts for my CS426 class on Enterprise Computing at BYU for next Fall:
- MySQL and JSP Web Applications: Data-Driven Programming Using Tomcat and MySQL by James Turner
- Enterprise Java Beans (3rd Edition) by Richard Monson-Haefel
- Java and SOAP by Robert Englander
As I've mentioned before, I'm anxious to change the format a little and move a little more about Web services into the content and that will require removing some of the content we talk about now like CGI.
05:19 PM | Recommend This | Print This
Office as a Web Service Platform
Charles Maxon from Office Zealot is speaking on using Office 2003, the XMLized version formerly known as Office 11, with Amazon Web services (AWS).Charles claims that Office 2003 solves a number of issues that have kept developers from viewing it as a platform:
- Distribution - Web services solve previous distribution difficulties
- Security - Security issues have been solved. Really...we promise!!!
- Captive data - XML make the data fungible. Its not trapped in proprietary formats.
- Sophistication perception - XML and Web services are cooler to work on that macros.
Charles showed an example of giving Excel the URL of the AWS service for a search and an XML Schema and then getting a custom view of the data. Pretty simple to do and let's you work with the data using charting, sorting, pivot tables, etc. The data can be published from the Excel document to a web share for use by others.
He also demoed the research and reference library feature that allows AWS data to be brought into the Word task pane and then easily included in a Word document. The task pane essentially becomes a web browser, but its being driven by XML and formatted using XSL. This is not default behavior, but something that Charles wrote to include Amazon functionality into Word.
SmartDocs takes the task pane functionality even further allowing developers to create context sensitive controls and content that uses and modifies the XML in the Office document. The coding is done using a COM (.dll) add-in that is based on Smart Tags. The manifest contains this code, XSL stylesheets, Schemas, and so on. Charles demonstrated this using a task pane that had been customized for creating consulting services proposals.
Regardless of how its used with Amazon, I believe that this kind of functionality, built-into a program that almost all companies have already decided to buy for their employees represents a big opportunity for enterprises to roll-out Web services in ways that are inexpensive and affect the bottom-line. For example, one could easily imagine a travel application that has been built-in Word and customized for a particular company. The travel application grabs relevant data from company and travel agent Web services but looks like a Word document to the user. Publishing to the company's travel web share would then submit it. Of course, all they'd see is the XML-delimited data and they could suck that into whatever legacy application they use to manage travel now. After the trip, the user would use a smart expense report document that would grab the application to fill-in a lot of the data. Additionally, the expense report could use other services from the company's Web services to ensure that expense report rules are followed. Again, publishing to the travel web share would file it. That's one small application out of hundreds or thousands of small enterprise applications that could be built. Microsoft obviously understands the idea of platforms being more valuable than applications.
03:52 PM | Recommend This | Print This
AWS Features and APIs
Jeff Barr is the Amazon Web Services (AWS) evangelist. His presentation on AWS is online. Simplest Shop is an example of using AWS to create an alternative shopping experience for Amazon products. The site uses a comparison shopping model in contrast to the standard product view from Amazon. The site is pretty impressive when you think that the guts is all Amazon. Another demo site is the Amazon Lite site. Notice the browse mode on the left-hand side and the history box on the right.
Some Amazon information that needs to be understood:
- ASIN - Amazon Standard Identification Number. This is the basic key to each product on Amazon.
- Browse Node - Collections of items. ASINs can be in multiple browse nodes.
Amazon, as has been widely noted, has stayed out of the REST vs. SOAP debate by making their site compatible with both methodologies. I've used the site in a RESTian way and apparently so have a lot of others. Amazon handles more REST-type requests than SOAP-type requests. This probably shouldn't be surprising since if all you want is a simple "give me a listing and let me reformat it" kind of request, grabbing the XML from a search and using the built-in XSLT engine to format it is dead-simple. Even so, the Amazon Lite demo site is done in a RESTian fashion, showing that REST doesn't have to equate to "simple."
Greek Landscapes is another example of a RESTian use of Amazon. The site is all XSLT stylesheets and HTML. Click on a book link and note that the URL is Amazon, but the formatting is for Greek Landscapes.
Jeff describes three types of architectures for using AWS:
- Static architecture that uses only HTML and XSLT stylesheets. This is relatively easy to do and doesn't require any kind of sophisticated hosting.
- Dynamic architecture that uses server side code and a SOAP or XML interface. DevManagers.com is an example of this kind of site that is built using PHP.
- Pseudo-static architecture where you dynamically grab data on a regular schedule and create static pages from it for use by customers. ePinions.com is probably doing this. This kind of architecture scales well for large loads. Of course, data like availability won't be up-to-date in this model.
Jeff is talking about caching. Obviously, Amazon would prefer that users cache the data rather than hitting Amazon's servers every time. An interesting point: this is pretty easy to do in REST mode since the infrastructure of the Internet can already to this and there's lots of proxy code for HTTP already written and available for use.
Here is a tool for exploring the merchandising API. It doesn't work very well in Safari or Mozilla (i.e. its IE specific). Even so, the tool looks like a useful way to explore what kind of results you can get back and even play with the XSL transformation.
The Merchandising API allows a developer to get access to data about the products on Amazon in a variety of ways. There are two major modes: light and heavy. Light is more useful for simple indexes. Heavy is for creating fully functional product sites. I asked about URL longevity. No real answer except general agreement that stable URLs for things like images is "a good thing." The Merchandising API supports the "find" and "discover" legs of the Amazon "find, discover, buy" triangle.
The Shopping API provides the "buy" leg of the triangle by allowing users to add things to their shopping cart. The easiest way to do this, of course, is with a simple link to Amazon. This can simply take people to a page on Amazon, give them a "buy box" or even push the item right into the shopping cart. The more interesting AWS component, however, is called "remote shopping carts." The NBA Store is an example of a site that uses a remote shopping cart. The remote shopping cart creates a hidden cart on Amazon and then transfers that into the users actual Amazon cart and they're transfered into the order pipeline. A new feature announced today is that the order pipeline can be branded. Try it on the NBA Store. You'll see the NBA co-branding with Amazon throughout the order pipeline.
One of the things you've probably noticed when you use Amazon is that it now tells you that there are used items available when you search for something. Amazon does this by allowing other people to sell their stuff using Amazon's platform. The Seller API allows this to be managed through AWS. There are actually three different ways that this works: Marketplace is for Amazon products, zShops is for non-Amazon products, and Auction is for, well, auctions. The Seller API is batch oriented.
There are some external toolsets for using AWS. Rael Dornfest the "hacks" editor for Oreilly and he passed out an upcoming "confidential draft" of an "Amazon Hacks" book. Paul Bausch is the author of the book. Chapter 6 of that book will cover AWS. Here are some other toolsets:
- amazon.pl is a PERL library for using AWS from CGI scripts. Its not free ($99).
- Amazon Products Feed is a free chunk of perl code for putting an amazon products feed on your website.
- AquaNuke is a PHP-Nuke module.
More demo sites:
- Saturday Night Live People uses AWS to create a vertical niche site around Saturday Night Live and drive sales of books, DVDs and other merchandise related to the cast and guest hosts.
- Here are three power tool sites: Shop for Power Tools, NE Sales, and Tool Realm. Three different takes on the same product line that all use Amazon as their platform.
10:34 AM | Recommend This | Print This
Amazon
Some facts about Amazon:
- 31 million people bought something on Amazon last year
- 21% of the transactions on Amazon are merchants other than Amazon
- The Amazon Web services API allows developers who are not Amazon employees to use the platform.
- Amazon has spent about $900 million on technology.
- Associates program is second most successful marketing program. There are 900,000 associates in the program (I represent two of those IDs).
The Amazon Web services platform comprises three APIs:
- Selling API
- Merchandising API
- Ordering API
For this to be more than just an interesting playground for geeks, Amazon has to provide an economic model that works for other business. That's the only way that they can use outside development effort to leverage their technology investment and encourage 3rd party innovation.
Amazon got into this through their "Amazon Recommends" program that they made available to associates. They found that many people were screen scraping the HTML and decided to just send them XML before they converted it to HTML. The associates program already had Amazon thinking that working with partners was a good way to do business, so Web services is just a way to enable that. I think its interesting to note that the desire to cooperate came first. If the associates program had fizzled, Amazon wouldn't have embraced Web services easily.
The key thing for Amazon goes beyond merely cooperating with partners, however. Amazon is the 800 pound gorilla, so what they're creating is a platform instead of an application. Tim Oreilly likes to say "a platform strategy beats an application strategy everytime."
09:52 AM | Recommend This | Print This
Conference Start
One of the real treats of these OReilly conferences is getting to meet so many of the people I read everyday. This morning at breakfast, I was at a table with Glenn Fleishman, Tim Pozar, Cory Doctorow, Rael Dornfest, and Doug Kaye. I'm sitting in the Amazon workshop right now. From the schedule, it sounds like it will be an interesting day.
09:41 AM | Recommend This | Print This
RSS for eGovernment
The State of Utah's Enterprise Development Group (eDG) has recently been working on RSS applications in Government. Ray Matthews and others at the Utah State Library has been educating people from all over on RSS. Its great to see some of it sticking in house. I think RSS has great applications in eGovernment. Press releases are an obvious application, but other applications include event notification for all kinds of things, but public meeting notices would be a great first start. Another example: I'd like to see the CommuterLink data available via RSS. What about court decisions? Someone ought to start a catalogue of all the things that you might want to do with RSS and eGovernment. I'd bet the list is long and that most of the applications are not all that expensive to implement.


