index > Architecture General > SOA message design

SOA message design

Hi,

I'm developing a system using web services with SOA principles. But I have doubts about the design of a message. For example, I want to expose a product catalog so the signature of my method would be:

public FindProductResponse FindProduct(FindProductRequest request){........}

FindProductResponse will return a collection with all the products that meet the criteria specified in the FindProductRequest object. But I don't know how to define a FindProductRequest correctly. I have several search criterias: By product category, product subcategory, product unique identifier, etc... Do I have to write a different method for each search criteria?

Thanks for your help

Mauricio.

mrcvolvo

I can see this going either way. Personally I would probably have one method. I am assuming that the response data will always be the same. In that case it makes sense to me that your request criteria would identify the property to search by and the value to filter. To me the method is still performing one piece of functionality. Just don't go farther with this. I wouldn't have one method that return products, customers and invoice depending on criteria.

I am sure there are those who will disagree. If they do they can state their reasons. Hope that helps.

Tim Murphy




http://geekswithblogs.net/tmurphy
Tim Murphy

this is about how flexible and ready for change you want to be and in control and...and.. and.. and preformance.

When you use one methode which accepts different criteria and let the request handle the knowledge on which property to filter, and multiple clients are using that methode. they also must have knowledge of the filtering properties. When you change (add, delete or rename) a filter property you must notify the clients.

When you use multiple methods each client who uses a specific filter methode. this client doesn't have to know all the other filter properties and when you change one methode you only have to notify the clients who are using that service.

When you just have one client, you can choose to have just one methode, but maybe you want some control on which properties this client is filtering on...

and what Tim is saying, result should be the same.

and you can go on like this a while.. there are more tradeoffs you can make.

But finaly I would go for multiple methodes




www.ClemensReijnen.nl / IASA Netherlands
Clemens Reijnen

I don't think that exposing a "generic" method to perform searches on products is in line with SOA principles - it looks more like a DAL that happens to have a web-service API.

I would try to create messages that are aligned to specific business processes that the service participate in.

Arnon




http://www.rgoarchitects.com/blog
Arnon Rotem Gal Oz
reply 4

You can use google to search for other answers

 

More Articles

• Application State in Web Farm Scenario
• Data Modelling Tool in Visual Studio 2005
• IIS force a session timeout
• workflow systems differentiation
• ExitWindowsEx Shutdown v Restart
• Are interfaces for behavioral overloading only?
• Video Streaming..
• When and Where to use Interface
• MS caching Block
• Who is the appserver in .NET?...IIS, the OS, BizTalk, SQL Server?
Bookmark and Share
Welcome to Bokebb   New Update  
 

New Articles

• WSE 3.0 solution
• Win2000/XP SP2 Breaks Serial Writes. Ho
• Prevent a service account from logging o
• Microsoft Certifications- Good, Bad, or
• DAL without deep loading
• Has anyone received this type of error?
• Trying to figure out the max. number of
• Web folders and the Shell API
• Physical seperation of layers - business
• workflow engine and rule engine performa
• word deletion problem
• OO design question.
• Question regarding the CSLA framework
• Entity Aggregation in the BLL/DAL world
• How to best implement an Orchestration L

Hot Articles

• Web farm architecture
• Recurring Appointment Database Storage
• WSE 3.0 cannot be used with the Compact
• Custom Business Object creation and usag
• profiler needed
• caching optimisation with concurrency ha
• Exception Management in N-Tier architect
• First physical sector
• Two Controllers sharing one model
• OTP where to create a blog
• Advanced NTFS Premissions: Folder ReadOn
• Windows Operative System Architecture
• good C# 2.0 architecture book for Windo
• BPEL, XPDL and BPMN
• Mediator Pattern or Windows Event-based

Recommend Articles

• Doing what Microsoft does, not what they
• Need suggestion.....................
• Prevent a service account from logging o
• Business layer strategies
• Smart Client for Web applications
• Windows Service event description
• Object Relationship Mapping ?
• DAL without deep loading
• is skelta workflow useful in vs.net
• Biztalk problem
• Best practices of implementing component
• Hosting Long Running Batch Processes In
• Biztalk server 2004 Data Access
• Pros/Con on using seperated Forest for 3
• Contract first - what tools do you recom