Category: Service Orientated Architecture

Pictures in the Cloud – SSDS demo app

I’ve been playing around with SQL Server Data Services, Microsoft’s new concept for the ‘datacenter in the cloud’.

Anyhow, I’ve been having a bit of hack around to show how pictures can be stored by this kind of service. There isn’t any reason to use this over the other online photo sharing sites, but it demonstrates how to use the API.

http://www.codeplex.com/CloudPictures

As far as I can tell, there are no ‘best practices’ about how to use SSDS (probably because no one is publicly using it for the enterprise yet). Hopefully writing this application will show me the best way to achieve this.

There isn’t a ‘release’ yet, but if you download the source, build it (VS 2008) get a username and password and edit the app.config then it should work straight away.

Microsoft Managed Services Engine

I’m trying to work out why the Microsoft Managed Services Engine project isn’t getting more attention.

The short answer (I guess) is that the concept is pretty dry unless you are an architect who has encountered these sorts of problems 🙂

It is a great tool for virtualizing your web services. One previous project I worked on had an internal IT cost of around $40,000 to open a new port in their firewall for a new version of their client. This is an issue that MSE would have solved easily.

Versioning

MSE allows you to host multiple services with the same names on a single endpoint.

It uses the format of the request to decide which version of the web service is appropriate for which service.

Retiring

When you decide that you do not want to maintain an older service, you can deactivate it from the managment console.

Furthermore, you can redirect requests to the retired service to another by providing an XSLT transformation.

Policies

I admit that I don’t fully understand the capability of this feature. I know you can apply a ‘policy’ to a service such as running a RegEx expression against its output. There is also a policy to ‘throttle’ a WCF service, which could be useful if you want to give priority to the newer one. It seems to be straightforward to define new policies.. I can think of some security policies that might work well.

Reading around, it seems this was actually developed by Microsoft for some customers and they decided to release as an open source CTP project.

The team do not seem to have a blog or anything around this, so it is hard to know where it is going. Nevertheless, I hope it gets a formal roadmap soon since this is something I’d like to consider using on customer projects.

Some questions I have that I will endeavor to answer myself over the coming weeks:

  1. Do virtualized services perform as well as ‘real’ ones?
  2. Are there ‘best practice’ guidelines?
  3. How can load balancing be applied?

.NET and J2EE Interoperability article

Amer Chaudhry has a good high level view of .NET / J2EE interopability:

http://www.codeproject.com/KB/cross-platform/J2EENet_interoperability.aspx

It will tell you all you need to know to get a background in this area if you have never looked at J2EE before.  

I’ve also covered this topic inside my company recently, and am considering writing something about it on this blog in 2008. I’ve touched on NetBeans as my learning tool for J2EE before.

Which reminds me, goodbye 2007 and happy new year! 🙂

Visual Studio 2008 Project Compatibility

UPDATE: 16th December: I felt it fair to update the post with my findings

++++++++++++++++++++++++++++++++++++++++++ 

At my company we have a great DSL based tool for generating WCF Services.

However, because of various reasons, the tool will only run under Visual Studio 2005 and not the all new and great Visual Studio 2008.

That is a pity, because I wanted to show off a new concept and hence wanted to use the WPF designer in 2008 to make an impression for the client.

Well, I’m I thought I was in luck! Apparently I can use the same projects in VS 2005 in VS 2008 and vice versa.

http://blogs.msdn.com/djpark/archive/2007/11/07/how-to-use-solutions-and-projects-between-visual-studio-2005-and-2008.aspx

So you don’t have to abandon VS 2005 to try out the new features in VS 2008 in your projects… this is good stuff Microsoft!

I should have read the article more closely: I opened up my VS 2005 C# library project in VS 2008.. and it gave me an upgrade wizard 😦

Luckially I was able to use my assemblies from VS 2008 with no trouble, but it could have been so much better.

Open Source SOA Projects

Udi Dahan’s .NET service bus project, NServiceBus, is now being hosted on SourceForge.

I thought a quick list of some open source projects I’m looking into might be in order:

Project Description
NServiceBus A service bus for the Microsoft space
Web Service Factory A ‘Patterns & Practices’ tool to produce web services
WCF Robust File Transfer A demonstration project demonstrating how to ‘chunk’ large files with WCF
WCF Activities for WF Create WCF services with Windows Workflow
Managed Services Engine WCF service virtualization

It is really interesting.. five years ago I didn’t even consider any open source in my day to day work.. these days customers are far more accepting of the idea.

Leaving the collective: Web Services on other platforms

I’m preparing an internal presentation for my company about a cool tool we use that hooks up various web services in Visual Studio by drawing and connecting them on a canvas. Unfortunately there isn’t much point in my talking about it since you would have to pay $$$ and have one of our consultants on site to use it.

Nevertheless, I’m pretty excited about this and I thought: what is the best way to demonstrate a SOA system on a disconnected Virtual Machine? Well, by adding a few databases and web services that have nothing to do with Microsoft.

I’ve been listening to Scott Hansellmans podcast, and thought that RUBY would be a great one to try out, since it is apparently the next big thing.

In many ways it is. I got hold of something called InstantRails, and it provided me with a ‘one click’ Rails, MySQL database and Apache web server all good to go.

Writing web pages in Ruby is really easy. Writing Web Services.. well I spent a whole evening trying to work out what would take me a few clicks in Visual Studio, & didn’t succeed.

I then tried the Java J2EE route, and downloaded NetBeans with JBOSS, and here are my observations:

Versioning:

Java versioning is even more confusing than .NET, and that is saying something. At least when I say my web site is running ASP.NET 2.0, everyone can have a good level of confidence that we are talking the same version.

Speed:

Back in the day with my Pentium 3 and 128mb of RAM, Java was painfully slow to use as an IDE. I loved JBuilder (new version is built on Eclipse!), but it didn’t really compare to the Microsoft tools.

Well, today the playing field seems even. This isn’t really scientific, but Visual Studio 2005 takes about 100MB of my RAM, and NetBeans about 115MB. NetBeans seems to be a Java based IDE that is as performant as Visual Studio.

Features:

I’m not going to go here yet.. I only wanted to create some web services in J2EE, and I have to say that it is as easy as Visual Studio, and the integration with the bundled Tomcat and JBoss application servers are very good. I’d like to come back to this topic in a future post.