"Cloud Computing" is a new area where a war is about to be broken between major players encouraging users onto Infrastructure as a Service(IaaS) bandwagon. Amazon cloud which offers storage, computing and other services is probably the most heard of. Many players have already started offering cloud based infrastructure and development frameworks like Google Apps, Force.com, Rackspace Cloud Hosting and many others. Microsoft has come up with Windows Azure as cloud hosted on its infrastructure.
cloud computing architecture
Success of cloud computing particularly azure is possible only if it shall deliver significantly on attributes like simplicity, familiarity and cost.
Familiarity? Most of all it seems to have achieved familiarity as developers in .NET area can quickly ramp up to the cloud. Google lacks this in its cloud initiative as its has stuck to python as development language and framework and has recently launched a beta of Java, which make developing web AJAX + cloud based applications a breeze with the standard Eclipse IDE.
Simplicity? Atleast the development environment requirements are not simple setting up development environment can take long time - downloading and installing various components. No single installer there! Microsoft installer technology is not elegant and speedy but its a separate topic.
Cost ? It remains to be seen.
One may sign up for Community Technology Preview (CTP) of Microsoft Azure at www.azure.com. I tried building a simple application in C#/ASP.NET.
Recently read a book "Large Scale Software Architecture - A practical guide to using UML." After a long time found a book which is very precise, practical and to the point; especially the details about the architecture view points. Authors Jeff Garland and Richard Anthony have done a splendid job.
I believe that language and technology are the barriers which architects create for themselves. A open mind can solve problem faster, easier and cheaper.
Who would have thought a generation of scripting / web scripting languages like python and perl could automate your tasks, parse xml and html, handle interupts, run periodic programs, provide regular expression and scripting engines to your programs.
Architect should break the language barrier and select something most suitable for the task. If a task demands something to be done by multiple languages so be it.
Recently devising localization architecture for client user interface (web pages) the need for parsing HTML arose. Optimal solution led to "python" (a programming language - to those uninitiated) which can make the task achievable in few hundred lines of code. Most importantly I could find that the HTML parser was in-built and sample code available to use.
This is a huge dilemma.
But according to me the ultimately choice is an architect who
- understands concerns of various stakeholders
- practical implementation approach rather than theoretical (rare breed)
- focuses on quality right from word go (hence saves costs!)
- technology passion is required but with emotional detachment. [it is this which spoils the game]
- must believe in processes and following them
I think these qualities can get any job done good enough!!!
Hope this helps,
(This is my answer to question posted on IASA Group on Linked In - http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&gid=1523&discussionID=7285433&sik=1253305771360&split_page=1&report.success=PdmtybENV2mnc3t3p8JpWuFiB1ZhaD9OnKUphCsu7LRNRYTOK1wrHHO_rcDN0rVBb1wuxUyPL-SZ)
The first priority should be communicating with stakeholders about the need for retiring the solution and replacements available.
I think the most resistance would be from marketing/sales and customer teams who have already become well used to the system and are in a comfort zone. Not to mention the development teams worries about their role.
Next step becomes easier if we demonstrate a viable alternative modern system which allows easy phase by phase replacement of legacy system. A pilot project with willing internal/external customer can help top management and other stakeholder see the advantages.
But when replacing system entirely one should never discount the possibility redesign/re-eengineering some components can help us avoid complete overhaul when really not required.
Also important is to consider how much investments have gone in to the system and what is legacy. Do call a 2 year old system or 5 yr old or 10 yr old system as legacy???? I think that's a call which can be specific to the legacy under consideration.
Hope this helps,
(Excerpt from my suggestion on IASA-Linkedin Discussion
There are many technologies for developing mobile application. The wide variety of mobile platforms (hardware & software) have prevented not only standardization but also dreaded monopolies. Few years back very few mobile handset/platform manufacturers had provided completely open frameworks for 3rd party application development. Few years ago I worked with a UK based company which provided portable code libraries and frameworks written in C/C++ for mobile applications. It allowed the company with to license source code to handset manufacturers, ported, given a MMI to be launched in the market and possibly earn revenue out of it.Every time a specific mobile application was needed, a by a handset manufacturer, a particular C/C++ library/framework had to be ported, application and MMI developed using proprietary tools and then integrated. This followed by rigorous testing cycles creating a huge delay before the application could be finally launched. In a tough competitive mobile world this was probably a big disadvantage and unacceptable. Symbian did exist as a great platform but was never widely accepted. Advent of the Java Run-time availability on most mobile platforms changed this drastically. Soon there was a flurry of 3rd party mobile applications which one could download. J2ME - Java 2 Platform , Micro Edition or popularly known as Mobile Edition provided access many features of a mobile phone. But more than that it offered ability to create once - run anywhere on any platform - any time which was the game changer. No wonder Google's new mobile operating system Android is based on Java and its development environment in the ever popular Eclipse. Also partly because OHA - Open Handset Alliance supported it. No platform be it Android, Windows Mobile or iPhone can allow cutting out of 3rd party application developers.
Just started with blogging. Idea is to accumulate all creative thoughts/ideas on technology and related aspects. Intention is not to provide tutorials, but elaborate the thinking / thought process / technology vision. Hopefully people will find it useful and will relate to what I shall be talking about over here.