After the code generation session, I attended Roger Sessions’ talk about the next generation of SOAs. I thought that the speech was very interesting as Roger described the challenges that companies will face in the next 3 years. He sees three main challenges: technical, regulatory and competitive. From the technical point of view, it’s clear that the standards are moving from the basic point-to-point Soap model (where a message is “simply” encapsulated in an envelope) to the point-to-intermediary-to-intermediary-to-point WS-* model, where headers are used more heavily and limit the body of the message substantially.
Roger calls this model WS-SCRAM : Secure, Coordinated, Reliable, Asynchronous Messaging and went into the details of describing each aspect. Nothing really new to me, but he also illustrated how to model collaborations within software systems describing the concept of a Software Fortress. He actually wrote a book about it so I will definitely investigate further.
One serious aspect that is often ignored in the field is the necessity for systems to comply with ever increasing and stringent regulations. This is something that us Italians are very familiar with (well, Italy is very strict with data protection laws). Essentially, in several business fields, data has to be traceable, auditable and lockable. Fail to do that and your CEO could go to jail… actually, that might not be my problem after all, what do you think Fran :-)?
In the afternoon I went to other talks. I was particularly interested in the “Design Considerations for Enterprise Application Frameworks” session given by Kyle Huntley of Avanade. He heavily collaborated to the development of the “famous” patterns & practices Enterprise Library.
Kyle classified frameworks in two main categories: helper frameworks (for example, the Logging and Instrumentation Application Block) and structural frameworks (for example the User Interface Process Application Block). I found this distinction particularly helpful as there are very distinct benefits and issues. Usually helpers are easy to consume, can evolve with relatively low impact and they usually have low resistance in their adoption among developers. Structural frameworks have usually a much greater impact, they have a higher learning curve, and their adoption have higher costs, depending on the type of organization. There were a lot of insightful ideas and “tricks” that I will certainly consider once I’ll be back in the office. In my organization we work really hard to continuously enhance and improve our internal framework, so I was very familiar with the issues and practices that Kyle illustrated.
I actually met Jacob Croft (also of Avanade) a couple of hours before at the Innerworkings booth and, among other things, he managed to get me interested again in Aspect Orientation.
I know, it is a topic that often raises doubts as it is very hard to design aspects properly in order to avoid interdependencies. Jacob is pretty confident that with a bit of lateral thinking you can really obtain huge gains, and he confirmed that Avanade has been really successful in its implementation within their internal ACA.NET framework.
By the way, if you haven’t used the Enterprise Library yet (and you develop non trivial applications) stop reading my post and download it now!
After other talks, I ended the evening going to (not one but) two parties (VSIP and MSDN)! Wow, I really drank too much yesterday, but I had so much fun!