Mike, it is a splendid illustration of your point! While I totally agree with 
"real world modeling" against "information processing modeling", I would like 
to outline that there is hint for the approach, actually, implicitly 
demonstrated by 'your' example.

So, "The "right" answer will therefore depend on what you expect to do 
 with the system, both now and in the foreseeable future", and this "what you 
expect to do" is written in the Business Model of the business ( enterprise or 
its division). If an IT solution architect know this Model, the modeling gets 
scoped and limited by this model; here is very little to do with 'conceptual 
modelling' because outside of the Model's vision. That is, the conceptual model 
is the one which is served by your business. Well, if the business is ugly, the 
model should  be the same... or you have to change the business (job).

My personal approach to the conceptual model vs. application specific one for 
the services is based on a compromise: the conceptual model is the enterprise's 
asset (the treasure, if you want) and it has to be created and maintained (it 
is, actually, a question if 'the object' in the US is the same 'object' in 
China...) while each service may and should have its own VIEW on the conceptual 
model. This is extremely important to understand when one builds data access 
service, especially, for the strategic corporate databases (storages).

If the REST/WS-* service interfaces (I consider neither of them as a SOA 
Service) provide such view or there is a data transformation service available, 
I am fine with both interfaces.

- Michael


Mike Glendinning <[EMAIL PROTECTED]> wrote:                                  
--- In [email protected], Todd Biske 
 <[EMAIL PROTECTED]> wrote:
 >
 > One point that Anne made which still doesn't get a lot of press is  
 > the difference between Resource Oriented Architecture and Service  
 > Oriented Architecture.  In a companion article, it was called out  
 > that REST is about the nouns, where SOA is about the verbs. This is
 > part that I think needs some honest debate.  Is a resource oriented
 > view of the world going to be better than a service oriented view?
 > Many people keep associating REST with SOA, but I think that's an  
 > inaccurate portrayal.  The people I've spoken with have been doing  
 > POX over HTTP, which is not REST, and I'd argue that there are some
 > very big differences.
 > 
 > -tb
 
 Todd,
 
 Wasn't the noun-oriented view of the world thoroughly and effectively 
 ridiculed by Steve Yegge last year (see [1])?  Whilst his target is 
 clearly Java in this case, the same comments could be applied to REST.
 
 But seriously, I agree that this needs further elaboration and debate.
 
 Unfortunately, more than two decades of experience in conceptual 
 [data] modelling leads me to believe there will be no simple answer.
 
 If you haven't already read the book "Data and Reality" by William 
 Kent [2], then I urge you to rush out and buy a copy immediately.  
 The book was first published in 1978 and although some of the 
 language might now seem old fashioned, the content is still highly 
 relevant.  Read it.  If you are not truly humbled and realise how 
 little you know, about anything, then read it again!
 
 For example, on page 3 Kent asks you to consider the problems of 
 modelling the simple concept of a "book".  For a bibliographic 
 system, you might wish to record details about an author who has 
 written two books using two entries (resources) in the database, one 
 for each book and with attributes of title, author, etc.
 
 But a library system would be different.  The library might have five 
 copies of each of the books and is more interested in the location of 
 each physical copy.  The library database will therefore need to have 
 five entries (resources) storing information about each copy and 
 whether the book is out on loan, and if so to whom.
 
 For both systems, how will you then deal with books published in 
 separate parts (such as the long-awaited Vol.4 of "The Art of 
 Computer Programming", for example), or a single volume of "collected 
 works"?  
 
 What about a single volume collecting works by different authors?  Of 
 course you can extend your conceptual model to deal with all of these 
 differences, but it then becomes very complex and probably very 
 abstract.
 
 What, then is the correct model for a book?  If you choose a simple 
 and elegant one, it is likely to only deal with a certain class of 
 applications (e.g. just the bibliographic system or just the library 
 system).  If you choose a complex one, you might be able to deal with 
 multiple applications, but you increase the difficulty of 
 implementing each one.  And you will still never be certain that your 
 complex model will be able to deal with every future eventuality. 
 
 The "right" answer will therefore depend on what you expect to do 
 with the system, both now and in the foreseeable future.
 
 Without getting too philosophical here, cultural and linguistic 
 factors also come into play when creating conceptual models (read up 
 on Weltanschauung [3] and Sapir/Whorf [4], for example).  You will 
 realise this if you have ever tried to gain agreement on models 
 across a multi-national company, for example.
 
 Kent puts it all rather well on page 19:
 
 "...we are not modelling reality, but the way information about
     reality is processed, by people."
 
 This is a hard problem and one that is not going to get simpler.
 
 If you're a developer, I hope you can see that it is never that 
 obvious what your "resources" should be (for REST) or what operations 
 you need to perform on them.  Whether you need to concentrate on the 
 nouns or the verbs will not always be clear.  And what is "right" for 
 one application may be entirely wrong for another.
 
 In the past few years, I sense that conceptual modelling has become 
 rather unfashionable.  I find that developers tend to just throw 
 together a few Java classes (without much thought) and then assume 
 some magical O/R tool will create an appropriate database for them.
 
 Many years ago, as a solution architect, I always used to resist this 
 and insisted on defining a proper conceptual database schema up 
 front.  
 
 Sadly, I found generally that developers were poorly skilled at 
 defining such models, never having been taught the discipline.
 
 If the current debate on SOA/REST raises an awareness of the 
 importance (and difficulties!) of conceptual modelling and improves 
 the general level of such skills in the industry, then that at least 
 would be a "good thing" in my view.
 
 Regards,
 
 -Mike Glendinning.
 
 [1] http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-
 nouns.html
 [2] http://www.amazon.co.uk/Data-Reality-William-Kent/dp/1585009709
 [3] http://en.wikipedia.org/wiki/World_view
 [4] http://en.wikipedia.org/wiki/Sapir%E2%80%93Whorf_hypothesis
 
 
     
                       

       
---------------------------------
Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, 
photos & more. 

Reply via email to