Modelling Web Service Consumers

Post Reply
Clint.Cooper
Posts: 6
Joined: 16 Aug 2009, 22:00

What I want to do is to model web service providers and consumers within my organisation. I'm capturing the web service providers using instances of Application Function Implementation with Technology Protocol set to SOAP and linked to Application instances.

The static architecture view appears to be too coarse grained to model usage. How can I capture the dependency of an application using a web service provided by an application?
Clint.
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Firstly - apologies for the delay in getting back to you on this.

Sounds like you are doing some very interesting modelling.

We have modelled just this sort of thing ourselves and encountered just this issue. After some deliberation, we realised that it is important to recognise that Web Services (that interact using SOAP as you've described) are a software thing and are therefore captured in the Software Architecture as software components. These Software Components 'deliver' the Application Function Implementations that you've already modelled.

Each Software Component has fields that define:
  • What technology product do we get this software from - 'Software From Technology Product Role'
  • What the runtime technology of the software component is (Java, Windows, etc.) after all Web Services can be implemented on many different runtimes - 'Software Runtime Technology'
  • What technology protocol is used to interact with the software component (again, for Web Services, this would SOAP) - 'Software Interaction Protocol'
The dependency between the Application and the Web Services is then captured by using these Software Components in the Software Architecture rather than the Static Architecture, which is as you say too coarse grain and not intended for this more detailed scenario. Note that we can now re-use and/or share (note the difference) the Software Components for the Web Services by using that component in the Software Architecture of more than one Application Provider. That covers re-use but sharing is then a deployment / physical decision. After all we can have two applications that use the same Web Service but each could have its own instance, which gives us re-use but not sharing. We can model shared Web Services by defining dependencies in the physical application deployment by using the same instance of the Software Component in the Deployment of Software Components field.

By defining the Software Components for your Web Services, linking them to your existing Application Function Implementations with the 'Delivers Application Function Implementations' field and then creating the Software Architectures for your Applications and including these Software Components, you will then define the dependencies you need.

Please don't hesitate to get back to me if you'd like to discuss this further or go into more detail about the modelling steps I've described.

Jonathan
Essential Project Team
Post Reply