The SDForum presented an all-day seminar on web-based architectures at PARC on September 14, 2005. Presenters brought their views of what architectures are, especially as they relate to the web.
The first keynote entitled Software Architecture and the Web, was presented by the luminary Grady Booch, IBM Fellow and Industry Thought Leader, IBM. Grady's thesis compared the history of software architecture to civil architecture. Both are rooted in trial and error and improve with advances in materials and design on the civil side and rising levels of abstractions on the software side. However, architecting software is different as there are no equivalent laws of physics.
Grady defined architecture using a dictionary definition and IEEE 1471-2000. Kent Beck's definition was the most entertaining: Software architecture is what software architects do. But it all boils down to the fundamental structure of a system.
Fundamentals never go out of style: Crisp abstractions, clear separation of concerns, balanced distribution of responsibilities, and simplicity remain the cornerstones of software architecture. The best architectures are simple and full of patterns. The maturity of something can be measured if something can be named, such as the Gang of Four patterns.
We shouldn't blind ourselves by thinking that web architecture is the only game in town. Grady suggested we look elsewhere for ideas such as game development, high performance computing, command and control, artificial intelligence, and so on.
Grady closed with, "Software development has been, is, and remains hard (and that's what makes it so fun!)"
The first panel addressed Leveraging Functionality and Frameworks, and included David Marks, Co-founder and CTO, Loomia and moderator; James Ward, Flex Product Evangelist, Macromedia; and Niall Kennedy, Community Manager, Technorati. David Tempkin, CTO, Laszlo, was ill and could not attend. The panel introduced us to Flex, Macromedia's XML-based server-side programming environment that leverages client-side Flash, and AJAX. These technologies are giving the user more interactivity and are taking advantage of increased bandwidth.
Niall's company is working on blog search software. Unlike Google which returns unrelated documents, their software finds blogs related to a news story, for example, or can provide feedback to congressmen regarding what their constituents are saying about a particular bill. The software also answers the question: What's my buzz today? So it's good for folks with egos.
A couple of the panelists suggested the use of REST for the initial page access and AJAX thereafter. It's also important to provide a fallback in case Javascript isn't available on the browser (about 10% of usage). It was also suggested that structuring your page with XHTML would make it easier to obtain data than scraping HTML.
What hot? Flex (and Lazlo), of course, as well as AJAX, REST, E4X, SOAP, exposing APIs (like Google), eBay, Google maps, Yahoo maps, and Amazon web services.
This was followed by another keynote entitled Microsoft Connected Systems: The New Application Model, and was presented by Adam Denning, Senior Director of the Architecture Strategy Team, Microsoft. Adam discussed architectural legacies, architectures, and modeling.
Adam started his discussion with architectural legacies such as dual crossover freeway exits--what were they thinking?--or Cambridge streets--why didn't they anticipate cars in the middle ages?
Tongue in cheek, he defined an architecture as a picture with arrows. In other words, draw pictures of what you want to create since modeling is the key to everything. Adam observes that application models include recurring logical capabilities such as: Messaging & Services, Interaction, Workflow, Identity & Access, Data.
And then Adam presented several slides of Microsoft products that implemented each capability.
In closing, Adam defined a connected system as a software solution that links loosely-coupled business assets into a single value chain.
The next panel was entrusted to discuss Design Challenges and consisted of Kevin Burton, Co-Founder and Lead Engineer at a new to-be-named startup; Andre Stechert, Principal Architect, Splunk and moderator; Alok Bhanot, Director of Architecture, eBay; and Colin Johnson, CEO, Eyetools. Some of the challenges discussed included browsers, scaling, tragic design decisions, and key requirements. Questions were answered such as how design differs in the large and small, how eBay is architecting the Web 2.0 city, and what is design.
The unanimous key requirement was simplicity. Don't over-engineer and keep the options simple. It's also good to take user comments and feed them back into the interface. Every site that interacts with their customers does very well.
eBay is opening up their platform via APIs to allow innovation. This is fostering a large, growing, and vibrant third-party and internal development community. It was generally agreed that exposing APIs was a good thing.
Because rolling out changes affect 150 million users, eBay has to exercise caution via seven levels of processes depending on the problem. In contrast, a startup has the opposite problem. Every day you don't deploy, you're losing money.
One example of a tragic design decision was based upon a developer's rank rather than what the user wanted. Another was a solution to a problem that didn't exist. In other words, a component might be inelegant and take weeks to re-architect, but it would be better to use a profiler and fix the real bottleneck in a few hours. Finally, failing to anticipate the success of a product and not being able to scale is also tragic.
The browser targeted depends on the audience. eBay and Eyetools might target the really awful, but prevalent, Internet Explorer, and remove features that don't work on Firefox. A company fielding a small, innovative application that attracts a population who uses Firefox and Safari might start with Firefox and remove features that don't work under IE. In either case, you should design your site so you can provide users with features for cutting edge browsers yet still provide functionality for others.
The panel left us with a thought about design: Things that are easy to change should not be included in your design. For example, a civil architect doesn't design which light bulb to use.
The last keynote was entitled Metropolis: Envisioning the Service-Oriented Enterprise and was presented by Pat Helland, Senior Principal Engineer, Amazon. Pat drew parallels between the growth and development of early cities and software. He pointed out that we are in the software equivalent of the 1880s and have a long way to go.
Cities are like software applications. Both cities and software grow independently, but share things in common. Trains, like the Internet, bring stuff back and forth. Over time, the type of stuff transported becomes more specific.
Cities and software share infrastructure issues. Cities have plumbing, electricity, and sewage. Applications need to be plugged together in a similar fashion. Both houses and applications are retrofitted to handle newer infrastructures.
If software is like cities, loose coupling helps, heterogeneity happens, business processes improve, and independence is essential.
Pat's funniest analogy was comparing XML to cardboard. XML surrounds and protects data and applications as cardboard surrounds and protects shipped items. One other aspect of both is that you don't use either internally since it's too slow to place the items in the box or to take them out.
The last panel of the day covered Tips, Techniques and Tools. The panelists were Kieran Lal, Director of Development, Civicspace and stand-in moderator for Bill Grosso who had to tend to a work emergency; Joe Nuxoll, Senior Software Architect, Sun Microsystems; Benoit Schillings, CTO, Openwave; and Jacob Taylor, CTO, SugarCRM. The panel's hot technology is AJAX. The panel suggested that applications should become ubiquitous and run on the web, on your desktop, and on your mobile device. RSS feeds have several desirable features. SOAP and open APIs are reducing the cost to enter the enterprise. For example, you can get Google's spell checking in two lines of PHP code.
Kieran opened the panel and, choked with emotion, talked about his Katrina relief effort which was building a web site to reunite families with their children. The big lesson from this experience was to be prepared to adapt to different data formats and be able to change your architecture dynamically. Kieran's group called on Microsoft to help, and despite their billions of dollars of investment, Microsoft couldn't handle the disparate data that Kieran had. Finally, he called for corporations to have values that transcend the profit.
There is a heavy pull toward generic applications and application ubiquity. An application should run on the web, your desktop, and on your mobile device. In other words, the application should be hardware independent so that you can use an application any where and any time. For example, Google Earth uses the same data as Google Maps to provide a more 3D view of the earth.
Mobile phones are getting more powerful which is leading to a shift to access data via the mobile device.
Asynchronous RSS feeds are good for mobile computing. Slow mobile connections benefit from asynchronous communication. Furthermore, the formats abstract the data from the presentation which is also a benefit on small devices. RSS feeds have a strong collaborative aspect since you can embed the data within your application. Publish/subscribe models, such as RSS, are valuable for users who are mostly disconnected from the network, which is the case of the Katrina survivors and rescue workers.
Here are a few additional techniques the panelists espoused:
The panelists gazed into their crystal ball a bit. Communication and collaboration will be internationalized and translated on the fly. The online identity problem will be solved. VOIP will change the Internet and replace the phone company. People will become accustomed to using voice for interaction. For example, there is already an online music store that has a voice interface.
Bill Wohler programs user interfaces in Java/Swing on Linux. He can be reached via email at wohler@newt.com or you can visit his website at www.newt.com/wohler.
Copyright © 2005 Bill Wohler Last modified: 2005 About photos |
Free DNS |