DCSIMG
Service Definition - public: class Alon : IArchitect, IAzure, ICPP, ISmartHome, IHomeServer

Syndication

Service Definition
Noam, Yosi, Udi and me sat together and had an argument about a service definition. We all agreed that calling a function/method is not a service and it does not matter if the call is stack based or XML message based. But we had different definitions.
This is my point of view:
A service is software hosted on a service host that gives value or functionality that can not be part of the client software. The client & service has to partly understand each other to get the value.
For example:
Suppose we have a weather service that get a Lat/Lon location and return the temperature. The client can be a Vista side-bar gadget that shows the temperature. Later the service evolves and now it returns the temperature and the humidity. The old client continues to get the temperature while a new client can show both values. If we configure the new client to use an old service, the new client will show only the temperature and ignore or give a default value to the humidity.
You can implement such service using WCF, however it is much harder than a function based contract which will probably lead to the same coupling that we have found in asmx based services.
Published Tuesday, November 07, 2006 4:41 PM by Alon Fliess

Comments

# re: Service Definition@ Tuesday, November 07, 2006 5:04 PM

אולי שרות זה יכולת עסקית אשר צריכה קלט או מחזירה פלט של מידע? שירותים לא נועדו לשם ייצור מערכות מידע, הם נועדו בכדי לספק צרכים עסקיים. הרעיון המרכזי מאחורי SOA הוא לאפשר גמישות וזריזות של העסק. ללא עמידה בתנאי זה אין שום בסיס מאחורי הרעיון של שירותים.

בכל ארגון ניתן למצוא שירותים רבים. חלקם יסופקו ע"י בן אנוש בלבד, חלקם יסופקו ע"י מערכת מידע וחלקם ע"י שילוב של מערכת מידע ובן אנוש. הדרך להגדיר שרות הניתן למימוש ע"י מערכת מידע יכולה להיות מבוססת על הצורך של השרות העסקי הנתון במידע בכדי לבצע אותו.

# re: Service Definition@ Tuesday, November 07, 2006 8:34 PM

I dont agree with the "that can not be part of the client software".

Theoretically nothing prevents your client from directly quering the weather temperature DB rather than going through a service.

A service, in my opinion, is a standalone component that can be called.

An Enterprise Service on the other hand is part of an ESOA architecture that aims to provide a standard way for defining services and how they interact with each other so that composing a process out of a bunch of services (and the application that runs it) is easy (and ideally done using a modeling tool rather than code).

by ekampf

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Enter the numbers above: