users@glassfish.java.net

Opinions needed: Designing SOA from scratch: JBI BC&SE-granularity...

From: <glassfish_at_javadesktop.org>
Date: Sun, 15 Apr 2007 03:18:49 PDT

Hi out there,

I pretty new to JBI, webservices etc. etc. and I do need your opinion.
I'm currently designing a SOA-prototype as a part of a university thesis and I'm a bit stuck whilst deciding, how to design various components. Let me explain you briefly, what it is about:

It's my task to integrate a legacy system into a newly designed SOA based on Glassfish and openESB. The legacy application is accessable using a (cripled) webservice, which only supports 'login', 'logout' and 'systemcall'. Ignoring anything what was written about webservices, 'systemcall' translates any accepted webservcie call on the legacy system into a corba-call on the system itself, sending back the answer.
This leeds to the following procedure, to call any stupid action on the legacy system:
Say, you choose to search for a file on the legacy system. Following Webservice-calls need to be done: login -> systemcall (parameter: grant rights) -> systemcall (parameter: get domains to include in the search) -> systemcall (parameter: do search unsing search parameters (eg. keywords, author)....) --> systemcall (parameter: get resultset) --> systemcall (parameter: get details for result no. __) ---> logout...

This was an easy example for a (basically stupid) search-service.

[b]What's my point:[/b]
I'm not sure, how to design the architecture of the SOA implementation. My [b]first thought[/b] was, to implement a binding-component, which simply issues those 3 funcionts avaliable by the legacy-system to the NMR. I then read JBI208, and no I'm not even sure if it is possible to issue more than one 'function' within a single BC. Or if a binding-component is used in that fashion.

[b]Second thought[/b] would be, do implement both, a BC to access the legacy system, and one SE, which offers easy funtions to the NMR, such as SEARCH (bundling the needed calls, which will be done using the BC).

[b]Third idea[/b] would be, do write various SE, implementing e.g. a search service (which again will call the BC to access the legacy system). This would be the best soa-approach (IMHO), as the NMR could choose, which search SE will be used, if a search is triggered by any other component (say, the search could be done on the legacy system or (eg) using another BC accessing e.g. google....

[b]Fourth idea[/b] would be to implement a single BC, issuing a couple of possible methods (search for a document, issue a document, etc) to the NMR, transparently bundling various webservice-calls to the legacy system.

I hope, you did understand my thoughts... I'm looking forward, dicussing with you!

Thanks a lot! applet5
[Message sent by forum member 'applet5' (applet5)]

http://forums.java.net/jive/thread.jspa?messageID=212440