Saturday, March 8, 2008

Microsoft “Oslo”

Microsoft has always been a big player in the SOA space and their products: .NET (WF, WCF), BizTalk and IT management solutions together provided a compelling SOA vision. However the market for building “services” has been evolving at a very fast pace, traditional SOA based methodologies just does not make the cut when developing S+S and cloud services let alone managing the ever changing business scenarios that services were being developed and deployed. In response to this dynamic market Microsoft had announced Oslo (in Nov 2007) –their future platform for building SOA solutions, initially it seemed like just a buzz word/ hype Microsoft was introducing to the market but in the past few months Microsoft has been doing some serious work around it.

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

Just when we were catching up with the latest .NET 3.5 and Visual Studio 2008, Microsoft is making plans to extend the client side capabilities (Microsoft seems to be on a roll here with the .NET framework). On the surface it may appears as minor improvements on the client side however the following features that MS plans to release would help position their Software+Service strategy.

- 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

This week we were working with one of the largest retail and hospitality IT provider in the US, whose clients include some of the biggest names in the fast food industry. We had to validate the architecture that was being developed by the clients internal IT group - this was one of the more complex architecture we had seen largely because of the complexities involved in the 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

Last week we were working with a large healthcare solution provider in the US who initially approached us to help them with some scalability and memory problems in their current system.
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.