tuscany-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Gentsch ...@e-tge.de>
Subject Re: Porting Tuscany C++ to C++11 and some code cleanup
Date Mon, 07 Jan 2013 21:28:30 GMT

Hello JS,

now, I did some more reading etc and believe now that I mostly
understand what's going on :-)

The main missing pieces were these (correct? Possibly my terminology is
a bit fuzzy :-):
Q: When are SDOs used (in SCA M3) and when not?
A: If an interface of a service uses complex types as in/out params or
return value, otherwise simple types (like int, bool, string) are used.
Complex types (i.e. class instances) an XSD are passed in/out as SDO

Q: Is there some kind of request routing?
A: Local calls are resolved during OS-loader-time. One component calling
another is written as regular C++ code which results in compiled code as
unresolved reference that must be satisfied during runtime by the target
component which in turn must be loaded as shared library

Q: What is the purpose of composite files with pure C++ modules?
A: If a composite consists only of local components all calls are
resolved by the OS loader. In that case basically the composite
definition file mainly states which interfaces are in which shared lib
and in which order are the libs to be loaded.

Q: How are remote request handled?
A: Remote interfaces are described using WSDL, which must be processed
using the tool scagen to generate a "ServiceWrapper" and a
"ServiceProxy" that act as client (proxy) and server (wrapper) stubs.

However, some things are still unclear:
Q: If there is nothing like request routing, how does the "wiring" work
if the calls are actually hardcoded?

Besides of these questions a few non-technical ones:
Q: The trunk code stream looks to me like a complete re-write. With even
the component interfaces changing and nobody complaining I guess that
there is nobody actually really using Tuscany SCA C++?
Q: Besides of people using it, is there anybody besides you working on
Q: To which extent are both the M3 and trunk versions "stable"? M3
probably in the sense that nobody works on it anymore but is it mostly
Q: What about interoperability with Tuscany Java? I suppose both M3 and
trunk are OK as long as the binding is the same (and on the wire it is
XML or whatever anyway). Which common binding types exist?

Generally I have to admit that I liked the old implementation more,
though this maybe caused by the new language features in trunk I'm not
familiar with yet.

Q: With the new value/list types, if there is no relation with XSD
anymore, can you also query information about object types, e.g. which
properties a class shall have? This is probably not needed in the SCA
code, but maybe in custom extensions ...
Also, type enforcement is not necessarily a disadvantage (admittedly
slower though)

Many thx again + regards,

On Wed, 2013-01-02 at 23:49 -0800, Jean-Sebastien Delfino wrote:
> On Sat, Dec 29, 2012 at 6:20 PM, Jean-Sebastien Delfino
> <jsdelfino@apache.org> wrote:
>         Hi all,
>         I had a few more offline Q&A exchanges with Thomas, and
>         thought it'd be useful to share a summary here:
>         Q: In the C++ trunk, is DataObject now replaced by
>         tuscany::value and tuscany::list?
>         A: Yes
> BTW I just committed a number of changes I made over the holidays,
> including some improvements to tuscany::value and tuscany::list, in
> particular to work with lists, nested lists and trees of key/value
> pairs (aka associations) as well as some minor improvements to handle
> comparisons of floating point number values.
> - Jean-Sebastien 

View raw message