Re: [vos-d] s/MetaObject/Component

2007-12-03 Thread Karsten Otto
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.

Regards,
Karsten Otto (kao)

___
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] s/MetaObject/Component

2007-12-03 Thread reed
Posted at: http://interreality.org/phorum/read.php?2,118,129#msg-129
reed wrote:

KAO Wrote:
 runtime. All in all, I think they deserve their
 own name, and  
 Component just isn't it.

Maybe we could go the way of VObjects and call them VComponents, though that is 
a bit cumbersome-- they're all under the VOS namespace anyway.  Module might 
work but that's often used for higher level application parts too.  (And as a 
synonym for plugin).

___
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] s/MetaObject/Component

2007-11-29 Thread Peter Amstutz
On Thu, Nov 29, 2007 at 01:33:22PM +0100, Karsten Otto wrote:

  Also metaobject is
  an existing term of art in the programming language community  
  having to
  do with defining and manipulating the semantics of how programming
  language objects are invoked, and while this is something that will
  exist in VOS, the current MetaObject class isn't it.
 
 Ok, I heared that term before, but am not quite sure what it means an  
 certainly don't use it in day-to-day programming (maybe I'm just old- 
 fashioned).

http://c2.com/cgi/wiki?MetaObjectProtocol

It's not something people use in day-to-day programming (unless your job 
involves Common Lisp or Smalltalk) but it is an entrenched term in the 
object-oriented community, so I prefer to avoid the confusion.

 I understand your desire to avoid a clash of terms, but I don't think  
 Component is a good replacement; in fact it may make things worse!   
 If you absolutely have to rename it, I'd rather see one of the other  
 fuzzy terms like Facet, Aspect, ...

Well, Aspect implies (to me) aspect-oriented programming.  Facet is 
a possibility, although I've mainly encountered that in the capability 
security community where it has a little bit different connotation (as a 
possibly-restricted view or handle that mediates access to some 
underlying object).

The most common use of term component is probably in the context of 
COM, XPCOM, KParts and so forth type of systems where it simply implies 
loosely-coupled objects, with separatation of interface and 
implementation and often dynamicly loadable and language-neutral.  The 
plan is for S5 VOS vobject MetaObjects to do all those things, hence 
changing the name to component.

On a side note, I have been meaning to sit down and do a writeup on s5 
development progress, which will hopefully clarify things a bit.  While 
for several months I was working part time to be able to devote time to 
VOS, I am presently working full time again for financial reasons, so 
VOS development is squeezed -- even writing email.

-- 
[   Peter Amstutz  ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]



signature.asc
Description: Digital signature
___
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] s/MetaObject/Component

2007-11-29 Thread Reed Hedges

Component is generic, and also recalls COM etc.

How about:

Part
Facet
Role
Type
Fragment
Trait

What exactly *is* a metaobject?  It's a constituent Vobject that's part of a
real Vobject, and which implements a facet or part of that Vobject, probably
corresponding to a type.  It implements part of the Vobject's interface. It
provides an interface to the programmer (e.g. in C++ or whatever) for that 
facet or part or type.  It handles a set or group of messages within that 
Vobject. 

I kind of like Part. Could even be inside Vobject's namespace I guess
(Vobject::Part).  I don't know how much this might have changed in s5 but
generally a programmer only needs to know about MetaObjects when he is
implementing one, if you're just using VOS you deal either with objects as
generic Vobjects or with their type interface classes (e.g. Property, Object3D,
etc.)


Reed



___
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] s/MetaObject/Component

2007-11-29 Thread Peter Amstutz
Part is even more generic/vague than component, I think.  Subparts 
might be slightly better.  Another way to look at it, which would be 
clearest:

vobject-getParts();
vobject-getSubparts();
vobject-getFacets();
vobject-getRoles();
vobject-getTypes(); // very bad, the term type is already overloaded
vobject-getFragments();
vobject-getTraits();
vobject-getComponents();

Fragment was another term I was mulling over, although that implies to 
me something that is broken or incomplete.

I still prefer component, since to me implies a nice, well defined 
piece that is designed to plug into a bigger system.

I should also point out that if we were to interface COM with VOS, it 
would most likely be in the form of mapping VOS (MetaObject) APIs to COM 
APIs...  The similarities are more than superficial (which makes sense, 
since some of the goals of VOS overlap with the goals of COM/DCOM).

On Thu, Nov 29, 2007 at 10:37:37AM -0500, Reed Hedges wrote:
 
 Component is generic, and also recalls COM etc.
 
 How about:
 
 Part
 Facet
 Role
 Type
 Fragment
 Trait
 
 What exactly *is* a metaobject?  It's a constituent Vobject that's part of a
 real Vobject, and which implements a facet or part of that Vobject, probably
 corresponding to a type.  It implements part of the Vobject's interface. It
 provides an interface to the programmer (e.g. in C++ or whatever) for that 
 facet or part or type.  It handles a set or group of messages within that 
 Vobject. 
 
 I kind of like Part. Could even be inside Vobject's namespace I guess
 (Vobject::Part).  I don't know how much this might have changed in s5 but
 generally a programmer only needs to know about MetaObjects when he is
 implementing one, if you're just using VOS you deal either with objects as
 generic Vobjects or with their type interface classes (e.g. Property, 
 Object3D,
 etc.)
 
 
 Reed
 
 
 
 ___
 vos-d mailing list
 vos-d@interreality.org
 http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

-- 
[   Peter Amstutz  ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]



signature.asc
Description: Digital signature
___
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] s/MetaObject/Component

2007-11-29 Thread Lalo Martins
Also spracht Peter Amstutz (Thu, 29 Nov 2007 09:53:17 -0500):
 The most common use of term component is probably in the context of
 COM, XPCOM, KParts and so forth type of systems where it simply implies
 loosely-coupled objects, with separatation of interface and
 implementation and often dynamicly loadable and language-neutral.  The
 plan is for S5 VOS vobject MetaObjects to do all those things, hence
 changing the name to component.

Also Zope3 (formerly called the Zope Component Architecture).

best,
   Lalo Martins
-- 
  So many of our dreams at first seem impossible,
   then they seem improbable, and then, when we
   summon the will, they soon become inevitable.
   -
  http://lalomartins.info/
GNU: never give up freedom  http://www.gnu.org/


___
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d