Welcome to MSDN Blogs Sign in | Join | Help

MIX Hangover...

Wow.  By show of hands, who was at MIX?  Virtually or physically it doesn't matter.  Regardless, I am sure most of you (who haven't been in a cave) were there vicariously as the buzz around Silverlight has beckoned your interest.  The announcement about .NET integration in Silverlight (v1.1) was surprising...  I knew it was inevitable but I was surprised to hear about it so soon. 

The name of the conference (MIX) couldn't be better because looking at the audience there it was apparent that there was a literal mix of diverse roles and persuasions.  Of course there were developers with their usual hoo-rah and 'developers, developers, developers' enthusiasm.  Designers with their black and grey attire (turtlenecks anyone?) sporting their Mac Book Pros.  The so-called 'Business Decision Maker' audience which was pretty much everyone else, and they... well, were the normal ones.  Despite the diversity of opinion, background, and interest everyone was more-or-less in accord with the significance of Microsoft's strategy into the next generation of computing.  Competition is good for everyone and a competition it will be in this brave new world of services, mashups, experiences, yada, yada.

...and the Beauty of Choice

For me, the announcements around Common Language Runtime integration into Silverlight and the Dynamic Language Runtime opens up a whole new world of delivering richness that is in line with the overall economic shift we have been seeing in these last 3-5 years.  This economic shift is spoken to in Chris Anderson's excellent book The Long Tail.  In terms of delivering Rich Internet Applictions (RIAs), economics of scarcity governed in Adobe Flash's favor; to develop RIAs your choice was limited to Flash and its scripting engine in ActionScript.  Now many will argue saying AJAX is another technology to create RIAs; I wouldn't agree nor disagree as I am not trying to compare the type of RIAs that Flash delivers from those made with AJAX.  Essentially, the RIA game is open and developers instantly have much more choice when it comes to deliver RIAs.  At MIX there were demos that showed Ruby, Python, JavaScript, C#, and VB.NET being used to script Silverlight and even doing cross-plaform debugging (yes, on a Mac in Safari).  Live performance comparisons were given as well that were staggering in favor of a managed code environment delivering RIA capabilities. 

Choice ushers in an economy of abundance in which limitations and scarcity (in terms of technology choice, human capital/skill, etc.) are no longer as relevant.  In my opinion, choice is at the center of this so-called Web 2.0 and Software-as-a-Service revolution.  We hear terms such as 'consumerization', 'pro-am (professional-amateur)', 'mass-customization', and others interrupting our status quo as architects as we consider technology strategies aligning to business value.  It's no coincidence why TIME magazine's person of the year is YOU because choice is fundamental to any democratic revolution (and no, in this I am not talking about the political party).  Successful practitioners of business, architecture, high technology, et cetera will find creative and value-added ways of incorporating choice into their products and services.  The challenge for architects, nonetheless, stays the same: how to create an architecture to support choice in all of its variety and allow for deep and fundamental changes in the ever shifting tide of tastes, styles, and strategy... all while maintaining high levels of reliability, predictability, performance, et cetera.

Ironic that a guy from Microsoft is talking about choice?  If things keep going the way I suspect, Microsoft will have a lot more to say about choice in the not-too-distant future.  Time will tell.

 Please do attend MIX virtually and let me know what you think...

So, if you haven't heard of MIX, check this out: http://www.visitmix.com

It's not an acronym, it's a conference and a very unique one at that (for Microsoft, it is unique).  Microsoft is making a big play into the world of interactive design a space completely dominated by the likes of Adobe/Macromedia.  Why?  Well, customers demand it.  Not necessarily Microsoft customers per se but everyone's customers. We are living in an Experience Economy and the value chain continuum expects the delivery of a rich and engaging experience.  You'll see Microsoft talking a lot about this strategy in the form of (yes, another acronym) UX, or User Experience

I'll get back to the point of this post...  MIX is the conference for immersing yourself in what Microsoft's strategy around Web 2.0, Software-as-a-Service, and UX in general.

Want to understand what so-called 'Live' is all about?  Come to MIX.

Want to know the ins-and-outs of "WPF/e"?  Come to MIX.

Are you a designer or aspiring designer and want to learn how to deliver rich experiences?  Come to MIX.

Are you a business decision maker or strategist and want to learn about how partnering with Microsoft can help you differentiate yourself with UX?  Come to MIX.

Take a look at the content on tap to be delivered in three days of bliss: https://content.visitmix.com/public/sessions.aspx.  Notice how there are three tracks for the three target audiences: business decision makers, designers, and developers.

I am going to be there with some early adopters and customer evangelists that are hoping to show the world the kind of applications that can literally raise the bar in their respective industries (e.g. health care, retail, etc.).  Ping me if you're going because I'd love to meet up with you!  Hope to see you there!

I have had to hold my tongue for a while on this one...  The first glimpse was given at SeeWindowsVista and it left a lot of people thirsty for more.  Check this out: British Library: Turning the Pages and to learn more about the project go here.  Now, be aware, this application makes heavy use of graphics processing and has some stringent requirements (e.g. Windows Vista, Aero-capable graphics).

I find this significant in many ways.  First of all, this is an XBAP - XAML Browser Application - which is essentially a Windows Presentation Foundation smart client delivered through the web browser.  Now this is different from WPF/e in that the .NET 3.0 Framework is required to use XBAPs, while WPF/e (being a subset of WPF) is targeted for multiple browsers and platforms without the .NET 3.0 installation prerequisite.  XBAPs are significant in that they offer the best of smart clients with the ease of deployment that web applications provide.  Yes, you need .NET 3.0 which means you have to be using Windows XP or Windows Vista and that is the drawback that pure web apps benefit from not having.  XBAPs are delivered to the client through the ClickOnce technology introduced in the .NET Framework 2.0.  So why is this significant from a technology perspective?  It's another, very rich option for creating applications and deploying them to your Windows customers that strike a reasonable balance between smart clients and web clients.

Another aspect I find the British Library project significant is the domain in which it exists...  There is a wealth of knowledge out there in the form of written materials (e.g. books, manuscripts, diaries, etc.).  Google and Microsoft are undertaking huge efforts to digitize libraries and make them available on the web for all to benefit from.  To me this is a great and exciting endeavor.  However, personally I have a hard time reading books on the computer screen and many that I have spoken with feel the same; some people don't have a problem with it.  Now take the efforts of digitizing books and couple that with a rich application like Turning the Pages 2.0 (British Library app).  Now, let's consider adding some Web 2.0-like experiences to it...  Online storage capabilities for creating your own research notes, annotation capabilities, tagging, and collaboration tools.  For me, the richness that the platform provides is unlimited in terms of really delivering an enhanced User Experience that could literally change the way we publish, read, research, and enjoy books.

Thoughts?

Ready for a 'New Day'?  How about this...  Ready for a free copy of Office 2007 Professional and Groove 2007?  I thought so.

Now that I have turned my blog into an advertisement (without the benefit of Affiliate revenue) I will tell you how...  It's really simple: Register for a Windows Vista and Office 2007 launch event in your area!* (Read the fine print below)

Use the following link to find an event near you:

http://www.microsoft.com/business/launch2007/signup/default.mspx

I will be presenting the Developer track keynote at the Phoenix launch event on January 17th.  For event registration for this event go here.

I hope to see you there!

* (fine print) - you have to register AND attend

 

Alright…  By show of hands, how many of you work in IT organizations that are considered strategic assets of their respective businesses?  Wait, I said strategic.  Okay, let me re-phrase that…  How many of you are considered a cost and constantly struggle to prove your worth?  How many of you feel  like IT custodians?  Yep.  That's more like it.

 

So what is strategic?

 

Consider the competitive marketplace.  What makes a strategic asset within a competitive business?  Are the power lines running into your office spaces strategic?  Are the desks, PCs, or even servers strategic?  I would contend they are tactical resources that are absolutely necessary to do business, but wouldn't you agree your competitors have those things too?  So will the quality of desks or servers be the competitive differentiator that sets your firm ahead of the competitive race?  Tactical assets tend to be commodities, things that are used commonly and quite frankly, are interchangeable and inevitably disposable; these things depreciate.  There was a time when PCs and servers were considered strategic but then everyone got them and now they're not so strategic anymore.  Now how they can be used, that leads me into the next thought:  Consider intellectual property and to the brilliant minds that create it…  What about the business models and opportunities the intellectual property and thought leaders provide?  Sure these things can change, get replaced and disposed but typically the cost and risk of so doing is substantially larger than tactical resources.  You don't see the capacities of a company's top leadership get outsourced do you?  There's a reason why Microsoft, Google, or Amazon (amongst many others) don't freely publish its entire code-base or infrastructure blueprints and specifications.  It's invaluable, unique, irreplaceable…  It creates significant opportunities for competitive differentiation.  Strategic assets are difficult to put a value on and when you can't assign a value, you can't get too picky on what it costs you to keep it or improve upon it; these things appreciate.

 

Is IT strategic?

 

Now many cite the Nicholas Carr article IT Doesn't Matter in response to this question.  The title doesn't exactly do the article justice but he does get points for making it catchy enough to warrant its notoriety.  Essentially Mr. Carr's assertion is that information technologies cannot be strategic because they are mired in the continuous mode of commoditization; innovations in Information Technology become so common that everyone  adopts and thus no one gains differentiation and the strategic value therein.  But would those responsible for the architectures of Google, Live, or Amazon agree with that?  Let's pick on Amazon…  Would Jeff Bezos say that their IT organization doesn't matter?  Consider the Amazon Web Services such as the E-commerce service, the Elastic Compute Cloud (EC2), the Simple Storage Service (S3) and then read Jeff Bezos' defense and positioning of Amazon's emerging strategy.  It will become clear to those who follow these pointers that Amazon is not just about selling books.  The bottom line is that Amazon's IT group has created an architecture so solid in terms of scale, availability, performance, etc. that they can sell its capabilities to others and actually generate revenue.  Yes, that's right…  An IT organization not being viewed as a cost.  This is an example of the strategic value potential of architecture and the ingenuity of engineers who build it.  While the technologies themselves can be considered commodities, the architecture of using them skillfully and creatively can yield strategic value and I think Amazon (among others) is an example of this.  With this, I suggest that an architecture can be more valuable than the sum of its individual parts.

 

Selling the Strategic IT Proposition

 

Don’t.  At least not explicitly.  I don't know for sure (obviously) but I would venture a guess that the IT gurus at Amazon circa 1995 did not start suggesting to build their infrastructure so they could sell it.  Instead, their goal was to create the best infrastructure to exploit the Long Tail and sell tons of things most people at the time were constrained by scarcity.  Amazon's architecture had proven to be so versatile and resilient that some could argue it was a primary factor in Amazon's survival through the dot com bust.  Now I realize that you're probably murmuring that not every company is like Amazon and that IT can't be strategic in that sense…  My point is not to suggest that all IT organizations have be Amazon, Google or Microsoft.  Be pragmatic and practical but have big aspirations; such is good advice for architects.  Value starts with trust and credibility and actions speak louder than words.  No IT organization will ever be considered strategic by the business if the website is constantly going down or solution delivery is consistently overdue and past budget.  Leverage existing technology investments and skills, be smart about acquiring and new technologies and talent and use them as the pieces of a solid architecture whose primary goal is world-class reliability in its broadest sense.

 

As a general point of advice, as technologists, we need to think beyond the gibberish of compilers and runtimes, configurations and scripts and become entrepreneurs constantly thinking of ways to add competitive differentiation and value to the business and its employees, partners, and customers.  As I stated in a previous post, finding ways to make the IT organization (and thus the business) more agile is a great strategic proposition; proven over time, it is priceless and worthy of a cheesy MasterCard commercial.

 

Comments welcome as usual...

For those who haven't noticed, check out: http://channel9.msdn.com/playground/wpfe/.  Now, WPF/E stands for Windows Presentation Foundation "Everywhere"...  However in light of what is coming, I think it is more appropriate to consider it as the Windows Web Presentation Foundation because the impact could be enormous.

Windows Presentation Foundation is a powerful technology to delivery rich user experiences (ux) to users of rich client applications on Windows XP (SP2) and Vista. Many critics of WPF claim that its breadth and potential adoption outside the enterprise will be limited because of its dependance on the .NET Framework 3.0 and its installation on Windows operating systems.  Fair enough.  But WPF/E begs to differ and in terms of delivering rich user experiences through the browser and across platform Flash isn't the only game in town anymore.  I know, I know... 'What about AJAX?' Well, what about it? The two technologies (WPF/E and AJAX) aren't mutually exclusive, in fact, they can be used synergistically.  Don't believe me? Check this out.  Okay, before I get flamed if you visited that link, let me explain...  This is the first pre-release look at WPF/E and in no way represents how it will be once it's released; it will only get better and that means its deployment model will be less intrusive. This sample uses XAML (XML Application Markup Language) in combination with AJAX.  Pretty slick.  Choice is good and this is yet another technology to add to the list of options for delivering value to users.

For those eager to look deeper at WPF and/or WPF/E take a look at the following:

.NET Framework 3.0 Redistributable (for WPF)

WPF/E Community Technology Preview (Dec 2006) for Windows or Mac

WPF/E SDK Community Technology Preview (Dec 2006)

WPF/E Samples

AJAX Toolkit

For those who read my ramblings (the two of you know who you are) will notice that I have been silent for a while. Typically my process works like this: I write first to my OneNote (2007 rocks BTW) notebook and then if I think it is blog-worthy (not a very high bar) I will post it.  As lame as it sounds, I forgot my password to this site and have not taken the extra steps to recovering it until now.  So my next step is to post the many scattered thoughts I have had retroactively.  Now that I have my password there should be no reason to not post more consistently.

Software as a Service (aka Software + Services, or SaaS for short) is pretty much the hype du jour as of late.  Not without reason.  From an architecture perspective, SaaS provides some interesting considerations one of which is multi-tenancy.  The most common analogy for multi-tenancy is an apartment complex: multiple autonomous apartments, each isolated with structural barriers, containing distinct décor and possessions of the tenant, and of course each being serviced by common infrastructure services that are metered and possibly configured separately.  A rather simple, yet palatable analogy - akin to the analogy of technical architecture to building architecture; however, with SaaS, the 'building to software' comparison really shakes out because unlike a physical and static apartment building,  a SaaS structure must scale to a theoretically infinite number of tenants while maintaining high availability of services and tenant access.  So how do you do this?  There are many different aspects of software that would need to be designed properly for multi-tenancy: data, security and identity, state, transactions, et cetera.  The key to multi-tenancy is isolation and what better model for isolation can be found besides virtualization?

 

I am really excited about Microsoft's acquisition of Softricity.  It is one of the most brilliant acquisitions Microsoft could have made because the amazing technology can be applied in countless ways, one being SaaS.  For those not familiar with Application Virtualization, it is essentially the ability for an instance of an application to be executed within its own, isolated runtime container having its own configuration, data, security, etc. without an underlying dependency on the host's configuration, data, or security.  Essentially it's a sandbox for an application that can leverage host services as needed (dynamically).  This is somewhat different from the concept today around process boundaries; consider the notion of process boundaries but move it higher up the logical stack.  Processes are much more coupled to the underlying system and its configuration than an isolated, virtualized application.  In terms of multi-tenancy and the ability to scale and be available, the virtualization proposition is a fascinating one.

 

A rather powerful concept.  Essentially, this is the notion of utility computing - where shared infrastructure resources can be dynamically allocated and leveraged by need and policy-mandated priority.  I am not saying that application virtualization is the end-all, be-all for SaaS or that it represents a turn-key solution for SaaS…  What I am suggesting is that given the trend and technology for virtualization, I would not be surprised if it played a huge part in the rapid development strategies for creating and supporting SaaS.  It would be interesting to see if and how Microsoft incorporates the Softricity technology into its platform for SaaS and the toolsets for rapid development and management. 

 

Thoughts?

We all know that architecture in an IT setting has many definitions and explanations which inevitably means that those calling themselves architects come in just as many flavors as their role descriptions.  Given the rise of web-native software in the Web 2.0 space, could we see the emergence of a specific Web Architect role?  If so, how would this differ from other technie-architect roles such as the popular 'Software Architect' or its synonym 'Application Architect'?  I mean, isn't web-native software just software and it is the environment and medium that is calling for specificity?  I don't know the answer but let's think this through shall we?

 

To frame the analysis a bit let's think of other techie-architect roles.  I've heard of Infrastructure Architect, a broad discipline often encompassing roles like Server Architect, Storage Architect, Network Architect, Messaging Architect, and in some cases and by some views even a Data Architect (among others).  There is Solutions Architect, which like its Infrastructure counterpart encompasses specific roles, for example Application or Software Architect, Integration Architect, or again Data Architect (…).  What makes the distinguishing case for each?  Well, a Storage Architect for example would be focusing on technology-specific elements such as SANs or NAS devices and the topologies associated with them, a Network Architect would similarly focus on network-specific devices and topologies.  The Software/Application Architect is more broad but focuses on application platform technologies and environments such as Java EE or .NET, usually associated with a mid-market to enterprise setting (in terms of scale).  Integration Architects would focus on middleware and integration scenarios for data and software.  Of course, regardless of particular discipline there is a knowledge of best practices, patterns, standards, and reference architectures that an architect should be expertly aware of which further distinguishes him/her from their fellow engineers.  There are much more competencies required to be an architect that is outside the scope of this examination, but can be alluded to here.  The nutshell here is scope.  Now let's take a look at Web Architect.

 

A Web Architect would focus on web-specific technologies and scenarios and apply best practices, patterns, and oftentimes reference architectures around delivering web-native experiences with software.  In terms of technologies, Asynchronous Javascript and XML (AJAX) is predominant for delivering rich client experiences on the web and for stylistic standards the Web Architect would prescribe XHTML and Cascading Style Sheets (CSS).  Understanding of web browser design and W3C standards compliance/adoption would be analogous to a Software Architect developing smart clients would need to know the target client environment (Windows, Linux… .NET/Mono or Java SE/ME and which version of their respective runtimes, etc.).  Content syndication and aggregation scenarios and technologies such as RSS and ATOM, and data interconnectivity with web service APIs either via SOAP, REST, and/or POX for rich and loosely coupled functionality.  The concepts surrounding 'mashups' in terms of application composition would be a particular focus of a Web Architect analogous to composite application designs and the associated patterns such as Dependency Injection (Inversion of Control).  A Web Architect would have knowledge of proprietary technologies such as Adobe Flash and Flex as well as Microsoft's Windows Presentation Foundation (WPF) and its web delivery subset in WPF/e (Ibid.).  Then the juicy architecture stuff around session and state management, instrumentation, caching design, security and identity, smart client and mobile to web topologies, user experience patterns and practices, performance and scalability considerations, service-oriented architecture, and very importantly, peer-to-peer architecture and design.  Sure, most of the things mentioned here are relevant to Software/Application Architects just as the implications of these things would have upon the Infrastructure Architecture disciplines.  Given the specificity of the target environment and related technologies, I can see how the role of Web Architect is valid and even necessary.

 

Of course, it wouldn't be much of a stretch for a Software/Application Architect with web knowledge to transition to a specific Web Architect distinction, but given the differences between Web 2.0 application development and Web 1.0 application development, there would be much experience to be gained on the former.

It is an inevitable side-effect of globalization: hyper-competition.  Markets are no longer limited to geographically-focused distribution channels; the internet and the rise of e-commerce has enabled companies, big or small to produce products and services that compete at a truly global marketplace.

 

Now that I've stated the obvious, I'll get to the point of this blog post.

 

For a company to stay competitive it must innovative: delivering novel and advanced products and services for which there is little or no equal in the marketplace.  But is that enough in our global economy?  Absolutely not.  Innovations can and do get copied, imitated, and downright stolen; if you create something that you consider truly innovative, it would be wise to keep the champagne bottles corked and the cigars unlit because chances are, you're not the only one and you can bet you life that you won't be for long if you happen to be…  So, what is the true differentiator that enables Company A to win over Company B?  One very simple word: Agility.

 

Within the context of this discussion, agility, as I refer to it simply means: the ability to create and deliver value faster than the competition.  Notice I didn't say 'create and deliver innovation faster than the competition' because innovation does not necessarily equal value.  An excellent background treatise of this assertion can be found here.  There is a lot of focus in companies to do more with less, to lower the cost of development, factor TCO and ROI, etc.  Sometimes the focus on cost is so myopic because regardless of how much less it costs to develop innovation, if the competition delivers first and can continually improve and advance faster, then cost savings don't hold as much relevance.

 

Why this discussion?  Well, technology historically has fostered agility.  The true sweet spot for technology is when it can make you innovate faster and at a lesser cost; in this case, technology itself is an innovation and the implementers can achieve competitive differentiation by its rapid adoption and utilization.  But only for a time while the competition itself ramps up because as stated before, innovation can be copied and emulated.  It's a vicious circle that many executives don't understand and thus foster a hate-love-hate relationship with Information Technology.  Innovation in today's world is a must and technology is a strategic enabler of innovation, yet it is a constant moving target.

 

The true mission of any player in a competitive environment is agility.  It is a basic characteristic of life; the agile of the species survive, the less-than-agile die.  There are so many companies out there with great potential that are very change adverse.  Change is a given in a quest towards agility and that is primarily what causes IT project failure: lack of change management.  This is why I am so passionate about the strategic nature of architecture within businesses as it should be their passion and drive to create an environment where change is embraced and enabled.

Usually when someone hears the words 'web' and 'service' used together, they tend to think of 'web services' as in 'XML Web Services' or a 'Java Web Service'.  The web services paradigm gave rise to one of the latest architecture styles referred to as service-oriented architecture or SOA.  The emergence of web services undoubtedly had a profound effect on the industry and continues to be the prime choice for many integration scenarios.  However, I am hearing a lot of different meaning when it comes to using the words 'web' and 'service' in the same sentence; the new meaning appears poised to change the way software is designed, developed, and delivered.  I am referring to the 'service' of the era that the media has hyped as Web 2.0.  Hype aside, the new notion of a web service is interesting and one worthy of careful consideration.

 

What is a service?

 

In this context, a service is web-native software.  By web-native I mean that it is envisioned, designed, and developed for the web as a platform much the same way Win32 MFC applications were designed for Windows.  As with the latter example, most software today targets a specific operating system environment and relies upon the vendor-provided or 3rd-party vendor enhanced APIs to run.  A web service of the future would be written targeting the web as a platform, complete with foundational services such as security, storage, preferences, etc.; these services would be fronted by provided interfaces - graphical and programmatic - that allow users to utilize the service as they see fit.  A great example is that of TurboTax.  For the longest time, the TurboTax software was a packaged application that one would buy and install locally on their computer.  For a while now, the same software is available online and the functional differences between the installed and online versions can scarce be seen.  Essentially, the makers of TurboTax have produced another channel in which they can monetize an existing software asset, yet they charge more-or-less the same amount for the software.  But what if they were to subsidize the fee with paid advertising?  What would that do to the customer base and their competition?  These are some interesting questions that this new paradigm of software is forcing companies who sell software to ask…  As with the rise of any new paradigm in technology, new business models emerge, new players and faces emerge - creating opportunities.

 

Consider the software you have on your computer and imagine it existing on the web in addition to your computer.  Such a model could provide a seamless experience between the two and enables a balance between access from anywhere or any device and maintaining the personal experience and richness of your own computer.  With this concept, the traditional meaning associated with software changes into more of a service, a web-native service that opens up the distribution to include an unlimited number of channels.

 

The interesting architectural consideration of course is how these web-native services are designed with respect to other web-native services.  Many of these web-native services will themselves be mash-ups of many other web service components that may or may not be within the immediate control of the developer, registering and communicating though standards-based technology and protocol.  Solutions Architects will be busy considering data design with respect to multi-tenancy and security; with mutli-tenancy comes interesting discussions around scalability, performance, and reliability among other things.  Infrastructure Architects would be occupied with supporting the large infrastructure needed to provide these services to millions of concurrent users and in many cases, manage the service-level agreements entered into with customers.  In a nutshell, there is so much more to this than AJAX…

 

Conceptually, it sounds do-able, but in the current state of IT Service Delivery and Management, we have a ways to go and the platform stacks and tools that are required to enable this emerging model are only beginning to come out of the research and development labs…  Sure, you could develop web-native software today just like you could develop Windows applications prior to MFC or VB6 and toolsets like Visual Studio, but it was complex and time-consuming.  We could discuss this for hours.  It's a great time to be in the industry.  We'll discuss more in the coming weeks.

Beta News article and Dr. Dobbs article talk about Adobe's recent release of the Flex 2 development platform and the client-side Flash Player 9 for rendering of Rich Internet Applications.

I have always been impressed with Flex back when it was called 'Royale' and when the IDE was referred to as 'Brady'.  The concept was very appropriate for Macromedia with its Flash flagship; it appears as Adobe attempts to further assert itself into more than just tools for graphic designers, Flex will continue to be appropriate in the Web 2.0 generation (I hate the 'Web 2.0' moniker - oh well).  What is interesting about the toolset is its positioning of the proprietary ActionScript scripting language.

In terms of 'Rich Internet Applications' or in non-Macromedia/Adobe speak 'rich clients' there appears to be many alternatives in terms of implementation choices.  Flash with Flex, plain ol' AJAX (or as Adobe's representative in the Beta News article says 'JavaScript spaghetti'), or what Microsoft is working on around Windows Presentation Foundation / everywhere (WPF /e) and ASP.NET 'Atlas'.

These are interesting times to be in technology.  In terms of the delivering end-user applications there appear to be two platforms that can be developed upon: Windows, and the Web.  The vendor race is on to win the hearts of developers in terms of what tools and platform are going to deliver the best experience.

When describing the various systemic qualities of a system to-be developed, one of the least-mentioned is that of portability.  I am referring to portability as the need to port one application on one platform to a different platform.  So, the question usually goes: will I need to port the application running on Windows to AIX or vice-versa?  That's a good question because the answer will determine how you implement and support the solution.  Of course, it sounds great to have that capability in the system because it appeals to the free-spirits within us; no one likes the idea of being 'locked-in' to a particular vendor or their platform technology.  Or do we but just don't like to admit it?

 

I have seen many instances where application development teams have caught on to the idea of being able to run an application on anything and have put an amazing effort into delivering this quality into their systems.  But at what cost?  In the course of the system's lifecycle, in retrospect, rarely does a need arise to port the application to another platform that justifies the cost of implementing the capability to do so.  Of course, no one has a crystal ball and the possibility, albeit distant, is omnipresent.

 

The past was ridden with fear of "lock-in".  I have spoken to several enterprise architects lately about platform technology and trends.  There is still a lot of reluctance towards the adoption of Microsoft technology because of the fear of "lock-in".  In terms of a trend, I see the focus of "lock-in" diminish and the emphasis on adoption of industry standards in the platforms take the "lock-in" market share.  The ability to port is usually not realized and the cost of designing portability into a solution is not cost or time feasible.  Sure, Microsoft software only runs on Windows and Windows only runs on Intel/AMD hardware so from that perspective, there is "lock-in", so…?  'Rip and replace' strategies typically aren't the most effective and in a service-oriented fashion an 'encapsulate and integrate' approach method is becoming more and more common using standards-based interfaces and messages.  So, with this said, portability anyone?  I would be interested in other perspectives so smoke 'em if you got 'em.

Well I finally gave my TechEd presentation 'Bits to Bolts: Bridging the Gap between the Solutions and Infrastructure Architecture' and I got exactly what I wanted out of it: controversy.  There were some things that I would do differently of course to have made the content a little bit more effective in terms of delivery but given the craziness of the months preceding TechEd, I couldn't afford to.  It was the first Architecture track session after lunch which is always a tough one to get to and I was expecting the worst; I believe the track planner was as well because I was placed in a relatively smaller room.  To my surprise, the room was packed and people were sitting on the floor.  I believe there were around 300+ people in there.  The topic that I spoke on is very broad and it was always frustrating to me during rehearsals because I wanted to go into more detail in certain areas but the time would not permit it.  But that was to be expected given it was an Architecture session at level 200.  As soon as I was done I was surrounded by a crowd of people giving praises and jeers about the presentation: I was elated.  Regardless of differences of opinions, I believe the subject matter is one of the most important challenges facing IT today.

Media companies have known it for years, the best way to get cheap advertising is through controversy.  If you can appeal to the emotions, whether positive or negative, of the audience then they become advertising agents.  We are a curious species and when someone talks about something in a positive or (especially) negative way, we instantly want to discover our own opinions on the matter.  It's getting people to spend their precious (and mostly idle) CPU cycles on a problem that is the challenge of today with all of the detail and noise.  So that was my goal: present a high level treatise on what this 'divide' consists of and some high-level considerations for bridging it.  I am planning on continuing my publication efforts with a series of written discussions on the subject that will allow for greater detail.

This is how the craft of architecture evolves.  Breaking away from the mainstream and traditional and putting something out there that causes a stir and disruption; such a theme is the intellectual worm, trojan, and bot that ceases upon the curiosity of the mind and commands the processing power to be used on the subject of the dissenter.  Hopefully the subject matter is enough to cause people to re-think all that has been considered conventional and result in a paradigm shift; a supernova of sorts that yields a new source of radiant energy and light as well as provide the base materials for evolution.  Like the field of cryptography, the best way to improve the field is through proving the fallacies of the mainstream; cracking the code and exploiting that which it sought to safeguard is sometimes the only way thought can be focused to continually improve.  This of course could apply universally...  Did the United States actually realize how vulnerable and penetrable it was until 9/11?  That is subject to interpretation as much as whether the US knew about Pearl Harbor's pending infamy.  The question is, once we are faced with a potentially new paradigm - what do we do about it?

While meeting with a customer I realized that there is a nice analogy going on that is on topic for my presentation at TechEd...

There are a lot of divisions between IT disciplines.  There is a division between Solutions and Infrastructure architecture disciplines as well as a division between the UI Designer and the Developer.  There is a lot of talk as of late within Microsoft and the industry at large of the importance of UX or User Experience.  To designers, UX is their meat and potatoes while the developer typically treats UX as an afterthought.  The same can be said about Infrastructure/Operations being an afterthought.  Why is UX all of the sudden being treated specifically by vendors such as Microsoft and even considered as an architecture topic?  Trends in the industry such as Service Orientation from a technical perspective focus on the exposure of business functionality and processes through a series of de-coupled "services".  These services are autonomous and machine-to-machine oriented for interoperability (hopefully) and integration; the machine-to-machine aspect being the realm of the developer and architect who typically marginalize the user interface aspects insomuch that they aren't really considered.  With the advent of what is being referred to as EDGE architecture, the importance of exposing the service portfolio through end-user targeted applications is front-and-center, thus necessitating the need for UX consideration as part of the holistic solution architecture.  For the gap between Infrastructure and Solutions architecture disciplines, the same trends have created the necessity of things such as the Dynamic Systems Initiative.  In this day and age, it is unacceptable for applications and systems to be islands (Don Box reference); I also contend that it is no longer acceptable for the disciplines in architecture and design to operate in vacuums.

To further the analogy, consider the specific efforts of Microsoft (and other vendors) to bridge the divides...  XAML (the eXtensible Application Markup Language) is being positioned as a means by which designers and developers can seamlessly share and hand-off the fruits of their labor in a high fidelity manner. Tools such as the Expression Graphic and Interactive Designers and Visual Studio 2005/"Orcas" will be used by each respective discipline and the fabric between them is XAML.  For the Infrastructure and Solutions divide?  The System Definition Model (SDM), a key element of Microsoft's DSI realization strategy.  In the world outside of Microsoft, the Data Center Markup Language (DCML) is intended for the same purpose.  The toolset will most likely be Visual Studio and the designers introduced in the Team Architect version of the product; however it wouldn't be difficult for SDM to be readable by a slew of third party tools as well and the same could be said of XAML.

In a nutshell, in terms of bridging the divide between technical disciplines:

XAML is to Designers and Developers what SDM is to Operations and Developers/Architects

Now why couldn't I have just said that?  Because I am an architect and we love to talk.

I am giving a presentation at TechEd 2006 in Boston on something fairly obvious in our industry: the pain and suffering resulting from developed applications not being designed for operations.  The title of my presentation is Bits to Bolts: Bridging the Gap Between the Solutions and Infrastructure Architecture (yeah I know the title is a little gimmicky but after all, it is TechEd).

Lately, this topic is getting a lot of notice at Microsoft as e-mail threads abound.  After much sound and fury of the verbose commentators, the general consensus is that 'operations need to be involved from the beginning'.  Now there's an idea!  Would having a system engineer sit in scoping/analysis meetings, requirements gathering meetings, and software design discussions solve the problem?  What would need happen in the participation of these meetings that would make the difference?  While I do agree that Operations should have greater involvement throughout the lifecycle, that statement alone doesn't solve anything nor does it explain why countless attempts for operations to be involved from the beginning has resulted in less than operational systems.

Again, the primary theme of this blog is context.  There is a much larger context that needs to be considered in this critical problem that extends far beyond resolving to involve operations from the beginning.  I don't want to expound all of the planned discussion for the TechEd session here but like most problems in architecture (and IT in general), the solutions are typically non-technical.  An example is the recurring ideology surrounding an Enterprise Data Model.  Having a master data model for all data in the enterprise has been the fabled panacea of many ideologue architects and developers for as long as I can remember.  So why hasn't it happened?  Is creating a super, superset of enterprise data technically impossible?  I am not suggesting that it is technically easy but the technical difficulty pales in comparison to the non-technical, softer side of the problem; so, in my opinion, is the issue between the Solution Delivery and Service Management sides of IT.  With that said, what needs to be addressed is the holy triumvirate of People, Process, and Tools (in that order of relevance) and that is what I plan on doing at TechEd and through a series of articles and whitepapers (if I could just get them finished).

If anyone is interested in talking more about this, or has thoughts on the matter - let me know!

More Posts Next page »
 
Page view tracker