Web Services Architecture Domain Model

I'm not in a position to provide any details just yet, but a couple of us on the patterns & practices team have teamed up with heavy hitters like Jason Hogg, Beat Schwegler, Christian Weyer, Wojtek KozaczynskiMaarten Mullender, Daniel Cazzulino, Victor Aprea, Hernan de Lahitte, and Pablo Galiano to provide some kick ass guidance around designing and developing Web services. During one of our meetings this week, we thought there might be some value in throwing together a domain model so we could make sure we were all singing from the same sheet of music when we used certain terms. This is a Visio version of what the whiteboard looked like after the meeting.

Click for a larger image of the Web Services Architecture Domain Model

This is by no means complete, but it illustrates some interesting concepts and commonly used terms. The first thing it illustrates is the almost 1 to 1 mapping of angle-bracket thingies and .NET thingies.

Also, in the context of the common "Contract First" phrase, you can not only see what comprises the contract on each side of the model, but get a visual sense of what contract first might mean. Contract first doesn't necessarily mean "fire up your favorite text editor and start handcoding WSDL". Of course, if you like doing that, you certainly can. But you can also start with C# if that is your preference. You can get yourself in trouble with either approach, but each approach is viable also ... start with whatever you're comfortable with ... just make sure you're thinking about the messages and the contract as a whole.

The other interesting thing this illustrates is the clear separation of the service, the adapter, and the business logic. This separation of concerns is an important architectural detail. Beat and I will be speaking specifically about this during our PDC pre-con session.

Comments

  • Anonymous
    September 06, 2005
    If you’re wondering why I was so quite just have a look here…I’m currently working with the corresponding...

  • Anonymous
    September 06, 2005
    When it's done please post it in a vector format (ex: PDF) so those who wish to print it and stick it on their wall get the highest quality possible.

  • Anonymous
    September 06, 2005
    If you’re wondering why I was so quiet just have a look here…I’m currently working with the corresponding...

  • Anonymous
    September 06, 2005
    Too bad the link doesn't work :-(.
    I'm really curious...

  • Anonymous
    September 06, 2005
    I say DSL

  • Anonymous
    September 12, 2005
    Just attended your Precon in PDC for the WS Arch and Tooling you and Beat present

    Still not clear how that interface/adapter arch work with (or generate code for in BAT) the new PURE asmx interface-based service contract. (i.e. using [WebServiceBinding] attribute... in .NET 2.0, i.e. wsdl.exe /serverinterface option...)

  • Anonymous
    April 05, 2006
    I think the title says it all (really? :)) - stay tuned for more to come in the next few days, as...

  • Anonymous
    July 24, 2006
    As my new role in the VB team, I've been tasked to look at WCF Data bindings and determine our story...

  • Anonymous
    April 05, 2007
    I think this diagram is a big mess and clouds concepts!

  • Anonymous
    April 05, 2007
    Please, continue ... I'd love the feedback.

  • Anonymous
    April 22, 2009
    Note : this entry has moved . Now working on the next “Baseline Architecture” wave of projects that will