September is here. And with it, a great opportunity to resume professionally blogging. Before getting on to new stuff, I have had a bunch of older material standing around waiting for polishing and publishing – so here goes with the Architecture Series…
Software architecture is both an art form and a science – especially when designing applications for use in mission critical environments such as the typical online storefront. In e-commerce, mission critical is certainly an accurate characterization. The cost of downtime for a large retailer can be enormous – often times averaging $250,000 per hour or more. During a peak holiday season shopping spree the cost of downtime can easily extend into the millions or tens of millions of dollars per hour. Then, there is the cost of reputation damage. Bad site outages often make front page news at some level – and can in the worst case end up driving customers away to the competition.
Then, there is the cost of development and deployment. Building a mission critical e-commerce application can be an extremely costly proposition from a time and resource perspective. Deployment timeframes can range from several months to potentially several years – usually requiring the dedicated attention of a team of people. Given this, the desire is usually there to get several years of usage and utilization out of the system once it has been deployed without the need for costly retrofits of some sort.
All of this brings together the need to get the application architecture of an e-commerce site right the first time. And that task requires a fair degree of consideration over and above the average Web application. To architect a Commerce Server site effectively, one must understand not only Commerce Server and its technical considerations – but those of all of the underlying platform components as well as the requirements of the end business customer. It makes on the surface a somewhat daunting proposition; this chapter will attempt to demystify the process and provide a concise guide of the considerations needed to successfully deploy a Commerce Server solution – regardless if one is running a small online storefront or a global retailer. In addition, some insight will be provided into the how and why the product is architected in the manner it is – in an attempt to answer the annoying questions along the lines of why did Microsoft do it this particular way?…
To start with architecting a Commerce Server application, it is helpful to understand conceptually just what Commerce Server is and is not. First and foremost – it is not a server in the traditional sense. It is a combination of:
• Developer Platform – An object and data model representing typical e-commerce entities such as catalogs, inventory, orders, etc.
• Applications – Tools utilized by business users and IT professionals to deploy applications built by the user on top of the aforementioned Developer Platform.
In future posts, I shall start going through the different pieces in detail and start explaining how to think about the various pieces to develop a complete software architecture on Commerce Server 2007.
Hope this helps!