The .NET Platform
Development Tools
COM & COM+
Data Access
Web Development
XML Technologies
Windows Servers
Wireless & Mobile
Security issues
Design & Process
Career Development
Analysis & Comment
Disposable Objects
You are not logged in: login here to access all areas.
How do you put together a leading-edge application in just 60 days that?s got to work faultlessly in front of 7,400 developers? Matt Nicholson visits KPMG Consulting to find out.
Author: Matt Nicholson
Last updated: Nov 2001
Going to Extremes Scaling down The infrastructure Extreme Programming
You?re a high profile consultancy with a gold-plate reputation and a wide range of blue-chip clients. You?ve been asked to develop a leading edge solution in just 60 days, at which point the whole lot?s got to work flawlessly for 4 days in front of an audience of over 7,400 technical experts. The deadline can?t be changed, and you?ve got to work alongside a number of partners, and in a foreign country. Furthermore, you?ve got to build it on a platform that?s still in beta. What do you say?
If you?re KPMG Consulting you jump in the deep end, because that?s exactly what the company?s Microsoft .NET practice team took on when they agreed to construct a wireless application around the Compaq iPAQ and the .NET platform for TechEd 2001 Europe, held in Barcelona in July.
The solution was put together at KPMG Consulting?s Enterprise Technology Centre (ETC) in Watford, UK. This brand new multi-million pound facility is the result of a partnership between KPMG Consulting, Microsoft and Compaq, and allows clients to work with the .NET platform in a fairly unique environment. As head of Engineering David Leadbeater put it, ?We can emulate quite large pieces of enterprise. We have available what is fundamentally a data centre without any of the data centre responsibilities.? The ETC offers isolated consulting rooms with key-card security to allow clients to work away from their home site while still maintaining privacy.
KPMG Consulting had initial discussions with Compaq in February 2001, just six months before the conference. This was followed by a meeting with Andrew Cheesman of Microsoft, who was responsible for putting together the Communications Network at TechEd. This provides delegates with a network of desktop PCs and a range of applications for checking emails, entering discussions, downloading presentations and personalising schedules. Matt Everitt, marketing manager for the .NET practice, recalls: ?We were proposing to demonstrate .NET and Web Services working, and adding real value to the conference.?
The team KPMG Consulting put together for the project was quite small, comprising five developers, four infrastructure architects, one person on analysis and process mapping, one testing project manager, two full-time testers and some ten part-time testers. Overall manager for the project was Andrew Wishart who was also responsible for interfacing with Compaq, Microsoft and the other partners involved. David explained, ?On the development side we had traditional ASP developers, a graphics/web designer, a couple of VB6 developers with COM+ experience, and a little bit of C++. A traditional mix that you?d find in any development house.?
Andrew takes up the story: ?Being a classic consultancy, you would expect us to use heavyweight methodologies. Instead, we threw the rule book out and went to Extreme Programming [see panel]: five phases, and they all ran in parallel. Some people might say it was Andrew?s madness, but it wasn?t. It was actually very tightly defined as to who was going to do what, how they were going to do it, and who was shadowing whom. Because of the size of the team involved, the methodology was extremely easy to use.?
The objective was to put together a range of applications that the conference delegates could access through Compaq iPAQ Pocket PCs, and to deliver them over a wireless network using Web Services implemented on .NET Framework Beta 1 and the .NET Enterprise Server range. TechEd featured some 260 technical sessions spread over four days and 12 rooms in the massive Montjuďc 2 conference centre, so perhaps the most important application was the Conference Planner where you could check session times and locations, and pre-book attendance.
Other applications included Feedback Forms, allowing you to fill in and submit session evaluation forms online; Maps, displaying scrollable maps of both the conference centre and Barcelona; Tech-Ed Catalogue, where you could purchase goods from the conference store; and Auction, where you could bid against other delegates for specific items. Compaq arranged for 2,000 Compaq iPAQs to be available on loan, each fitted with 802.11b Wireless Cards, and the conference centre was fitted out with 60 wireless base stations to create one of the biggest wireless networks ever built. A further 2,000 wireless cards were available on loan for those who had brought their own Pocket PCs or laptops, and of course the network could be accessed by anyone who had brought their own compatible wireless card.
Compaq had already been involved in a similar, but less ambitious, project for the World Economic Forum held in Davos, Switzerland in January. This had been in partnership with Accenture, a competitor of KPMG Consulting, so Compaq felt that it could only give a high-level overview of the experience, but this did lead to Andrew?s decision to use the native Windows CE database (CEDB) as the local data store, rather than the SQL Server CE engine. Andrew explains, ?They developed an application which took over the entire iPAQ, which was not acceptable for us as a design decision. We wanted to deliver the application to any iPAQ at the event. SQL Server CE was too large a footprint.?
David adds, ?People were arriving with their own iPAQs. In order to get our software onto their machines, we had to keep it small. There is a commercial consideration here. We wanted to demonstrate an application that you could deploy to iPAQs much as you would an off-the-shelf application. You don?t expect it to take over the iPAQ.? Andrew does concede, ?.NET wasn?t there when they did their conference.?
The Conference Planner was a .NET solution from end to end and, in fact, the only .NET application deployed at TechEd. It was developed with Visual Basic.NET, using ASP.NET on the server and .NET Compact Framework on the client. Senior technical architect Simon Hutson commented, ?Without the .NET tools it would have inherently taken a lot longer to build. We would have had to build a lot more plumbing.? Beta 2 was released before TechEd Europe but, as Andrew points out, ?It was released four and half weeks before we had to go live, so we weren?t about to change.?
The Auction site was implemented using Commerce Server 2000, and accessed through a browser interface. As Matt explained, ?We re-wrote the browser interface depending on whether you?re a desktop machine, or an iPAQ. It was not a Web Service, it was classic Commerce
Server, using ASP.?
The architecture for the application is shown in the diagram. The Windows CE applets talked to the CEDB which provided a local data cache on the iPAQ. Updates were communicated as SOAP packets and synchronised with a dedicated SQL Server 2000 database, which was in turn synchronised with the central conference database. There were two streams of operation: a high priority synchronous stream, used for session updates made by the event organisers, for example; and a low priority asynchronous stream which would be used to transmit session bookings made by the delegate. As Andrew described it, ?We designed two models within the Web Services: the asynchronous ?pass and wait for nothing?, and the synchronous ?pass, hold open and provide a result back please?.?
The asynchronous stream used Microsoft Message Queue on the server, and a ?store and forward? facility on the iPAQ implemented with KPMG Consulting?s own K-ROPE (Remote Object Proxy Engine). This allowed delegates to move out of range of the wireless network, and still use the application. Updates would be stored on the device and in MSMQ, ready for transparent communication once the device comes back in range. As David explains, ?The Remote Object Proxy works within a CE environment. We wrote the store and forward code ourselves. We?re currently working on
the ability to seamlessly switch between 802.11x, GSM and GPRS environments, and on the security issues involved to give end-to-end security.?
Another example is provided by the Auction site. If the organiser decided to take an item from the shop and put it up for auction, this would trigger a Web Services broadcast to all iPAQs. If a delegate selected the item again, the application would make a synchronous call through Web Services requesting the item?s status and, if up for auction, requesting a URL where the delegate could place a bid.
Conference Email was handled using the standard IMAP4 interface that comes with Windows CE, and connected right through the TechEd Communications Network back to the Exchange servers situated in London. Andrew told us, ?The only issue we had with the iPAQ implementation is that currently there is no way to pre-configure it, so it had to be manually configured for a lot of people - something that is resolved later in ?Merlin? [now Pocket PC 2002].?
For the Map application, the team developed a special JPEG to bitmap switch that allowed images to take up the minimum amount of disk space, and be converted to bitmaps on the fly. David explains: ?We?re working with MapPoint 2002 now, where
we intend to develop the integration between information services and location services, all tied up with GPRS. The switch is now part of our toolkit.?
A key component of the application was the validation layer. The Active Directory servers for the Communication Network itself were located in London, connected to the conference by leased line. As Jon Whitear, head of infrastructure for the .NET practice, explained, ?In terms of Active Directory we were a child domain, using accounts from the master domain in London. Getting the replication topology right was just a matter of tweaking of Active Directory.? When a delegate logged in to his or her iPAQ, it authenticated against the Active Directory for the whole Communication Network, including the Auction site, the email environment, and the iPAQ itself. If delegates changed their password for the email environment when they logged on, it changed the password on the iPAQ as well.
The validation layer used a combination of the wireless network MAC address, the user ID and the iPAQ?s serial number, much like a mobile phone. As a result, the first time someone logged in the iPAQ would be registered to that particular user. As Jon explained, ?Just to show we could do it, we built in a security model which could distinguish lost iPAQs that were being used by other people and potentially shut those iPAQs down. We had a piece of code in there that would lock users out of the application until an administrator actively cleared it.? The team also guarded against denial of service attack by shutting out anyone who sent more than 50 packets per second.
However they stopped short of encrypting the SOAP packets as they found the HTTPS support in .NET Framework Beta 1 deficient. Andrew said, ?We felt uncomfortable with it. We reported it back
to Microsoft and we know Beta 2 is 100 per cent better.?
Another area that needed careful planning was installation. The units supplied by Compaq were a known quantity, but there were also the iPAQs that delegates brought with them to take into consideration, to say nothing of other Pocket PC devices that people might bring.
The installation mechanism had to be non-invasive and straightforward. ?We ended up using ten 32Mb CompactFlash memory cards,? Andrew told us. ?Take the wireless card out, drop the memory card in, and 30 seconds later you would be up and running. It auto-installed the network drivers and the whole suite of applications, configured as much as possible - apart from the IMAP4 interface.? KPMG Consulting is looking at wireless delivery, where applications are remotely installed onto the Pocket PC through Web Services. However, as David explained, ?For TechEd we needed a simple and quick method. There are installation packages that are capable of doing it, but they all require an agent on the device.?
Because Compaq was sponsoring the event, the specification called for an application to work on the Windows CE platform on any Compaq iPAQ device. That said, the team did get it working on a Hewlett Packard Jornada at the event, and the site was accessed by delegates using laptops and even Apple PowerBooks.
The whole application, running on 15 Compaq ProLiant servers and a handful of ancillary units, fitted into a single rack that was shipped from Watford to Barcelona and assembled on site. The hardware weighed 450kg and required, as Jon recalls, ?Six strong men and a crowbar.?
The .NET practice has done quite a bit of work building e-commerce platforms around Commerce Server 2000, and already had statistics from scalability tests. This enabled them to work out the equipment needed, although Jon told us, ?I was very surprised at the small-scale rig we used, bearing in mind it had to be completely fault tolerant, so there had to be at least two of everything.?
Nevertheless, during testing they discovered that Microsoft XML Parser 3.0 didn?t scale well. Andrew explains, ?We found we ran out of memory on a very large box running at about 170 to 250 concurrent connections. The design goal I had set for TechEd was that we had to be able to handle over 450 concurrent connections, and at one point we were actually running over 550. Compaq very kindly shipped more CPUs and more memory at very short notice, and we actually got to the figures we wanted.?
The rack included an SQL Server 2000 database configured as an active/passive cluster. This was set up to give real-time replication with the Communication Network?s data centre in London, right through to the CEDB on the individual iPAQs. Jon told us, ?When the Comms Net environment went down for a couple of hours, through power and heat problems, we were still up and running. When the link came back up again we just automatically synchronised with the master database.?
There were some schema modifications to the master database that the team weren?t aware of until they arrived on site, but these were fixed before the event began. Simon commented, ?It?s amazing what problems an underscore can cause!?
The team found that such a level of interaction actually changed the nature of the database. David explains: ?There was quite a bit of circular activity. People were booking sessions with the iPAQ. Event organisers were looking at those bookings and saying ?Ah, this session needs a bigger room?, moving it into a bigger room and
then sending a notification via the iPAQ back to the people who had booked it,
who might then change their mind. It became very dynamic.?
Plugging the rig into the wireless infrastructure and the Communications Network was straightforward. However the team decided to go one step further, and use Microsoft Mobile Information Server (MMIS). Andrew is justly proud: ?It was only announced at TechEd USA. Two weeks later Telefonica Movilés, KPMG Consulting and Microsoft deliver it in the TechEd Europe environment and have all the delegates able to get to their Exchange mailboxes in London over their WAP enabled phones in a local charge scenario funded by Telefonica.? It also enabled them to post notifications from the Auction site, about the status of bids, to delegates as SMS messages. David: ?We were getting SMS notification from Barcelona up to London, and back to Barcelona in less than 10 seconds. It was a great way to demonstrate scalability.?
In the event, the application worked extremely well. At one point the system was handling 3,000 concurrent devices, including more than 1,000 concurrent iPAQ connections. On the third day of the event the application handled a total of 4,600 devices connected over the wireless network. The site took just under 670,000 hits over the four days, although as Simon explains, ?All of the static content is cached on the front-end, so these amount to page impressions.?
Simon continues, ?Part of the reason no problems were reported with the iPAQ application was that we were sending very little information over the wireless network.? The team had set the largest packet of SOAP data that could be sent at one time at 1.8k, but in practice found they were actually sending less than 400 bytes and sometimes as little as 50 bytes.
Andrew feels that the key to the success of such a project is two-fold. On the one hand, minimise the volume of data that gets transferred. On the other, reduce the dependency of the application on the network so that, if the user goes out of range, the application goes off-line gracefully ready to synchronise transparently when it comes back into range.
Simon is very confident that the Microsoft platform will dominate the field for some time to come: ?Rather than a browser-based paradigm for mobile applications, we?re going to see client/server based applications with applets and local data stores and synchronisation through Web services. That paradigm is dominated by Microsoft at the moment. I believe that the Pocket PC platform, and the Stinger platform, will go the way of the desktop platform. It is going to be heavily Microsoft based.
?What Visual Studio.NET Beta 2 gives you, with the Mobile Internet Toolkit, is the ability to write one bit of code that runs on multiple platforms such as a limited display phone, a smart phone, a PDA, or a tablet. You don?t want to have to write separate applications for separate devices. J2ME is essentially a theoretical specification, and it?s still Java. The .NET platform is platform dependent, but with the .NET CLR [Common Language Runtime] available on mobile platforms, it?s becoming hardware independent, which is what most people actually want.?
The final word must come from Andrew: ?It worked, and it worked at the
highest
level. We proved that the partnership worked, we proved that the wireless infrastructure worked, we proved that Web Services and .NET worked. We raised about 2 million pesetas (11,000 euro) for charity, and
Steve Ballmer sent us a personal note of congratulation.
?And the partnerships all worked. Everyone stayed round the table, and stayed friends, and you work under extreme pressure at such an event. It?s a true credit to the individuals involved.?
Otherwise known as XP, Extreme Programming is a software development methodology that was originally described by Kent Beck in 1996. It is designed for use with small teams that need to develop solutions quickly in an environment where requirements are changing rapidly.
Although not a regimented approach, there are 12 practices that have become accepted as encapsulating the underlying philosophy. For example, XP teams put a simple system into production early, and update it frequently. There is an emphasis on communication, so teams use a common system for deriving names, and there is a common coding standard. There is collective ownership of the code, so changes get implemented without delay. Perhaps the best known XP practice is the ?buddy? system, where developers work in pairs, two to each machine. Refreshingly, the methodology recommends that developers work no more than a 40 hour week.
For further details see www.extremeprogramming.org, or Kent Beck?s series of books Extreme Programming, published by Addison Wesley.
Click here for our Privacy Statement. Copyright © Matt Publishing. All rights reserved. No part of this site may be reproduced without the prior consent of the copyright holder.