Saturday, March 8, 2008
Microsoft “Oslo”
But first what is “Oslo”? Interestingly Oslo is not a product. It’s more of an umbrella term consisting of several Microsoft products that simplify the process of design, building, deploying and managing service oriented solution for a vast scenario of end user consumption be it within the intranet or over the cloud services.
Olso encompasses the following technologies
• Microsoft Visual Studio “10”
• Microsoft System Center “5”
• BizTalk Server “6”
• BizTalk Services “1”
• Microsoft .NET Framework “4”
As can be seen in the list the only new product is the BizTalk Services (currently in CTP) which is Microsofts offering for building an Internet Service Bus (ISB). However recently Microsoft has also announced that they are working on a new declarative programming language called ‘D’ which is part of Oslo wave.
So is Oslo really old wine in a new bottle? Far from that – Oslo is really a revolution in software design. Its really a platform that will help us build services keeping in mind paradigm shift:
• Tools: Moving from Imperative to Declarative development
• Development process: Moving from code(ing) to assembling software from models and existing assets (aka a composition/ composite modeling approach)
The fundamental shift in Oslo will be Model Driven Development (MDD) approach, Microsoft in the past had made some investments in this space with the Domain Specific Language (DSL) and Software factory initiatives (Visual Studio GAX and GAT) – we can expect that much of these capabilities will be rolled up to Oslo where business analysts, architects, developers and IT folks will use modeling tools (and possibly the D language) to publish information about the model in terms of requirements and behavior. These models will be stored in a Model repository that can be shared by multiple tools to eventually “assemble” applications. Several vendors in the market have been touting similar initiatives but no one has delivered on the vision. If Microsoft can deliver on the Oslo vision its going to change the way we develop service oriented application.
Its expected that Microsoft will release some of the Oslo wave bits by end of 2008, however you don’t have to wait till the entire suite of Oslo products ship to get a feel for it, you can download the CTP version of BizTalk services today and take it for a spin (in the current CTP, workflows are not supported). Just the compelling idea of an Internet Service Bus and productization of that idea (manifested as BizTalk Services) has fuelled a lot of interest in this space. In the next couple of months we can expect to see lot many pure cloudservice companies building innovate products and services around BizTalk Services.
Monday, March 3, 2008
Prism – The new Composite Application Framework
Last week on Thursday, the PnP group at Microsoft released Prism at codeplex As per the site "Prism is a set of assets for developing Composite WPF applications”. Well is it just CAB with support for WPF? Not quite, Prism is a framework for developing composite applications that support WPF natively and the good news is that it has been written from scratch without pulling code out of CAB. Most companies these days require applications that are modular in nature and one where the UI can be metadata driven – Prism promises all that and more.
MS has released it as an early preview of Prism, with community feedback it can improve significantly. If you had your hands burnt with CAB give Prism a try.
SharePoint Capacity Planner tool
Microsoft had released the SharePoint Capacity Planner tool early in Feb, but up till now never had a chance to play with it. Finally took it for a spin.
First impressions:
- Microsoft has done a good job of providing a much needed planner for MOSS, the only publicly available tool available for MOSS planning in the past was the one provided by HP(which would provide recommendation of HP hardware based on MOSS specification) -
- The tool presents a wizard like interface that allows the end user to specify various parameters to the MOSS topology and allows granular control to how MOSS is consumed at branch levels (in case of intranet site) or for internet sites
- The tool provides topology support for MOSS and WSS
- Based on the topology the tool can run simulations and provide rich reports that can be used to further drill/modify the deployment architecture
The tool does not provide the capability for MOSS logical architecture (sites/Site collection etc) nor for Information Architecture however it serves as a good starting point in identifying and refining a topology for MOSS deployment.
Sunday, March 2, 2008
Improvements to .NET 3.5
- The new enhancements will provide a faster setup process as the installation process can determine the minimum .NET requirements and install only those, it can even do a delta framework install – if you already have .NET 2.0 installed it will install only the required 3.x bits etc. From an end user experience it would be big – think ClickOnce. In the future release of .NET (think 4.0+) its expected that Microsoft will introduce “.NET Profiles” where you can install a minimal version of the framework by selecting only the required assemblies this capability is being thought of largely due to the evolution of the SilverLight runtime and its support for cross platform capabilities.
- Improvements in application startup time: if it’s the first time your running the .NET application the runtime will have to load several resources into memory and would result in a long disk I/O. Microsoft plans to improve this “Cold Startup” scenario significantly in the upcoming release
- As more and more form factors implementing WPF as the front end for presentation and better user experience they would face challenges with WPF rendering and runtime performance, Microsoft is aware of this and has plans to release capabilities that would improve the performance of WPF around graphics rendering,text rendering, media, render transformations etc. Microsoft is also expected to release a new set of WPF controls like date picker, data grid etc.
Saturday, March 1, 2008
Microsoft technology for use in Retail industry
How is the retail industry different?
· Well for one the life time and support required for a product can be very long, the client we are working with has to support technologies that are more than 20 years old – and its not mainframes that we are talking about (Gasp!). So if you make a mistake you have to support it for the rest of your life :).
· Retailers are very sensitive towards price in implementation of IT system – many of them still run POS systems that are based on DOS OS – they want new functionality, better user experience but are not willing to make huge investments in new hardware.
· If your servicing customer in the retail food industry/ supermarket chains etc then your product has to deal with a number of use cases that are implemented differently for each of the retail customer – what works in the QSR(Quick Service Restaurants) will not work in TSR(Table Service Restaurants) etc. In the past they would deploy customized solutions for each of the types of retail customers this in a short time would lead to a maintenance and deployment nightmare.
Being a close Microsoft partner one of first thoughts on implementing the next generation of Point Of Service(POS) was to use the Microsoft WEPOS (Windows Embedded Point Of Service) based platform. This was not a huge challenge since the client was also considering leaning to implementing their next generation solution using a WEPOS based system. WEPOS is based on the XP Embedded OS – but unlike XP Embedded the individual software components (approx 11,000 in case of XP embedded) don’t have to be individually configured. WEPOS come out of the box with preinstalled components. This benefits the customers of WEPOS since they know what the components they get out of the box would be and will be available across any WEPOS box. As per the market survey conducted in 2005 by IHL Consulting group 74% of all POS systems implemented were based on Windows platform and this number has been growing ever since and there has been a strong adoption for WEPOS.

In summary WEPOS provides
· Optimized for retail market
· .NET for POS (part of the WEPOS SDK) provides a managed implementation for the UPOS (Unified POS) standard hence the connectivity to devices is abstracted away
· Provides the plug and play features similar to a standard XP box
· WEPOS lowers the cost of implementing solutions via a simplified interface (.NET for POS) and with large number of hardware partners providing interfaces to it.
· Microsoft has a 10 year lifetime support for WEPOS

The challenges we faced when architecting the solution was:
· The system in order to be flexible had to be dynamic/ metadata drive across presentation layer, business tier and data layer. However the system had to support offline scenario (disconnected environment) so much of this logic would reside on the WEPOS box (obviously with limited hardware resources)
· Most of the POS devices need to adhere to a minimum number of gestures per second requirements – so when building the new system with heavy graphics (using WPF)/ dynamic business logic(WF) etc we had to ensure that the design would be highly optimized for performance.
· One of the issues with the current WEPOS is that .NET 3.0 is not officially supported. Note that you can install .NET 3.x on the box and it will work – however customers cannot reach out to Microsoft for support. This delay in supporting .NET 3.0 in WEPOS is because the Microsoft WEPOS team rolls up to the XPE team who had delayed the support for .NET 3.0. However the client would be releasing their product at a time when WEPOS would support .NET 3.0 so the design was build around the capabilities of .NET 3.0
How a poor business decision can lead to inferior technology implementation
The client had migrated their solution from a COBOL- Mainframe solution to .NET+SQL Server, this was important since it reduced the TCO for their customers and their sales team were under tremendous pressure in the past selling a costly mainframe solution. However the business had not allocated enough time and budget for the IT team to do this migration. Based on the time and budget the IT group took the following route
· Move classic COBOL to NetCOBOL from Fijitsu – this was a good move since most of the COBOL code (millions of lines of COBOL) could be ported to .NET without much rewrite
· Moved data from flat files to SQL Server – done with good intension but to cut corners they migrated it in such a way that they would just use SQL Server as a store and leverage its indexing capability the SELECT queries being sent did not have JOINs (!!!) – all joins were being performed in the application tier. Ie multiple SQL SELECT queries were fired from the app tier to different SQL Server tables – the resulting data was manually joined within the app server. Huge number of .NET objects where created here.
· The front end for the application was written in VB.NET, however since they had to leverage the migrated COBOL code(Without code change) the front end would mimic the old mainframe dumb terminal which would not maintain state on their own and would require the server to maintain state.
· The remoting layer was implemented using client activated objects to facilitate state, the state was stored in app servers memory. The solution could not be scaled out because they had 2 problems
o Since the state was managed in the app servers memory the solution could not be scaled out
o Since the remoting was implemented using client activated objects (and not single call objects) it could not be scaled out.
They were getting an out of memory exception when they had 10-15 concurrent users but they were trying to sell the solution to a healthcare provider that needed a solution that could take on 100s of concurrent users – they were searching for a magic bullet that could fix their problem. Though we were able to identify the reason why they were running out of memory and make recommendations that could help scale the application slightly better without major code changes they can never meet the scalability requirements needed to make the sale.
Just another example of why companies should not give the technology decision to the business folks (the converse is also true :) ) . Had the company spent good time investigating the new technology and planned a good migration plan either on their own or with assistance from a technology partner they would not have faced this problem.
