Welcome to MSDN Blogs Sign in | Join | Help

Departed ...

I should have made this posting a few weeks back... I'm no longer with Microsoft; I've joined Fidelity Investments, here in Boston, as an architect in their Enterprise Application Architecture group.  At this point, it seems unlikely that I'll have a public blog, at least on technical topics, due to constraints imposed by Fidelity. (Of course I have an internal blog.)

So long for now, and thanks for reading!

Posted by jeromyc | 1 Comments

From Burton Group: "The Microsoft Superplatform: Setting the Bar in the Superplatform Arms Race"

On August 17th, Burton Group published a paper "The Microsoft Superplatform: Setting the Bar in the Superplatform Arms Race".  Obviously a favorable title from Microsoft's perspective, and I think a nice treatment of the superplatform concept overall.  In a nutshell, a superplatform is a cohesive and integrated stack of capabilities for building enterprise applications - Microsoft has Windows Server, .NET, SQL Server, Microsoft Operations Manager, BizTalk Server, SharePoint, etc.; in their unification, we have a superplatform.  Burton Group identifies the other superplatform vendors as BEA, IBM, Oracle and SAP.
 
In the synopsis of the paper, Burton Group says "One Burton Group client said that it was forced to re-implement a critical .NET application in Java 2 Enterprise Edition (J2EE) for scalability reasons."  When I first read this, I was pretty annoyed.   It makes it sound like good architecture, design and implementation have nothing to do with scalability, and it's only up to the (super)platform.  Fortunately, the authors recognize the issue in the body of the paper:
It's quite possible that the improvement in performance experienced by this company was caused by a factor not related to Windows versus UNIX.  For example, the J2EE application may have been better designed or optimized to deal with a specific bottleneck.  And certainly not every application will scale better on UNIX than on Windows.  In fact, another company interviewed for this report experienced the opposite results - it gained performance and scalability improvements when porting from J2EE to .NET.
 
Although the paper is generally conservative with respect to the scalability of the Microsoft platform overall, primarily blaming the x86 hardware architecture (which itself deserves debate, I believe), I'm happy that they didn't leave that point from the synopsis hanging.
 
Now, a potentially more interesting thought: in the "non-superplatform alternatives" section of the paper, the authors include mid-tier J2EE application platform vendors, open source J2EE application server projects, open source Java-based rebel frameworks and LAMP platforms and projects.  What about Windows?  Presumably "mid-tier J2EE application platform vendors" includes IBM and BEA with their respective J2EE application servers.  What about Windows with .NET and Enterprise Services with a non-Microsoft portal or database or BPM system or whatever? Do we only get to play as a consolidated superplatform?
 
I believe this is a common misconception around the Microsoft platform - that it's all-or-nothing.  In fact, the Microsoft platform is extraordinarily effective at working in a technology-heterogeneous environment.  Sure, web services are one (big, important) part of this, but so are things like ADO.NET providers (for Oracle, DB2, etc.), BizTalk adapters (for SAP, for WebSphere MQ, etc.), Host Integration Server, protocol support (like LDAP, Kerberos, etc.) and so on.  I won't say anything about WSRP here.  So let's join that "non-superplatform alternatives" list, too.
 
Posted by jeromyc | (Comments Off)

LAAAM

When I was at the Software Engineering Institute, I contributed to ATAM. During my time at Microsoft, I've been working on a related method, called the Lightweight Architecture Alternative Assessment Method.
 
ATAM is a scenario-driven method - it organizes quality attributes hierarchically in a utility tree with scenarios at the leaves of the tree. A scenario operationalizes a quality attribute into a measurable expression incorporating context, stimulus and response. Rather than saying "my system needs to be scalable", we say "while operating in steady state (context), the add-to-cart transaction profile experiences a 10x increase in utilization (stimulus) and the system responds with no more than 20% degradation response time for other transactions (response)." Importantly, ATAM (and LAAAM) also treat non-run-time quality attributes (although we're not strict about that characterization): "after deployment (context), a new settlement rule is added (stimulus) with no developer involvement and is deployed with no system downtime (response).
 
The utility tree is the mechanism by which we organize and prioritize scenarios. In ATAM, architectural decisions are analyzed against highly-prioritized scenarios to identify sensitivity points (architectural decisions that have a significant impact on quality attributes) and tradeoffs (sensitivity points affecting multiple quality attributes in competing ways - e.g. improving performance scenarios and degrading flexibility scenarios).
 
LAAAM takes the scenario-driven perspective of ATAM and derives a lightweight approach to assessing high-level architectural decisions. Where ATAM focuses on a highly rigorous, formal analysis of the impact (sensitivity and tradeoff implications) of any architectural decision, LAAAM considers "strategies" - higher-level architectural approaches. Strategies can take on many forms, but are frequently at the level of "implement using loosely-coupled communicating autonomous services" and "implement using a database-oriented application integration approach."
 
LAAAM produces an "assessment matrix": one dimension of the matrix (usually vertical) is the set of scenarios that will be assessed against; the other dimension (usually horizontal) is the set of strategies that will be assessed. Each cell of the matrix thus represents the assessment of a specific strategy in the context of a specific scenario. This assessment incorporates three dimensions: fit, development cost and operations cost. Fit describes the general viability of achieving the scenario using the strategy; fit also incorporates as assessment of risk, organizational impact (e.g. utilization of non-standard technology) and alignment with strategic direction in the enterprise. Development cost assesses how difficult it will be to implement the scenario using the strategy. Operations cost assesses the operational impact of the strategy in the context of the scenario. Each of these dimensions is scored on five point scale: high, moderate-high, moderate, low-moderate, low. Unfortunately, the meaning of "high" is opposite in the context of fit and in the context of cost - we fix this when we turn the scores into numerics: high is a score of 2 and low is a score of 0 for fit, but high is a score of 0 and low is a score of 2 for development and operations cost.
 
Once we've assessed each scenario/strategy pair, we add up the scores for each strategy. LAAAM anticipates the potential for the need to weight both assessment dimensions (fit, development cost, operations cost) and scenarios in order to accommodate organizational priorities. I argue to keep weights equal unless there's a strong reason to do otherwise, and I favor weighting scenarios over weighting assessment dimensions (using the prioritization described above - more on this later).
 
At the end of a LAAAM assessment, the result isn't a cut-and-dried "this alternative is obviously the best." Instead, LAAAM guides us to identify the real quality drivers, build consensus among the stakeholders on the relative importance of these drivers, explore the strengths and weaknesses of architectural alternatives under consideration, potentially exclude some clearly inadequate approaches.
 
I've applied the LAAAM approach with several Microsoft customers as part of my engagement as an Architect Advisor. I find it to be a great mechanism to get objectivity around architectural alternatives, even though I'm "the Microsoft guy."
 
I've been trying to get a paper on LAAAM out the door for a long time - I'll keep at it.  In the meantime, check out MSF for CMMI ® Process Improvement (MSF v4). LAAAM is the "Assess Alternatives" activity in the "Create Solution Architecture" workstream of the "Planning" phase.  (Thanks to David Anderson.)
 
Many thanks to Tim Mallalieu for his contributions to LAAAM.
 
Posted by jeromyc | 4 Comments

Environment-specific configuration for EntLib

I have a number of customers that are using EntLib, but with a common concern: how to manage environment-specific (i.e. development, QA, integration test, production) configuration information simply.
 
 
 
 
(This was posted using CSBlogger - which I've been very happy with so far.)
Posted by jeromyc | (Comments Off)

Must-see new stuff

Wow … tons of great new stuff to take a look at:
 
Check it out.
Posted by jeromyc | (Comments Off)

Microsoft Architecture Resource Center

 
I’m interested in what people think about the way the architecture center is organized.  Does it map to the way you want to find information? 
Posted by jeromyc | (Comments Off)

Architecture webcast series

Don't miss the series of architecture webcasts coming up in June and July:

Connecting Your Business with Service Orientation
Live Webcast 10:00–11:00 A.M. PT,
Tuesday, June 14, 2005

Creating a Shared Technology Vision
Live Webcast 10:00–11:00 A.M. PT,
Tuesday, June 21, 2005

The Value of Reusable Frameworks
Live Webcast 10:00–11:00 A.M. PT,
Tuesday, June 28, 2005

Examining Enterprise Service Patterns
Live Webcast 10:00–11:00 A.M. PT,
Tuesday, July 12, 2005

Posted by jeromyc | (Comments Off)

Analogy?

Service orientation is to object orientation

as

Relativity is to quantum theory

 

Posted by jeromyc | 1 Comments

Argh ... Cingular

Last Tuesday I lost my phone.  That’s painful enough by itself, but resolution was even more painful.

I figured I’d just walk into an AT&T Wireless/Cingular store and buy a new phone.  Well, I’m a legacy AT&T Wireless customer; apparently, that gives them the right to extort me (actually, it does).  Right now, I pay roughly $100/month for 1000 minutes, unlimited nights (starting at 7PM) and weekends, unlimited mobile-to-mobile and unlimited data.  If I wanted to buy a new phone in a Cingular store – AT&T and Cingular phones are SIM-locked *differently*, and there is no stock of AT&T phones on the east coast – I’d have to switch to a Cingular contract.  This was going to cost roughly $150/month, but no unlimited nights and weekends, no unlimited mobile-to-mobile and nights starting at 9PM.

My only other option was to call customer service and wait 48 hours for a new SIM card and phone.  That wasn’t going to work, given my travel and work schedule.

Ultimately, I managed to convince the guy at the store to dig up an old AT&T SIM card for me (which he initially denied having) so that I could put it in an old Smartphone.  The silver lining is the ease with which I can recover from loosing a phone – just point the Smartphone at the Exchange server and sync.  All done.

Now the question is how to get a new phone, and which one to get… I guess I’ll be buying unlocked phones online from now on.

Posted by jeromyc | 2 Comments

Avalon and Indigo CTP releases

Avalon and Indigo are now available to MSDN subscribers.  This is Indigo’s first public release for Windows XP and Windows Server 2003.  Also see the WinFX SDK documentation; WinFX currently comprises .NET 2.0, Indigo and Avalon.
Posted by jeromyc | 1 Comments

Microsoft buys Groove

Microsoft has just announced it will acquire Groove Networks.  Ray Ozzie will become Microsoft CTO.

This is, at the very least, extremely interesting.

(My first BlogJet post…)

Posted by jeromyc | 1 Comments

Upcoming ASP.NET 2.0 course in the Boston area

Fritz Onion, of Pluralsight, is giving a 4 day intensive course on ASP.NET 2.0.  One instance of the course will be held in the Boston area.

Posted by jeromyc | 1 Comments

Comments off

I had to disable comments ... the comment spam today was completely insane...

What's the solution?

Posted by jeromyc | (Comments Off)
More Posts Next page »
 
Page view tracker