@Pananoid

You may be interested in this post from The Server Side about SOA.

http://www.theserverside.com/tt/articles/article.tss?track=NL-461&ad=683077&l=ChurchandState&asrc=EM_NLN_5555875&uid=6384103

In it the author states:

"SOA has thus come to be associated primarily with integration of
systems. But what if I am building a new application that has little
to do with integration? Say I'm building a Business Intelligence (BI)
tool for analyzing and reporting on data from a data warehouse and
have no requirement to integrate any legacy systems, expose any Web
Services, or provide any BPEL processes. Is SOA relevant in the design
of such a system? Would I apply any SOA principles in architecting
this application? Would it make sense to say that my new system's
architecture is SOA-based? The answer to all of these questions is
"Yes"

Well, I completely disagree with that. IMO it is an example of the
sort of hype and nonsense you tend to get around SOA. Examples:

1) Using SOAP interfaces and employing a SOA framework (e.g. an ESB)
where none is needed imposes a large processing overhead that will
reduce performance, possibly by orders of magnitude.

2) SOAP interfaces are much more difficult to change than Java
interfaces. Say I want to change a GWT RPC method by adding an
additional parameter. I simply select the method in the RPC interface
in my Java IDE, select "refactor" which updates the asynch interface
and the implementation automatically, and edit the code in the RPC
service implementation to use the new parameter. Job done. Try doing
that sort of thing with a SOAP interface.

Against this the author puts up the (IMO extremely weak) argument that
a SOAP interface +  SOA infrastructure "is keeping the mode of
provisioning of a service separate and independent". What on earth
does he mean by that? He cannot mean the SOAP service itself because a
SOAP service is a SOAP service is a SOAP service. I think what he
means is simply that "SOA infrastructure" takes care of tracking which
physical server the service runs on which boils down to its IP address
or DNS name plus the SOAP service call details. Big deal. Remember,
the service client still has to call the "SOA infrastructure", so it
will need its address, the call protocol details etc to do so
anyway.....

SOA/SOAP does shine where you need to integrate different back end
systems that can't talk to each other any other way, but if you are
writing your own application in your own chosen language like Java it
is usually better, both from a system performance/scalability and from
a development agility point of view, to collocate all your component
modules within the same application server cluster (the exception
often being a database server). This is because your components will
talk to each other using local references and you can edit and debug
the whole stack in your favourite Java IDE. And in this type of
situation GWT RPC shines as well - economical to code and fast.

Just my 2c, Paranoid, but I fear that if you listen too much to this
sort of thing you will be buying yourself a whole heap of unnecessary
pain.

regards
gregor

On Jan 14, 2:58 pm, Paranoid Android <[email protected]> wrote:
> Some questions:
>
> 1) Using GWT-RPC model, can servlets (business logic) distributed like
> standard web services are? e.g. can I invoke some business that
> resides on another machine from a GWT client using RPC?
>
> 2) What about Restlets+GWT
>
> 3) Do I need to expose JSON or SOAP interfaces for web services only
> if I've to expose functionalities to third party web sites, as you
> said, or they can be useful anyway?
>
> 4) What about SOAFaces for GWT-ESB integration?
>
> Thank you
>
> On Jan 14, 3:39 pm, gregor <[email protected]> wrote:
>
> > Hi Gabor,
>
> > Personally, I never use the term "web services" anymore. It can mean
> > anything to anybody. I prefer to be specific, so I speak of SOAP,
> > REST, JSON, XmlHttprequest, GWT RPC etc. as appropriate.
>
> > I'm a GWT RPC person myself, but if I needed to expose services to
> > third party web sites for instance, I would choose JSON to do it. I
> > agree JSON (and REST) is a "web service" if a manager needs soothing
> > on the point.
>
> > regards
> > gregor
>
> > On Jan 14, 8:50 am, Gabor Szokoli <[email protected]> wrote:
>
> > > Hi!
>
> > > I completely agree with your comparison between GWT-RPC and SOAP XML,
> > > but it is just too convenient for me to reply to your post with the
> > > non-conflicting argument for JSON web services as a viable middle
> > > ground:
>
> > > On Tue, Jan 13, 2009 at 2:42 PM, gregor <[email protected]> 
> > > wrote:
> > > > In practice this is almost certainly an unfavourable option because
> > > > SOAP is a bloated over complicated XML based data exchange mechanism
> > > > by comparison to REST, JSON,
>
> > > That's still a web service in my book. That's what we use in fact
> > > (REST with JSON), with SSL and basic authentication.
> > > The project is still in the pilot phase, but we are getting there.
> > > Client side performance does not seem to be an issue so far with our
> > > expected dataset sizes: modern cell phones seem to handle it fine.
>
> > > > and particularly to GWT RPC.
>
> > > GWT-RPC is probably the most efficient on the wire and in the client, 
> > > true.
> > > On the upside we expose (develop, secure and load test) one interface
> > > for both human and machine consumption, and can use the server-side
> > > platform of our choice (currently Jersey) independently from client
> > > development (currently GWT).
>
> > > > In other words your application will run many times slower,
>
> > > Let them use Chrome ;-)
> > > Seriously, I very much like the idea of off-loading application state,
> > > data manipulation and GUI rendering all to the clients, leaving me
> > > with a stateless, cacheable, data-only server (plus the static
> > > download of the GWT client).
> > > Client hardware specifications are often within the order of magnitude
> > > of server nodes anyway (they may even exceed them in our case...)
>
> > > > and you will have
> > > > to write hundreds of lines of code to create, serialize and deserialize 
> > > > large XML strings.
>
> > > Not as nice as GWT-RPC sure, but JSON and third party stuff like
> > > Restlet-GWT can help with that.
> > > (For the pilot we just roll our own to better understand what is going 
> > > on.)
>
> > > I keep bragging about this approach here to invoke constructive
> > > criticism, so please discuss.
> > > I know some of our cornerstone design conditions differ from the
> > > general case, so I'll list them here:
> > > - We need to publish web services functionally equivalent to the web GUIs 
> > > anyway
> > > - Single-page, desktop-like applications
> > > - No need for SEO, no need to spy on users^W^W^Wcollect usage statistics
> > > - Applications may need to scale (both up to millions of users, and
> > > down to a few on restricted hardware.)
>
> > > I think enough of these conditions hold for Marvin's case for him to
> > > consider this architecture.
>
> > > Gabor Szokoli
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to