| Newsgroups |
gmane.science.robotics.orocos.user |
| Message-ID |
<Pine.LNX.4.44.0212101955060.10723-100000@pc067.mech.kuleuven.ac.be> |
On Tue, 10 Dec 2002 [email protected] wrote:
> I haven't well understood the difference between modules and components
> Can you explain me the differences with an exsample?
>
Module:
You write a C++ program, and you call the kinematics functions for
forward and inverse kinematics of your robot; this functionality is
reached by direct method calls on object, whose code is compiled in a
module, and linked into your executable.
Component:
I make all possible kinematics functionality available in a component,
by taking the same code, and making it accessible through, for example,
an http interface which your program can use. In addition to the pure
functionality (which is the same as in the module case above), this
component has a couple of extra features:
- it reacts to requests from clients such as your application, when they
are looking for servers that can offer the requested information.
This is done without the client and server having to know each other.
- you don't have to care about what language the functionality is
written in.
- my component has an identity, and a persistent state, so that it
remembers the state of your application (as far as its functionality
is concerned), and your application can do subsequent requests to its
services without having to communicate the whole state. The component
can even remember your application after shutdown of when the
interconnection is broken for some time.
(Mind you: there are also stateless and identity-less components
possible!)
- your application doesn't have to care about where on the net my
service is (unless time delayas are important).
- you can use my component without knowing its API exactly.
- etc.
As you see, there are many different levels of components possible, but
they all share the fact that they are independent pieces of software,
running in their own threads/processes/computers...
Microsft (re)invented the whole concept and calls it .Net :-)
Herman
--
K.U.Leuven, Mechanical Engineering, Robotics Research Group
<http://people.mech.kuleuven.ac.be/~bruyninc> Tel: +32 16 322480