Skip to main content

Posts

Showing posts with the label SOA

Service decomposition and service design

Finding the boundaries of your system and decompose it into multiple services sounds easy, but it certainly isn’t. If you are interested in this topic, check out the blog series by Vadim Samokhin: Why you should split the monolith Wrong way of defining service boundaries What characteristics my services should possess How to define service boundaries Remark: After writing this post, I noticed that Vadim created a blog post linking to the series above and included also some other related posts.

Checking if a WSDL is WSI compliant

After a long trip in REST land, I’m back in the SOAP and WSDL world. While creating a WSDL and XSD schema for a project I was asked to check the WSDL for WS-I compliancy. I removed the dust from SoapUI and loaded the WSDL: Create an empty project Right click on the project and choose Add WSDL : Click on Browse… and select the WSDL you want to import. Click OK . Right click on the loaded WSDL and choose Check WSI Compliance .

SOA: the first rule of versioning web services

One important element in building a good SOA(Service Oriented Architecture) is creating a good versioning approach. If you fail to get good versioning from the start, It will become really hard to fix it afterwards. So therefore remember the first rule of versioning web services:   “One object in, One object out”   What does it mean? Let’s explain with the following sample. Imagine I created a webservice with the following method: This is a hard to version service and a really bad example. Why? Because we are using a simple type as input(in this case a guid). This means that in this case we have one object out, but not one object in. If later we have to add a second input parameter, we’ll end up with a breaking change. A better alternative is to use the following contract: Now we have one object in, one object out. If we want to send some extra data, we can just add it to the OrderRequest object as an extra property.

NServiceBus Modeling Tools

If you are still not convinced that NServiceBus could make your message based architecture a lot simpler, maybe this new feature can convince you: NServiceBus Modeling “Visual Studio integrated modeling tools for NServiceBus allow you to graphically design your distributed solution and have all of your projects created, appropriate references set up, configuration of queues and routing made to "just work", on top of all the regular NServiceBus goodness.” This first version includes Visual Studio integration and really makes developing with NServiceBus much more productive and enjoyable. NServiceBus Modeling Tools for Visual Studio from NServiceBus Ltd. on Vimeo . You can get this tool on the NServiceBus download page or via the Visual Studio Gallery here .

10 reasons to do CQRS

Rinat Abdullin posted a PDF that maps 10 reasons to use Command-Query Responsibility Segregation in your development. These reasons are about benefits of CQRS and things that it enables to do : Domain-Driven Design, Event Sourcing, Cloud Computing etc. Download PDF | Permalink

CRUD based SOA

Most IT oriented attempts to implement SOA I have seen end up as glorified CRUD systems pulling data to and from databases.  This leads to tightly coupled systems that rapidly degrade into Big Balls of Mud. If I contrast this to the few successful attempts I’ve seen, they had one commonality: they were all ‘message based’. While messages share some characteristics of service interfaces, they differ mostly in their granularity and lack of dependence upon one another. Messages allow true decoupling, where traditional service layers only promise this and usually end up creating even more tightly coupled systems. This separation of concerns allows development teams to concentrate on component parts with little impact upon other teams, and no more reliance upon them than an agreement on the messages they will listen for and those they will publish. Of course the question remains if IT is the right department to promote a SOA approach. Often decisions about software architecture bec...

SOA, the ugly truth…

Last week I was watching this presentation: Does my bus looks big in this? . Although it was recorded two years ago at QCon, it’s still completely true today. In this presentation ThoughtWorks' Chief Scientist Martin Fowler and Global Head of Architecture Jim Webber share their views of the typical corporate ESB, which in their view has grown too fat for its own good. Martin and Jim suggest the Web's architecture as a possible and more light-weight alternative, in line with their preference for agile approaches. Not only the content is great but also the way how they present it makes this is a really valuable presentation. Check it out.

Find the private key associated with a specific X.509 certificate

It can be difficult to find the location and name of the private key file associated with a specific X.509 certificate in the certificate store. The FindPrivateKey.exe tool facilitates this process. X.509 certificates are installed by an Administrator or any user in the machine. However the certificate may be accessed by a service running under a different account (for example, the ASPNET on Windows XP or the NETWORK SERVICE accounts on Windows Server 2003). This account may not have access to the private key file because the certificate was not installed by it originally. The FindPrivateKey tool gives you the location of a given X.509 Certificate's private key file. You can add permissions or remove permissions to this file once you know the location of the particular X.509 certificates' private key file. Read more .