Appropriate uses of web services
We have a client application at work that we give to our
clients so that they can sync their contacts and appointments from our system
into Outlook. There is an Outlook api to do this, so its fairly
straightforward. The way our stuff works is the user installs the client
application and clicks the ‘Sync’ button. The client app then accesses a
web service that we have exposed that will return the users contacts and
appointments in the form of datasets.
The client app then processess the
app and add the necessary information to Outlook.
It would seem, based
on Rockford Lhotka’s definition of a web
service , that we are
misusing webservices. I know that web services are most useful at interop
between different systems, but I think they can also be useful, even when you
are targeting specific uses of your web service. Using a web service could just
happen to be the easiest way to transfer information, as in our case.
The
client application COULD make a direct connection to the database, but using a
web service as an intermediary seems a little more secure, IMO.
We could also write an entire client/server application that
transfers the data in an application specific way, but that would take a
considerable amount of time compared to the ease of making a simple web
service.
So, while other applications might have a difficult time
using our exposed web service, that was never the intent, and I think thats an
acceptable reason sometimes.
Anonymous said,
Wrote on February 1, 2005 @ 3:56 am
Personally, if the client is connecting to a DB on a LAN I’d tend to use remoting more than WebServices - config is easier and it lets you more rapidly switch between remote and local versions (handy for debugging). Of course, it also lets you avoid the need for IIS
Anonymous said,
Wrote on February 1, 2005 @ 6:09 am
Ben,
I think your soltion is fine, from everything I’ve gleaned on the subject, for these reasons:
1) Using Web Services now for this type of communication will put you in a better position for moving to Indigo.
2) Transferring DataSets is *okay* (not great, but okay), if you can be sure you can control both ends. Behind the firewall, you most probably can.
http://codebetter.com/blogs/brendan.tompkins/archive/2004/06/22/17281.aspx
Rajeshwar Raja R said,
Wrote on July 18, 2007 @ 7:58 pm
Ben,
Is having a web service inside a company network for accessing a database(huge, lots of tables, large amount of data) efficient? I thinks accessing directly through a component might be better. Please give your suggestion.
Thanks,
RRR.