Questions about Web Service applications (Architecture)

T

Toble Rone

Some tome ago, me and my team could carry out our first real distributed
project. It's a GIS application using a Remoting Host (currently a Windows
Service), with TCP formatter over HTTPS. There is a bunch of classes
published in that way, actually exposing methods from an ORM layer. The
client app (a Winform/C# app) is used by almost 100 users over the internet
(our customers), and the performance is great.

Now. I'm actually engaged in a quite big new project. The architecture is
quite simple now, with planned client apps (Winforms too) used inside a big
corporate LAN, with external access also, with ASP.NET "extranet" websites.

The point here is that in this new scenario we will have a lot of external
communication with other clients, interfaces with government financial
systems, and so on. and the "Service Oriented" idea came in. I have a lot of
technical knowledge about web service and SOA (mainly from reading not from
real experience). but I have some doubts about WHERE and WHEN to really
apply web services.

I'll probably have real "services" in this scenario (with all the know
tenets, isolation, explicit boundaries, etc). No problem with that.

The problem is with normal behaviors of a distributed application. Imagine a
complex Winform client app with a lot of CRUD operations on business
entities. there will be (logically) some BLL functionality to do that crud
operations. I.E. the normal form to update or insert new customers or
products in the system.

But, in a "correct architectural point of view", if I decide to implement
web services (to interface with other systems and services), I really need
to expose ALL those BLL functionalities with web services?, or its nice to
mix the technologies? (may be using COM+, Remoting, etc).

In real world scenarios using web services. they do ALL with web services?,
or just the points when interoperability between other systems are needed?.

Every answer here will be really appreciated.
Tnx in advance.

Jack.
 
H

Henrik Gøttig

Hi Toble

Well, in my opinion, you hit the head on the nail, right there... plonk!

I have done "Service oriented" systems like you for the commercial
market on several projects, both in the J2EE and .NET camp.
My opnion is:
Look at your WS layer as a way of "interoperablizing" your business
processes. Just another way to get to your business processes. Same way
you can expose the same or other business processes for more appropriate
protocols like remoting, custom TCP/IP channel, whatever. The business
process remains the same, but how the data gets transported to it differs.

So, you can build your system without the need for webservices at all,
but still construct it to be "service oriented". Have POCOs, COM+
objects, whatever to define the business processes and implement what
those does. Expose all (or some of it) to "the world" via Webservices.
That way any exposed interface (being Webservices, remoting) acts just
as a transport layer.

To your last question regarding all or some business processes as web
services, I would say: Implement as appropriate. If it is more suitable
for the client to use a custom TCP/IP based "protocol" use that, if it
is suitable to use Webservices, do that. As long as you isolate your
business processes from the actual transport, you can mix it in any way
you want.

That being said. The last project I worked on used Webservices as main
process entry point for clients, and Biztalk for integrating
(serverside) with other "services" due to it's outstanding schema
mapping functinality.

Is it clear what the point is... or id I misunderstand your question
totally.

Regards

Henrik
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,225
Members
46,815
Latest member
treekmostly22

Latest Threads

Top