|
Boost : |
From: Jeremy Pack (Jeremy.Pack_at_[hidden])
Date: 2006-08-30 15:14:54
>
> Isnt this quite close to the description of a database?
>
> regards
> Andy Little
>
>
>It specifically reminds me of tuple spaces
>
>Regards,
>Michael
It could be used to implement either of these. It is especially similar
to tuple spaces.
However, it is meant for situations where a database or tuple spaces are
not precisely what is needed. If a database or tuple spaces is a good
fit for a project, there are more appropriate solutions than the code
that I am working on.
The reason I, personally, have developed this is for use in high speed
numerical software (which is why I want your opinions on its general
usefulness). I had the following design considerations:
1- I don't want to use any sort of concurrency mechanism UNLESS I decide
that the data in question should be accessible by multiple threads. That
flexibility is built in.
2- I wanted each consumer to be able to, if needed, have direct access
to the data in the repository. I did not want the software to be
required to do a lookup every time. (though it can)
3- I wanted to be able to implement the Observer pattern (callbacks when
data changes, etc.).
4- I wanted to minimize and easily track dependencies between classes.
The software I am working on that uses this libraries attempts to make
it so that most of the dependencies between classes are merely the
shared data.
As I alluded to in my previous post, a lot of the design considerations
were based on using it to facilitate the shared library class I have
been designing.
What I'm especially interested in are the following:
1- What major pitfalls do any of you see?
2- Am I replicating functionality that can easily be found elsewhere
(perhaps there is an implementation of tuple spaces that provides all of
the same functionality)?
3- What features would be desirable?
If there is enough interest, I will put up a web page about the project
and provide better details (and later interfaces and source code) about
the work. I just want to make sure that this is something that people
would be interested in using.
Thanks for the input thus far.
Jeremy Pack
"Michael Walter" <michael.walter_at_[hidden]> wrote in message
news:<877e9a170608290147x56dd5eebr8545d1259d628c1d_at_[hidden]>...
> It specifically reminds me of tuple spaces.
>
> Regards,
> Michael
>
> On 8/29/06, Andy Little <andy_at_[hidden]> wrote:
> >
> > "Jeremy Pack" <Jeremy.Pack_at_[hidden]> wrote in message
> > news:468EB9093DC44F4D9CBADE5C87BE5D1915FD8C_at_cobra.usurf.usu.edu...
> >
> > > The team_members are not dependent on the project_leader - they
> > > are depending on the information in the repository. The situation
> > > could be changed so that a certain team_member, or a higher level
> > > manager placed the information in the repository, and the
> > > team_member class would not need to be modified, as long as the
> > > meeting information structure was the same.
> > >
> > > As I've designed it so far, the library has the following
> > > features:
> > >
> > > -Data in the repository is indexed by strings
> > >
> > > -Type-safe (type-safety across shared libraries may not work on
> > > all platforms, because of usage of RTTI. If I work to have this
> > > library reviewed for boost, this will need to be discussed)
> > >
> > > -Thread-safety can be built into a variable in the repository
> > > (using boost.threads, variables can make automatic use of mutexes
> > > and such)
> > >
> > > -Functions or functors can be used to verify that each data item
> > > in the repository stays in a consistent state (for instance, the
> > > repository can check that a number does not leave a certain
> > > range).
> > >
> > > -A function or list of functions can be called when a value is
> > > updated - this can be used to implement the Observer pattern. Note
> > > that this could be used to provide for distributed repositories.
> >
> > Isnt this quite close to the description of a database?
> >
> > regards
> > Any Little
> >
> >
> > _______________________________________________
> > Unsubscribe & other changes:
> > http://lists.boost.org/mailman/listinfo.cgi/boost
> >
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk