Infosys Microsoft Alliance and Solutions blog

« June 2009 | Main | August 2009 »

July 31, 2009

Future of Desktop Computing

Imagine tomorrow when you switch on your LCD set to watch a movie, browse internet or do some official work. Am i talking about one device performing similar task as done by another…what’s new…Convergence is already achieving that…ok fine…how about buying the personalize desktop from some xyz vendor like Tata Sky, Airtel, Infosys … and accessing that through LCD. Accessing personalized desktop through LCD…what’s that…simply put desktop with some basic computing, processing, spreadsheet,  browsing, etc. capabilities that can help you do basic stuff or your kid do homework, take exams, do certifications, etc.. Hmm…where is this going… office work, home work, without having a dedicated laptop/desktop.

With eminent Cloud computing service models like IaaS (Infrastructure as a Service), PaaS (Platform as a Service), SaaS (Software as a Service), are we sensing another variation of *aaS? Simply put, Desktop as a Service (DaaS) is a Service over internet which helps you logon to your personalized or office desktop based on what computing and software services you have subscribed to.

If you find above stuff as too far too much…the enablers are already there, read about Airtel’s NetPC

To software enable such service models, Google and Microsoft have already started providing online Word, Spreadsheets called Google Docs, Google Spreadsheets and Microsoft Works respectively. Microsoft’s Windows Azure platform will be a great enabler for building and delivering such business and personal applications for enterprise and personal desktops respectively. Desktone has already started providing complete cloud based hosted desktops.

To truly realize the vision of work from anytime anywhere, multi site collaborative development, DaaS will have to be adopted sooner or later. Having said this, today the challenges w.r.to security, network bandwidth continues to dent the rate of adoption of it as against the huge number of positives on offer it has like low CAPEX, improved flexibility and productivity.

July 27, 2009

Time to bid adieu to .Net Oracle Provider

Till date I have came across several .Net implementations, where design decision to use right provider to connect to Oracle database is not given enough thought. The repercussions of this are visible as late as in Performance acceptance phase but by then it is too late to revert any design decision. The cost of fixing such design defect in acceptance can get as high from 15 to 160 times. Check here
For any .Net application development, following are the natural choices to connect to Oracle Database

1) Use native Oracle provider with .Net framework available in System.Data.OracleClient Namespace
2) Use 3rd party Providers like Oracle Data Provider(ODP), DataDirect, Openlink or Devart
While this blog doesn’t intend to compare them, a high level guideline on when to use what has been..

If you are developing application with .net 3.5 or earlier version, and if your application exhibits some of following characteristics like it is using very basic Oracle Server features, application has relatively small user base (<50), less no. of concurrent users (<10), has very limited Scalability and Performance, needs no explicit Performance Acceptance then the recommendation used to be is to go with System.Data.OracleClient, whereas if your application demands high-end scalability and performance, need to leverage latest ORACLE Server (Oracle 11g) features like support for complex data types, passing arrays, support for Real application clusters(RAC),  Creating and Monitoring Connection pools, caching statements and queries, and more mentioned here, then use ODP as it catches up relatively faster to implement support for ORACLE Server features than anybody else and also tuned for maximum scalability and performance.

Enterprise Library 4.1 doesn’t support ODP through its Data Access application block, but it can be extended to make use of it. Having said this, all the 3rd party providers have slight deployment license cost associated with it, which is justified with the mileage it provides as compared to native .net Oracle provider

With release of .Net 4.0 Microsoft will be deprecating System.Data.OracleClient which means the namespace will be available in 4.0 but not recommended to be used. In case of using it in 4.0 application development, it would throw certain compile time warnings in development environment (not runtime errors or warnings and hence fine in production). However, application implementation in .net 3.5 or less should have a plan to migrate data access implementation using System.Data.OracleClient with 3rd party providers as Microsoft support for it would stop 10 years from 4.0 release.

What it means is Microsoft is straight away recommending, start using 3rd party Oracle Providers and stop using System.Data.OracleClient for fresh development. This will not only impact bespoke Web and Windows based .Net application but also Business Intelligence application (especially SQL Server Integration Services based) development on Oracle.

With this decision, Microsoft seem to have given up the interest in making further investments in rolling out System.Data.OracleClient with any new features in Oracle Server. This decision of Microsoft will surely hit Developers and Clients who were good with using the Out of the box framework supporting plain vanilla Oracle features. Architects should be at benefit that they will have one less option to choose from J

Not sure if this decision of Microsoft will go well with all stakeholders, to stay updated keep following this

July 21, 2009

Transaction Based Pricing (TBP) has arrived!!

Pricing models like Fixed Price (FP) where application pricing is charged for delivering complete working application to customer, Time and Material (T&M) where IT resources (primarily no. of people) are charged based on the time spent on the project. Both these models have been around for some time and are thoroughly tested with their pros and cons.

Over a period, clients have been demanding more stringent pricing models where investments in IT and success of projects are directly tied to the business outcomes through models like risk-reward pricing. While in some selective cases risk reward based pricing has been happening, agreeing and negotiating risk reward pricing contract is not easy for both clients and service providers. Hence this has not been widely adopted into the main stream.

Transaction based pricing is a model where a consumer is charged based on the units of functionality consumed e.g. $1 per person charged for a train ticket from xyz portal. The unit here is a train ticket per person.  The transaction unit mentioned above could vary from application to application and context to context. With marketing intelligence, the pricing model can get more intuitive where offers can be devised like within a year if you buy 100 tickets, the company will refund the charges for 10 tickets and so on.

The case for transaction based pricing is getting stronger due to multiple reasons like running full house IT operations is not feasible for businesses of all size, ROIs on IT projects are too farfetched, ongoing credit crisis and tightened norms for availability of credit to invest in IT, catering to elasticity of demand like need to serve more customers during Christmas sales or peaking of filing income tax returns during particular months of a year. All this surmises to an upfront CAPEX (Capital expenditure) even before businesses can start reaping fruits.

In late 1970’s Mainframes were affordable to only large organizations as against Personal computer today. Similarly if IT application ownership has to be commoditized from enterprises and large businesses to every individual, a model like transaction based pricing has a crucial role to perform.

While there are several instances where business and retailers as a consumer have adopted transaction based pricing e.g. Mobile/Internet connection, Electricity/Water consumption, Bus/Train Travel passes /reservations and so on. Imagining IT applications/services to be consumed like any other commodities is fairly nascent to the industry.

Transaction based pricing is recently seeded through Microsoft Cloud offerings and other vendors like Google, Amazon, Rackspace, etc.  Although there are fundamental differences in FP, T&M and Transaction based pricing. Going forward, i am sure Transaction Based Pricing will take a major pie of T&M and FP models described above and more likely emerge as a leading pricing model.

July 20, 2009

Public Clouds,Are they any different?

The Azure pricing seems to be finally out. Here’s my take on the announcement.

http://www.microsoft.com/azure/pricing.mspx

 

I have taken a stab at comparing the Azure pricing versus value proposition vis-à-vis that of the two other major cloud providers in the market today. Let me first call out, although Amazon’s compute services (EC2) are in the Infrastructure as a Service (IaaS) category and folks may argue that comparing it with the likes of other Platform as a Service (PaaS) providers is not really an apples to apples comparison. 

And I totally agree to that fact.

However the comparison sheet of the three cloud providers below has been prepared with the intent to understand how cloud customers would want to conceive the value of these end services. Price point comparisons alone will not tip the scales in favor of one cloud over the other but additional views on qualitative factors will also help to customers in making their choices. Customers are often in a dilemma – should I go AWS or the likes of Azure/AppEngine? The following table, in addition to comparing Azure with its cloud competitors will also act as a quick guide to provide decision makers an assessable perspective on the service offerings.

The color coding below is a relative measure of how the particular feature, capability or attribute of a particular service compares vis-à-vis its competitors.

AzurePricing1.jpg

AzurePricing3.jpg

Additionally I would also like to put forward my thought on a few of the salient points of the Azure pricing announcement.

1.       Enterprise class SLA’s announced:

“To support partners’ and customers’ complex business needs we are providing an enterprise-class guarantee backed by a service-level agreement that covers service uptime, connectivity, and data availability.  For compute, we guarantee that when you deploy two or more role instances in different fault and upgrade domains your Internet facing roles will have external connectivity at least 99.95% of the time. Additionally, we will monitor all of your individual role instances and detect within two minutes when a role instance’s process is not running and initiate corrective action.   For storage, we guarantee that at least 99.9% of the time we will successfully process correctly formatted requests that we receive to add, update, read and delete data. We also guarantee that your storage accounts will have connectivity to our Internet gateway.”
Sid : MS SLA Commitment with language like “enterprise-class guarantee”  and “guarantee” vis-à-vis that of  AWS SLA commitment as “commercially reasonable efforts” leans to a higher level of credibility. However the crux of the announcement would be in the fine print .

2.       More in it for customers to deliver with Partners:

“As part of the Microsoft Partner Network, partners receive an additional 5 percent promotional discount on Windows Azure compute, SQL Azure and .NET Services.   As an added benefit of MSDN Premium we also announced we will provide subscribers with resources to build, test, and manage full scale cloud based applications.  We will also provide the Development Accelerator promotional offer for partners and customers who want to quickly develop and deploy applications with dynamic scaling, predictable pricing, and a deep discount.”
Sid: Due to MS’s on-premise servers & products relationships, Partnerships is an area which MS seem to have a definitive advantage over its competitor. Also pretty evident from such Partner specific announcements made and which MS looks at capitalizing on.

3.       Services available simultaneously across multiple countries including India:

“At launch we will have offers available in local currencies for Australia, Austria, Belgium, Canada, Denmark, Finland, France, Germany, Ireland, India, Italy, Japan, Netherlands, New Zealand, Norway, Portugal, Spain, Sweden, Switzerland, UK, and the United States.”

Sid: Multiple location launches with ability to transact in local currencies that will definitely take cloud computing to a global market place. Unlike previously where the experience was primarily US or EU specific. I hope they get this right especially with several local market challenges such as regulations, tax norms, domestic pricing sensitivities etc.

July 16, 2009

Outlook 2010 Technology Preview - quick reactions

I am sure you would be aware of recently launched Technology Preview of MS Office 2010. Depending on your access, you may be able to download it from Connect site. I  have upgraded my Office 2007 to Office 2010 and so far the experience has been good.

I have spent most of the time in looking at Outlook 2010 as that is that I use more often these days at work and thought to share some quick points that I liked about it. This is by no means a feature evaluation and you can get that listing on MS site, but more of immediate reactions to some things I noticed.

Unlike other beta programs that I have participated earlier on connect site, Office 2010 Tech Preview doesn't really has option to submit issues/feedback/bugs online. You can surely discuss them on the newsgroups, but the way to really submit these is to use the Smile and Frown options that are added to your system tray post installation. Check out more details here.

The thing that immediately comes to notice with Outlook is obviously the splash screen on startup. There is some cool animation added to it (which is common to all other Office Products as well). However that I really liked about it was the status message that really told me what's happening during the load. Perception matters a lot in context of performance and with right messaging, even long time taking operations can be made to look performant but showing appropriate messages to the user and I think Outlook got it right by showing the messages. I immediately became more tolerant to the sometimes a min plus time it took to open up.

Next is the much more pleasing user interface with more subtle color theme and lot of operational ribbon. Many new tasks/options have been added to it. The following figure shows some of it. However what I additionally liked is the reddish band right on the top in case of any prominent message had to be shown. I keep running out of mailbox space, due to the restriction on the Exchange server and earlier I would come to know of it only when I would spend 10 min to type a mail and then hit send, but now it is right there on the top and immediately visible. And if you go ahead and start to type a new mail, the mail itself has a MailTip that reiterates the point on mail size issue.

outlook.jpg

Other places where similar band is used is when you switch on Automatic Replies, mostly used for out of office scenarios. This feature however isn't accessible from the Tools menu of Outlook 2007, but via the new Office button on top left. Incidently the red band isn't only Outlook specific. It is used in other Office Products as well.

Not only do I get in place message on overshooting the mail size, but via the new Office button on top left, I can immediatly get details of extra size and option to fire up tools to cleanup as in the figure below.  

mailsize.jpg

Another interesting feature is when you open attachments like Word, Excel, Powerpoint etc, from an email, a similar red band appears on top of the document as in the figure below.

attachment.jpg

Something else that caught my eye was the auto grouping of conversations in a thread like view. It helped consolidate all mails in one place and view them to get the context. And finally another cool feature was the embedding of my calendar inside of a meeting invite, so that I can view conflicts etc in place and don't have navigate to Calendar separately. See the figure below which shows this. Some meeting item details are masked out for obvious reasons.

meeting.jpg

These by no means are only new features in Outlook, but as I mentioned upfront, these are the ones that caught my eye in my initial few minutes of working it. As I work more with the technology preview products, I will share more interesting features that I personally liked.

July 13, 2009

Catalyzing Entrepreneurship

Entrepreneurship has been identified as the primary growth engine of any Economy. In the early 1990s when India opened up its markets to Globalization, we saw the spirit of entrepreneurship receiving a tremendous impetus cited with several instances of Startups or Small and medium sized businesses growing leaps and bounds benefiting the nation’s economy. Infosys has been an excellent example of how entrepreneurship has contributed to India’s growth and that too both in tangible and intangible value terms bringing global recognition of India’s Knowledge driven economy.  However Entrepreneurs face several challenges which impediments to their growth. A few of the challenged being

·         Limited exposure to capital  for running their businesses

·         Limited access to experienced IT resources

·         Lacking processes and systems which can help grow their businesses

·         Inability to Innovate

IT has been the catalyst which helps businesses to foster growth, which Entrepreneurs have not truly been able to leverage very effectively. This primarily being due to the high entry barriers, primarily owing to the high capital which needs to be invested upfront in terms of hardware and software, associated in building applications and systems even before the Enterprise would have started earning any revenue. Due to this the traditional IT delivery model has not been conducive for Entrepreneurs to innovate as the risk associated with failure is very high.

With the latest computing paradigm aka “Cloud Computing”, the IT barriers have dropped and entrepreneurs can now look at leveraging IT as a tool for innovation which can script more growth stories.

Continue reading "Catalyzing Entrepreneurship" >>

July 12, 2009

.Net 4.0 Server side promise

.Net 4.0 currently in beta (means some features covered below are subjected to change by final release) slated to release by end of 2009 with Visual Studio 2010. Some of the key server side features that can help enterprise adopt 4.0 are as follows

* New optimized Common Language runtime with CLR 4.0. CLR 4.0 can work alongside CLR 2.0. This was not possible with earlier versions of CLR. If application host x is built using.net 1.1 excel add-ins and on the same machine if somebody has installed application host y built using .net 2.0 add-ins then both the applications used to run using highest version of CLR which is 2.0 in this case. Until now since only one CLR was loaded in the process, If application x is badly written and crashes due to some internal reason then application y also used to crash because both applications were using same CLR.

With .Net 4, first time introduced is In-process side by side CLR, each add-in hosts get to use the version of .NET that it was built and tested with. Installing .NET 4 on a machine won’t cause add-ins or applications to start using it, by default. Which means installing .NET 4 will have least impact on existing running .net applications.

* CLR 4.0 is also designed for efficient and faster Garbage collection. In earlier CLR versions, when Server GC was scheduled to start all the other threads were stalled for GC to execute and complete. Workstation GC is an exception, which has support for Concurrent collection which can do most of Gen 0 and Gen1 but not all of Gen 2 collection.

Server GC of 4.0 has the ability to work in background, without stopping the ongoing managed thread, and can do Gen 0, Gen 1 collection at the same time as Gen 2,with positive influence on overall performance. Additionally the 4.0 GC can be configured to notify to the main program before embarking on collection and after completing the collection.

* Efficient thread management using optimized thread pool, support for debugging dumps from Visual studio, improved interop with Windows APIs are some of the other important CLR design improvements.

* Truley exploiting the power of multi core CPUs is now possible through introduction of newly designed Parallel APIs. Developers no more have to deal with threads, locks, work allocation and scheduling. Framework introduced Task Parallel library (TPL) is designed to execute C# application logic in parallel where as PINQ is designed to execute Database logic in parallel.They take the responsibility of allocation work to multiple cores of CPU depending on their availability maximizing parallel execution of a program

* First time inclusion of Dynamic Language Runtime (DLR) and Dynamic languages like Iron Python and Iron Ruby. DLR is a thin layer on top of CLR with set of services like Shared dynamic type system, standard hosting model and support to generate fast dynamic code for Dynamic languages.

* Easier application extensibility, modularity and highest reuse ever is now possible by using Managed Extensibility Framework (MEF).MEF helps composing applications at runtime establishing true plug and play model. It truly demonstrates the in-flight engine replacement by automatic runtime discovery and dynamic incorporation of .net assembly or module.

* Inclusion of Functional programming support through F#. Applications having highly computational mathematical program, support of function library and also object oriented constructs are good candidates for F# implementation

* Windows Workflow is redesigned to improve performance by ten folds. New Workflow designer with XAML based Workflow design and debugging, addition of several workflow activities  and models like flowchart, database messaging, PowerShell, persistence, compensation support, rules composition, data binding and scoping are some of the new additions.

* Improved RSS/ATOM feeds, REST, POX, AJAX support in WCF will help easily implement some of the Web 2.0 principles. Slimmer WCF configuration, .svc less activation-no need to write URL rewrite module for WCF services now, routing service, announcement service to let consumer know whether the service is online or offline, inclusion of WS-Discovery and a few other WS-* protocols, seamless integration between WF and WCF and enabling a unified XAML model.

Now developers can build an entire application in declarative XAML code from presentation to data to services to workflow.

*  Exposing data through web services using ADO.NET Data Services (earlier “Astoria”) was available with .net 3.5 sp1 and further built upon in 4.0 with features like Paging, streaming support for blobs, Web friendly Feeds, row count for entity, etc.

Data Services provides a REST style interface to SQL Server database tables and make it addressable like collections through URIs similar to Azure tables or SQL Data services in Cloud thus making the data access easily portable from on-premise to Cloud back-ends.

* Leap in support for Object Relational mapping by way of ADO.NET Entity Framework. Earlier shipped with .Net 3.5 SP1

* Support for Distributed Caching scenarios using “Velocity”, read more about Velocity here.

* Windows Application server “Dublin” acts as a standard host for Windows Workflow and services and also supports “OSLO” modeling platform. All this with improved monitoring, greater Performance, Scalability and Reliability.

While the above is tip of what 4.0 has in offer for enterprises, enterprises embarking on new .net development initiatives should start planning new application development using .Net 4.0

July 10, 2009

Surface, iPhones, Wii …. and Birth of the Cool

It has been less than a decade since gestural interfaces featured in the cult sci-fi movie ‘Minority Report’. We are already living the ‘future’ that was ‘fiction’ just a short while back! Here is our chance to live through what is shaping to be a new era of interactive computing.

To me, it almost fulfills my desire to roll time back and live through eras of seminal changes and lasting legacies. Like the birth of Cool Jazz! 

 Miles Davis nonet recorded twelve songs of their famous album ‘Birth of the Cool’ in 1949 and 1950 and featured path breaking instrumentation and innovative arrangements making it a seminal album in the history of cool jazz.


I feel those parallels because like cool jazz, after Surface, iPhones and Wii, gestural interface are suddenly getting formal and commercial recognition that they lacked so far.


 As quite aptly stated by Dan Saffer in his new book, Designing Gestural Interfaces, we are leaving behind the era of HCI paradigms that were built in 1960 and 70s.  During that period, scientist and engineers  like Doug Engelbart, Alan Kay, Tim Mott, Larry Tesler and others at Xerox PARC developed the core interaction notions like Windows and Copy/Paste that we use a zillion times without realizing. While these notions will not just go away in the new era, they will first be first supplanted and then quickly overtaken by many others that use the whole human body or external sensors or new input devices.


But there are some things to watch out for.  Surface, iPhones and Wii may be more fun, more flexible, more natural and more nuanced, but they are still not the best things to use for certain scenarios.


For example, consider when you have to enter large amount of data. As of today – till improved voice processing takes care of this for good – keyboards are significantly faster to enter text and numbers. Incidentally, our Human Factors Professor quite confidently declared in mid 90s that the keyboards will be history by the end of millennium.  Looks like predicting future technology trends is harder that we think!


There are a few other areas where these new interface may not be the most conducive option.  Gestural interfaces are way to visual (comes with the desire to offer a rich experience).  Lack of haptic affordance and feedback can be confusing and if the user is visually impaired, then the interface can be a handicap. Reliance on physical gesture also brings in to focus the variability in human abilities across populations. Not everyone has the strength necessary on some gestural interfaces and not everyone has the dexterity to manipulate even simple features like keypad of iphones.  In some situations, the necessary gestures to perform interactive tasks may be an inappropriate thing to do in public.


But if designers keep this in mind, the explosion in gestures-driven computing offers impressive opportunities to live through an era of emergence of new interaction paradigms.  Again, as Dan says in his book, Tap is the new Click. So true!

 

July 05, 2009

Getting File Audit Rules List

Earlier today a friend was trying to invoke GetAuditRules API on a file using c# code, but it was always returning a count of 0 inspite of having set a specific audit rule on the file via windows explorer. The surprising part was that GetAccessRules API was working and the code was running locally so it had full security rights as well.

Debugging didn't help and could not get specific pointers with the API documentation as well. Finally, the problem turned out to with the File.GetAccessControl API. The single parameter override of this API, sets the value for the AccessControlSections parameter to Access + Group + Owner and ignores on Audit from this and this caused the Audit fields to not return any value. Unfortunately, this isn't documented properly and hence anyone can easily miss out this point. You can however verify this using Reflector and see the internal implementation, which is as below

        public static FileSecurity GetAccessControl(string path)

        {

            return GetAccessControl(path, AccessControlSections.Group | AccessControlSections.Owner | AccessControlSections.Access);

        }

Modifying the call as below eventually got the GetAuditRules API working and got the required results.

FileSecurity fSecurity = File.GetAccessControl(str, AccessControlSections.All);

where str is the file whose audit rules are being queries. If you need only audit rules, you can use AccessControlSections.Audit as well. Hope this will help others also facing similar issues.

July 01, 2009

Issues with “Oslo” SDK May 2009 CTP

“Oslo” is a very nascent yet promising technology. Hence working with the “Oslo” SDK in its current state does pose a lot of challenges. As I had mentioned in my previous post, the “Oslo” May CTP released a month back. We were working with the Jan CTP till last month and hence we were excited about the new CTP. The list of improvements that had been made seemed very impressive. The setup was really quick and easy. It was great to get a good first look at the Quadrant tool. But when we tried opening up the MGrammar file that we had developed using the Jan CTP in May CTP Intellipad, we faced a couple of issues.

First of all we weren’t even able to open up our grammar in the new DSL Grammar mode. The Intellipad took a lot of time but it just couldn’t parse the grammar and finally it threw an OutOfMemoryException. We could see that the memory usage on the machine was going up till 1.5GB!!! Intellipad was supposed to perform better with this release Smile. Since this issue was a show stopper we raised a bug on the Microsoft “Oslo” Connect site. Microsoft agreed that this was indeed a bug, but they provided a work around as well. The issue, they said was cropping up because of the length of the names of the tokens that we had used in our Grammar. We were using some long token names within our grammar. We were surprised to know about this, because this was a grammar file which worked perfectly in Jan CTP Intellipad. The usage of shorter token names helped us solve this issue. You can check out the bug that we had raised and the work around suggested by Microsoft here.

Once the above issue got fixed we tried opening up the grammar again in Intellipad. It first of all took a long time to parse the grammar and finally it threw an ArgumentNullException. We had no clue why this was happening as this was raised by the M compiler. We raised another bug on the Microsoft “Oslo” Connect site for this issue. Once again the reply that we got from Microsoft was that this was indeed a bug in the M compiler and it had been fixed in their current codebase. Now we need to wait till the next CTP comes out probably in the month of November this year, to see whether they have actually solved the issue. You can check out the bug that we had raised in this regard, here.

Due to the above issues that we faced with the “Oslo” May 2009 CTP; we were forced to continue using the “Oslo” Jan 2009 CTP for our development work. Playing around with CTPs is not really an easy job, is it? Smile

Subscribe to this blog's feed

Infosys on Twitter