Am 29.11.2007 um 19:39 schrieb Reed Hedges:

> Component does imply that it could be provided by a plugin module, and
> is dynamic, both of which are attributes of MetaObjects.
I'm still not convinced that "Component" is a good replacement term.

When I hear "Component" I usually think of something like EJB  
components, which can be quite heavyweight beasts, in contrast to the  
lightweight MetaObjects of VOS. A component in this sense is a  
deployment unit of self-contained functionality, with optional  
dependencies on other such componentes and possibly container  
facilities (database backend, naming, etc.). Also they are not really  
dynamic - you throw some of them toghether at construction time to  
build an application, possibly writing some glue code for this  
purpose, and never change their configuration/dependecies afterwards.  
Hot-deployment is a slightly different matter, but usually only works  
for truly self-contained components without external dependencies.

I am aware of a different notion of "component", which is the  
Microsoft way in its COM/.NET systems. A component here is basically  
just a class adhering to some API and type standards, including  
factories that construct them. This is certainly more lightweight,  
but even less dynamic than EJB, since you write code that uses  
factories to create components. Any dynamics is maybe in the ability  
to replace one COM DLL with a newer version, but beware of DLL hell...

For dynamic things that can change at runtime, I usually thing of SOA  
rather than components. This usually means Web Services, though it  
does not have to be; the OSGi platform with its "bundles" or  
"modules" is also clearly SOA, and actually is the only one I would  
call "dynamic component system".

MetaObjects are different in this sense as they always contibute  
individual functionality to a common vobject. They are not even self- 
contained, as they usually depend on the linking facility of the core  
Vobject type. While they somewhat resemble COM components in  
granularity, they are much more dynamic in that they can be added at  
runtime. All in all, I think they deserve their own name, and  
"Component" just isn't it.

Karsten Otto (kao)

vos-d mailing list

Reply via email to