Eric Newcomer wrote:
> One reason this topic comes up is that objects are not the best way to 
> model the world in software.  Services are better, and simpler.  It is 
> too difficult to try to think of all functions the world needs 
> automating in terms of things with operations.  GetCustomerInfo is a 
> valid function but to implement it you shouldn't have to model a 
> Customer object.

I think that there is hair splitting going on here.  Objects come in many 
different forms.  The binding of data values to program storage creates 
"objects".  If you think that you need to strongly separate objects that have 
code and objects that are only data, I think you are being short sighted.

The whole point of OO programing is to associate the types of "programatic" 
actions that certain data uses, with the data.  That doesn't limit what you can 
do with the data, that only provides a convenience for programmers and system 
review so that one doesn't have to search 100000000000 lines of code to find 
which functions can be used on a particular type of data item.

Good OO design says that changes to an objects state happen closer to the 
object 
rather than at a distance.  This concept is what often compels remote system 
designers to make remote calls to objects without consideration of the latency 
and frequency which when put together create overhead that can be unacceptable.

What one has to arrive at is the concept of batching, or grouping of operations 
into a form that enhances the system.  One might have 100 Orders, and need to 
cancel them all.  Rather than making 100 remote cancel() calls, you should 
provide a service which can take a collection of orders and cancel them closer 
to the objects where effeciency is possible, and even local transactional 
behavior can be used which might be cheaper (just use the databases facilities) 
in the long run.

Objects are not the impediment to good system design.  Complex systems create 
complex scenarios, and need simplifying technologies.  Objects can simplify 
your 
system when used correctly and effectively.

The software industry is continuing to employ undereducated programmers as 
system architects who are creating horrible systems that just do not perform. 
It's possible to design bad systems using many types of technologies.  It easy 
to create coupling between objects and bad system designs with any programming 
environment.

I'd like to hear more about specific systems and architectures which don't work 
with objects.  Your conviction has captured my couriosity.

Gregg Wonderly




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/service-orientated-architecture/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/service-orientated-architecture/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to