Steve and JP both make great points. Given that many projects that will result in service creation are still driven solely from user interface requirements, the temptation is very great to tailor you service interfaces toward that particular UI. Whether you create a separate presentation services tier performing functions as Steve describes, or embed some of the logic within the presentation itself, is dependent on whether there are elements of the presentation that may be reusable across multiple user interfaces.

The one thing about your example that I found interesting is that you gave an example of requiring 15 information items in the presentation layer, but dealing with a business service that only needed 10. I would be very surprised to find a query service that didn't return everything that a potential consumer might need. I often recommend a Small, Medium, and Large approach when dealing with pure information services. One returns a minimal set of information, potentially as small as a reference id. One returns the set of information to cover 80% of the consumers, and the last returns everything, ensuring that all consumers are covered. In reality, however, discussions around this are usually an indication that the service team really doesn't understanding how the information is going to be used and is simply making a best guess. You also don't want to reinvent SQL. If the information service team is finding no consistency in terms of the information sets they need to provide and starts down a path of developing a query language via their service interface, it's time to rethink your whole approach to information access.

One scenario that could match your example is where the information comes from multiple information domains, and some aggregation needs to happen. In this case, you would make use of a presentation services tier that talks to the domain-specific information services to aggregate the data. This, of course, presumes that this particular aggregation is only of value for this particular UI. If it's a common aggregation, then an argument could be made that it should be moved down into the information services area anyway. Also, keep in mind your performance requirements. The other thing to watch out for is a re-invention of SQL

If the backend business service is performing some form of update (e.g. the UI is for placing an order), it really doesn't matter that the UI has more information elements than the business service requires. If the business service was properly designed, it should be receiving all the information it needs. If there was ancillary information that a user needed to do their tasks, but is not needed for order processing, there's no problems.

-tb


On Jun 27, 2007, at 7:13 AM, Steve Jones wrote:

The "trendy" answer is Web 2.0 for the skin, SOA for the body. Mentally that is how I work on it. In my SOA book I talked about "virtual services" that do not do work directly but which present a different view on the services and capabilities that exist. This comes from a project I did in 1999 where we had a big backend (C++) and then created a set of services in Java which represented how the users wished to interact with that capability. The user (virtual) services did things like caching and page-flow (incremental building of information) and was done based on the user interaction model and the data as they saw it, rather than as the backend (not service oriented) wanted things to be done.

Its easy to imagine several lightweight virtual services re- purposing the "true" SOA pieces for different audiences and interaction models.

http://www.capgemini.com/ctoblog/2007/01/diamonds_are_forever_1.php is a picture representation of the difference between interaction and function and how the two interact.

Steve


On 27/06/07, JP Morgenthal <[EMAIL PROTECTED]> wrote:
You're premise is correct. I am constantly having to remind my development team that we do not change the service to fit the needs of the UI. In these cases we have to develop a server-side processor to provide information aggregation and transformation. Some might do this with an ESB today, but I'm using a Microsoft stack. You might also use a BPM tool to help in this layer since the UI is probably connected to a business process.

__________________________________
JP Morgenthal
President & CEO
Avorcor, Inc.
46440 Benedict Drive
Suite 103
Sterling, VA 20164
(703) 649-0829 x 101: Office
(703) 554-5301 : Cell
[EMAIL PROTECTED]
__________________________________

Confidential: The information in this e-mail message (including any attachments) is intended only for the use of the recipient(s) named above and as such is privileged and confidential. If you are not an intended recipient of this message or an agent responsible for delivering it to the intended recipient(s), be hereby notified that you have received this message in error. Any review, dissemination, distribution, printing or copying of this message is strictly prohibited. If you believe you have received this message in error, please notify the sender immediately by return e-mail and delete this message from your system(s).




On Jun 26, 2007, at 5:42 PM, Suhayl Masud wrote:

I am curious to find out how fellow SOA practitioners are handling
the GUI in the SOA world.

The GUI is an interesting beast in SOA (and so is "reporting" for
that matter). GUIs require customized information, tailored to
particular screens. Now you can format information for the screen on
the presentation layer in the GUI, but what if the UI needs
more/different information than the service provides?

To offer a crude hypothetical: consider a service that requires 10
items in an order to process that order in a specific domain, but
the user interface requires 15 information items from the same
domain. Now, one hates to modify the perfectly good business service
specifically to satisfy the needs of one UI. I have seen the
solutions of "presentation services", and have built a few
myself....frankly; they don't really look much like services [they
resemble pure old application APIs over SOAP http).

So, fellow practitioners, how have you handled the requirements of
an information rich user interface in your environments?

-Regards
Suhayl Masud
http://www.linkedin.com/in/smasud







Reply via email to