InfoQ

News

Volta: Architecture Factoring and Refactoring

Posted by Jean-Jacques Dubray on Nov 16, 2007 08:56 AM

Community
.NET,
Architecture
Topics
Rich Internet Apps,
SOA Platforms
Tags
Refactoring

I attended the Strategic Architecture Forum (SAF) that was held in Redmond earlier this week. The event is a series of presentations and roundtables. Bill Gates held a great Q&A session where he revealed he was in the REST + WS-* camp amongst other things.

I attended a presentation on Architecture Refactoring from Dragos Manolescu. Erik Meijer recently published an article which sets the context for Architecture Factoring and Refactoring:

As the world is moving more and more towards the software as services model, we have to come up with practical solutions to build distributed systems that are approachable for normal programmers.

Dragos works at the LiveLabs which are in charge of exploring disruptive technologies (Listas, PhotoSynth, Seadragon, Deepfish). He graduated from University of Illinois at Urbana-Champain shortly after Bill Opdyke  established the foundations of Code Refactoring. He also worked at ThoughtWorks with Martin Fowler. Code Refactoring has become a great success story and pretty much every IDE supports it to a certain degree.

Dragos explained some of the challenges inherent to Architecture Refactoring as compared to Code Refactoring which relies on a series of assumptions:

  • Same application boundaries
  • Same development platform
  • Same Constraints

that are simply impossible to make in the realm of Architecture Refactoring. He is looking at getting around them. His starting point is MSIL and creating MSIL to MSIL transformations that enable to cross process and development platform boundaries while offering more choices in terms in scalability, availability or security even well after the code was written within a monolithic architecture.

His first goals are to enable the multi-tier architecture refactoring and the injection of boilerplate code while removing accidental complexity due to particular choice of architecture and extending the reach of the platform. He is reusing as much as possible:

  • the .Net programming languages
  • the .net libraries
  • the development tools such as Visual Studio 2008
  • patterns and idioms

Dragos gave us 3 demos involving tier splitting refactoring (more information can be found here). He started with a monolithic application and simply by adding a [RunAt(server)] statement to an operation, the compiler generated the corresponding service and the application invoked that service automatically without any further coding. 
 
The showed us the cross-tier debugging capabilities of Visual Studio.

He also showed how Asynchronous method calls could be implemented just as elegantly without having explicitly use a .Net Delegates
 
He also showed that Architecture Refactoring was possible for web applications even though we would be using:

  • Different languages
  • Different libraries
  • Different tools
  • Different programming paradigm 

Dragos recommended to watch Erik Meijer's presentation on Volta: Wrapping the Cloud with .Net

Volta is an evolving research project focused on exploring ways to innovate data-intensive programming models. Volta is currently exploring a lean-programming inspired toolkit for building web-based and mobile applications by stretching the .NET programming model to cover the Cloud.

Sami Jaber published last month a list of references for the project which included this one from Mary Jo Foley who provided some more context for the project last April.

 

 

No comments

Reply

Exclusive Content

Rob Windsor on WCF with REST, JSON and RSS

WCF is not just for SOAP based services and can be used with popular protocols like RSS, REST and JSON. Join Rob Windsor as he introduces WCF 3.5 and its new native support for non-SOAP services.

Christophe Coenraets Discusses Flex 3, AIR, and BlazeDS

Christophe Coenraets discusses Flex 3, Flex Builder, AIR, BlazeDS, Adobe and open source, integrating Flex with existing applications, and integrating RIAs with search engines and browsers.

Debunking Common Refactoring Misconceptions

Danijel Arsenovski attempts to dispel some of the myths around refactoring and how it applies to .NET developers.

REST Eye for the SOA Guy

In this presentation, recorded at QCon San Francisco, CORBA guru Steve Vinoski explains REST from the view of someone who comes to SOA from a traditional, RPC-oriented background.

Choose Feature Teams over Component Teams for Agility

Feature teams are key to scaling agility for large teams. In an excerpt from "Scaling Lean and Agile Development," Larman & Vodde show how feature teams resolve traditional problems & raise new issues

Billy Newport explains Virtualization

Billy Newport talks about virtualization, eXtreme Transaction Processing (XTP) and WebSphere Virtual Enterprise. He discusses hardware, hypervisor, JVM, application and data virtualization.

Virtualization and Security

While virtualization provides many benefits, security can not be a forgotten concept in its application.

Introduction to Agile for Traditional Project Managers

This session is specifically aimed at traditionally trained project managers who are new to Agile, and who would like to be able to relate the PMI's best practices to their Agile equivalents.