Eclipse SOA Tools Project support for SCA/Java dev with Tuscany

2007-01-29 Thread Oisin Hurley

Hi all,
Over at Eclipse STP we've made some progress on supporting SCA/Java  
service
development using Tuscany [0].  In the flash movie at [1] (14MB) you  
will see how

to develop and SCA Java service and client using the RMI binding.

This is a call for feedback on this initial tool support to help us  
deliver something
that is useful for SCA developers in the Eclipse Europa release, due  
end of June.
We would appreciate your thoughts and comments sent to stp- 
[EMAIL PROTECTED]


best regards
   Oisin Hurley, STP PMC Lead

[0] http://wiki.eclipse.org/index.php/SCA_Java_support_in_STP
[1] http://www.eclipse.org/stp/sc/demos/sca_rmi_movie.swf

Re: Eclipse SOA Tools Project support for SCA/Java dev with Tuscany

2007-01-29 Thread Oisin Hurley

Any plans to do anything to support SDO 2 in eclipse. I wrote a simple
plugin for generating SDOs from XSDs, wondering where best to donate
it to ?
I was planning on doing a couple more, but no-one took up my previous
comments on this matter at Tuscany, so can only assume they are not of
interest to tuscany (I hope I'm wrong btw)


I might be a good plan to get in touch with Ed Merks at the Eclipse
Modeling project, where they host things like EMF, SDO and many other
pieces of code.  They have a series of mailing lists and newsgroups [1]
and Ed is very responsive to newsgroup postings.

 best regards
   --oh

[0] http://www.eclipse.org/modeling/emf/?project=sdo
[1] http://www.eclipse.org/modeling/emf/newsgroup-mailing-list.php

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [VOTE] Tuscany C++ sub-project name

2007-01-24 Thread Oisin Hurley


On 23 Jan 2007, at 10:55, Pete Robbins wrote:

I was wondering  whether we should package a Tuscany C++ kernel,  
which is
the core runtime and cpp language extension, and have a separate  
package for

scripting extensions ??


+1

 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [VOTE] Tuscany C++ sub-project name

2007-01-23 Thread Oisin Hurley

My +1 is for Tuscany Native


I wonder what all the Tuscany natives in Italy would think ;)


[] keep the old name (Tuscany C++)


This would get my vote.

 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Wiki or website for doc?

2006-10-11 Thread Oisin Hurley
I think the wiki is the best place for development of this type of  
documentation.  It is so easy to update that I hope it will  
invite others to participate.  I also like Venkat's idea to  
snapshot content developed on the wiki to include in a milestone  
distribution.


Just a point on this one - wiki is a good place to do stuff, easy to  
update, etc,
but it's important to remember that it does not lend itself naturally  
to the
provision of docs that follow the 'usual' table-of-contents style  
approach we
see in tech docs -- instead it is more bazaar than cathedral. So - if  
you have
a vision of producing 'natural' PDF docs for offline use, then one  
needs must
layer some behaviour on the wiki editing, like keeping a toc up to  
date etc.


 cheers
  --oh


+353 1 637 2639
http://blogs.iona.com/ohurley




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Transcript of IRC chat on C++ M2 release

2006-10-04 Thread Oisin Hurley

Hi guys,
Sorry I couldn't make the IRC - had to run off to a night class.

18:36:06ajborleywhat about MacOSX? there was a patch for that,  
but I don't

know what the status is
18:36:17ajborleyI also don't have access to any mac machines
18:36:19robbinspgI'll do Mac OSX
18:36:32robbinspgso long as someone buys me a new PowerBook
18:36:47jsdelfinofor MacOSX the first question is: is Axis2C  
shipping bins

on MacOSX?


I can get a MacOSX build done for 0.94, but as you can see at [0], the
priority on the patch is low. Looking at the current set of Jirae that
are going in there it seems they have more pressing concerns.

This brings up a question from me wot is ignorant of Apache devoirs
in term of infrastructure support. Since I'm mostly doing Eclipse
work, I'm used to having heaps of donated build machines that will
do nightlys etc. I guess that this is not the case at Apache and
that binary builds are done by project committers - or the most
excellent release person :)

I will update the Axis patch to work with the current pre-0.94 base
and see will they take it (it's not a new feature imho).

If they don't, would it be a horrible gaffe to post an 'independent'
set of binaries and headers as a supplemental download on the
Tuscany site? I hope asking that question wasn't of itself a
horrible gaffe :)


18:36:50ajborley:) do we want RC1 on OSX? Could anyone volunteer?
18:37:12ajborleyGood point - I doubt it
18:37:22robbinspglet's get RC1 out and see if the resulting src  
release

can be built on Mac
18:37:36jsdelfinowe should ask oisin what he wants to do, since he
contributed that patch and tested it


Consider me volunteered for build and test - I would consider that
there is more important work to be done for RC1, so I'm not going
to be insistent on it's inclusion.

 cheers
  --oh

[0] https://issues.apache.org/jira/browse/AXIS2C-287

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Transcript of IRC chat on C++ M2 release

2006-10-04 Thread Oisin Hurley

That would be good - we decided near the end of the IRC chat to have a
dependency on Axis2C 0.93 as we weren't sure exactly when 0.94  
would be out
and we'd like our first RC by the end of this week. Saying that,  
Sebastien
put in a tiny code change which made Tuscany work with the latest  
Axis2C

trunk, so the 0.94 release will hopefully work with Tuscany M2.


Ok, well I notice their code freeze was lifted there today, so I'll
go see what I have to do to get a build together on 0.94. The 0.93
build did have some unit test failures on MacOS, it will be interesting
to see if any of the current spate of updates has fixed these.

I have no idea - I'm not sure if the Tuscany site is the best place  
to host
an Axis2C MacOSX binary, but we could certainly point to one on  
another

(perhaps independent?) site. Another option is to point to/provide the
patches to enable OSXers to build Axis2C and then Tuscany.


If I get a build and test clean, I will do some volunteering to
do the builds and tests for the Axis2C guys in the interim so
maybe they will host the bin build.

Cheers Oisin, that's great - I guess we won't have the time to get  
it into

RC1, but we may be able to sort it out for a later RC.


Quick clarification Andy - will you be shifting axis version
before Milestone? Or saving it for after?

 cheers
  --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Transcript of IRC chat on C++ M2 release

2006-10-04 Thread Oisin Hurley

Quick clarification Andy - will you be shifting axis version
before Milestone? Or saving it for after?



It depends when 0.94 comes out I guess -  if it's soon then  
shifting is
probably a good idea (especially with some of the fixes that are  
planned for
0.94), but I don't think we should delay M2 specifically for 0.94.  
Does that

sound OK?


Sounds fair enough to me, thanks!

 cheers
  --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [Axis2][ANN]Apache Axis2/c 0.94 Released.

2006-10-04 Thread Oisin Hurley
I guess this answers some of our questions about which level of  
Axis2C to use :) We should probably build our release with Axis2c  
0.94 now, I tested with their trunk 2 days ago and it worked with a  
minor change in our code, will test again today with the official  
release on Linux.


They are not publishing a Mac OS-X binary distro so I guess if we  
want a Mac OS X story we're going to have to document the steps to  
build from source with Oisin's patches.


Building Axis now on the shiny mac - it looks like at least *some* of
my patch is in there already :) Will let you know how it works out.

 cheers
  --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Request for Project Ideas for M.Sc Students

2006-09-21 Thread Oisin Hurley
You know that you've been looking at waaay too much C code when you  
read:


I have a .pdf document that describes the web services course at  
Oxford


and think to yourself: 'r' isn't a hexadecimal number :)

 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Mobile

2006-09-19 Thread Oisin Hurley


On 18 Sep 2006, at 21:19, Hamdi, Louenas wrote:


Hello,
My name is louenas Hamdi and I work for SAP Research. My interest is
mainly in the mobile platforms. while I was reading the Tuscany white
paper I thought that this could be good for Mobile clients as well.
Do you think that Tuscany specification could suite the mobile
environment for building small services running on a cell-phone or a
PDA? right now the best platform I know for doing that is OSGi but  
it is

still very Java oriented.



Hi Louenas,
For local-hosted services then I think that there is certainly
a potential, especially with the OSGi effort going on. As Jeremy
adds, though, there is an issue with Java5 annotations.

For services that are to be access remotely, i.e. the phone-to-phone
peer networking kind of thing that Nokia is currently pushing, then
we will need to look at providing a transport ('binding' in SCA terms)
that has built-in support for occasional connection - so, durable
storage, reliability etc etc.

For *clients* to tuscany runtimes then of course there is lots
of scope pretty much immediately - one doesn't even need to have
java 5 annotations depending on the binding that you choose :)

 regards
   Oisin



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[jira] Updated: (TUSCANY-681) Port of Tuscany C++ to Mac OS X, powerpc arch

2006-09-14 Thread Oisin Hurley (JIRA)
 [ http://issues.apache.org/jira/browse/TUSCANY-681?page=all ]

Oisin Hurley updated TUSCANY-681:
-

Attachment: macos-patch

Patch for MacOS X 10.4.7 port of  C++ SDO and SCA

SDO tests are all clear. 
Some minor wrinkles in the makedist which I believe are
across the board, not specific to this platform.

 Port of Tuscany C++ to Mac OS X, powerpc arch
 -

 Key: TUSCANY-681
 URL: http://issues.apache.org/jira/browse/TUSCANY-681
 Project: Tuscany
  Issue Type: New Feature
  Components: C++ Build, C++ SCA, C++ SDO
 Environment: MacOS X 10.4.7 PowerPC
Reporter: Oisin Hurley
Priority: Minor
 Attachments: macos-patch


 Plain old porting job - prerequisite is a port of Axis2C for axiom bits and 
 hosting.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Mac OS X port, was [C++] Build instructions on Web site

2006-09-14 Thread Oisin Hurley


On 7 Sep 2006, at 04:48, Jean-Sebastien Delfino wrote:

Did you get a chance to look into the MacOS X port? I have an iBook  
with 10.4.7 ppc Mac OS X here and was wondering if you had a patch  
to the Makefiles that I could try.


Patch is up: http://issues.apache.org/jira/browse/TUSCANY-681

Apply in cpp directory. Let me know of blunders :)

cheers
 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Mac OS X port, was [C++] Build instructions on Web site

2006-09-11 Thread Oisin Hurley
Did you get a chance to look into the MacOS X port? I have an  
iBook with 10.4.7 ppc Mac OS X here and was wondering if you had a  
patch to the Makefiles that I could try.


Quick update on this, I have the Axis2C mostly built, SDO part
of the port was straightforward, currently working thru some
link issues with sca, I've stuck a comment on the jira:

https://issues.apache.org/jira/browse/TUSCANY-681

Biggest speedbump so far has been re-learning Autoconf :D

 cheers
   --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[jira] Commented: (TUSCANY-681) Port of Tuscany C++ to Mac OS X, powerpc arch

2006-09-08 Thread Oisin Hurley (JIRA)
[ 
http://issues.apache.org/jira/browse/TUSCANY-681?page=comments#action_12433503 
] 

Oisin Hurley commented on TUSCANY-681:
--

Just an update:
  -- necessary libraries from axis2c ported
  -- sdo part ported 
  -- sca part suffering from some multiple symbols at link time

Looking into the link issues at the moment and constructing a patch 
for submission to Axis2 C.

Ye errormsg:
-
g++ -dynamiclib -single_module ${wl}-flat_namespace ${wl}-undefined 
${wl}suppress -o .libs/libtuscany_sca_cpp.0.0.0.dylib  .libs/CPPExtension.o 
.libs/CPPImplementationExtension.o .libs/CPPImplementation.o 
.libs/CPPInterfaceExtension.o .libs/CPPInterface.o .libs/CPPServiceProxy.o 
.libs/CPPReferenceBinding.o .libs/CPPServiceWrapper.o .libs/CPPServiceBinding.o 
 -L/Users/oisin/Projects/SCA/Tuscany/tuscany/cpp/sdo/deploy/lib 
/Users/oisin/Projects/SCA/Tuscany/tuscany/cpp/sdo/deploy/lib/libtuscany_sdo.dylib
 -L/Users/oisin/Projects/SCA/Tuscany/tuscany/cpp/sca/runtime/core/src 
/Users/oisin/Projects/SCA/Tuscany/tuscany/cpp/sca/runtime/core/src/.libs/libtuscany_sca.dylib
  -install_name  
/Users/oisin/Projects/SCA/Tuscany/tuscany/cpp/sca/deploy/extensions/cpp/libtuscany_sca_cpp.0.dylib
 -Wl,-compatibility_version -Wl,1 -Wl,-current_version -Wl,1.0
ld: multiple definitions of symbol 
__ZN7tuscany3sca3cpp17CPPImplementation19initializeComponentEPNS0_5model9ComponentE
.libs/CPPImplementation.o definition of 
__ZN7tuscany3sca3cpp17CPPImplementation19initializeComponentEPNS0_5model9ComponentE
 in section (__TEXT,__text)
/Users/oisin/Projects/SCA/Tuscany/tuscany/cpp/sca/runtime/core/src/.libs/libtuscany_sca.dylib(single
 module) definition of 
__ZN7tuscany3sca3cpp17CPPImplementation19initializeComponentEPNS0_5model9ComponentE
ld: multiple definitions of symbol 
__ZN7tuscany3sca3cpp17CPPImplementation19initializeComponentEPNS0_5model9ComponentE.eh

 Port of Tuscany C++ to Mac OS X, powerpc arch
 -

 Key: TUSCANY-681
 URL: http://issues.apache.org/jira/browse/TUSCANY-681
 Project: Tuscany
  Issue Type: New Feature
  Components: C++ Build, C++ SCA, C++ SDO
 Environment: MacOS X 10.4.7 PowerPC
Reporter: Oisin Hurley
Priority: Minor

 Plain old porting job - prerequisite is a port of Axis2C for axiom bits and 
 hosting.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [C++] Build instructions on Web site

2006-08-31 Thread Oisin Hurley
Great! I don't think that anybody has tried MacOS X yet. It will be  
really great if you can port the Linux build... and then we can all  
get iBooks :)


I've to get axis2c ported first :)  Would it be
good practice to put a JIRA in for this so that
it's visible?

 cheers
  --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[jira] Created: (TUSCANY-681) Port of Tuscany C++ to Mac OS X, powerpc arch

2006-08-31 Thread Oisin Hurley (JIRA)
Port of Tuscany C++ to Mac OS X, powerpc arch
-

 Key: TUSCANY-681
 URL: http://issues.apache.org/jira/browse/TUSCANY-681
 Project: Tuscany
  Issue Type: New Feature
  Components: C++ Build, C++ SCA, C++ SDO
 Environment: MacOS X 10.4.7 PowerPC
Reporter: Oisin Hurley
Priority: Minor


Plain old porting job - prerequisite is a port of Axis2C for axiom bits and 
hosting.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: REST bindings for Tuscany SCA runtime

2006-08-31 Thread Oisin Hurley
I am not sure I understand the issue with create/delete (except if  
PUT and DEL are disabled). Posting/putting to a URL that doesn't  
exist yet to create that resource can be troubling. Is that the  
issue? Are you looking for some kind of factory service pattern to  
create resources?


Or am I completely mis-understanding the issue you're describing  
here? :)


Apologies for not making the context clearer - however, you've got the
point:  there needs to be either a resource factory, or a generic  
resource

holder to process create/delete of resources. I think I was attempting
to say that a first cut would be ok to support just the GET/POST (as the
most pressing scenarios) and then the PUT/DEL and factory approach could
follow as a feature improvement.

I will put up a wiki summary on this thread.

 cheers
  --oh


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [C++] Requirements for a pluggable C++ Tuscany implementation

2006-08-29 Thread Oisin Hurley

Simon - apologies I've been away from this for the last week...

[deletia]

...and this is why :)  There are number of responsibilities of an
extension - which you accurately describe - and there are a number
of responsibilities of a plugin, related to configuration and  
lifecycle

and I think it would be a Good Thing to keep them as separate
development
efforts. What do you think?


Do you mean that a plugin may have responsibilities that are a sub- 
set or

super-set of those of a particular extension?


Actually I see that the plugins responsibilities are a disjoint set -
meaning that the plugins are unconscious of the value of their content
and are used only as a way to bang a bunch of libraries together in
a predictable manner and correctly initialize/deinitialize them.

We could probably have the same conversation re. deploying  
components and
composites into the C++ SCA infrastructure as opposed to deploying  
parts of

the C++ SCA infrastructure.


+1

Maybe we need to be a bit more explicit about what we anticipate  
being in a

plugin. For examle,

0..n Component type container implementations
0..n Binding implementations
0..n Host adapters
[0..n Components
0..n Composite(s) should these be included as well? Seems unlikely  
that you
want to deply at the same time but you will want to deploy at some  
time.]


So there's two roads - one where one must be explicit about the content
of the plugin in terms of architectural artifacts, this is the manifest
style approach, and the other, where the plugin initialization code does
the necessary registrations of architectural artifacts. These are not
necessarily incompatible approaches either.

Can we use exsiting technology for some of this, for example, there  
has been
much discussion of OSGi on the java list, is OSGi wider that just  
Java now?


AFAIK OSGi is still Java only and a Google search didn't turn up much  
that

was useful. In terms of existing technology, I'm not familiar with any
technologies along this line that are open. That being said, a C++  
version

of OSGi would be a beautiful thing :)

My gut feeling is that plugin/extension should be decoupled, but the  
only
strong point I can see for it in the current architecture is the fact  
that
databindings are not explicit as an extension - there is scope for  
say an

interface.mumble that has databindings of say XMLBeans or JiBX. If the
databinding can be an extension in its own right, then maybe the  
simplifying
assumption of plugin == extension may be the way to go. From the  
point of
view of deployment, there may be a greater need for a non-extension  
plugin

to package application code to be 'deployed'. Maybe we should have that
conversation about deployment now?

 cheers
  --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [C++] Build instructions on Web site

2006-08-29 Thread Oisin Hurley


On 28 Aug 2006, at 22:56, Jean-Sebastien Delfino wrote:

Would it make sense to publish this: http://www.mail-archive.com/ 
tuscany-dev%40ws.apache.org/msg05276.html
and this: http://www.mail-archive.com/tuscany-dev%40ws.apache.org/ 
msg05379.html

on a How to build page on the Tuscany C++ Web site?

Thoughts?


Please do :)

BTW - has anyone done a port to MacOS X 10.4.7 ppc? If not I will get
a start on it - not vital for the roadmap, but it is my machine of
choice and I'll get nothing done if it doesn't work there ;)

 cheers
  --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: REST bindings for Tuscany SCA runtime

2006-08-24 Thread Oisin Hurley



What do you think about the following approach:
a) If you put no annotations in your code then you have to stick to  
the fixed pattern with fixed method names, and you write the side  
SCDL file that turns your code into a component and publishes the  
REST endpoint.


b) If you want more flexibility to map state changes to nicer  
method names then you use annotations as your were proposing  
earlier in this thread. The annotations also allow you to  
completely avoid writing SCDL and specify the details of the  
binding like the base URI for the resources...


Thoughts?


These sound like good approaches to me - the one thing
that I'm scratching my head about a bit is the create-resource
and delete-resource support. The read-resource and update-resource
ops are fine, because we have a resource (i.e. the thing that
has just been coded). What's implicit here, though, is that
there is always a fixed set of resources - the ones that you
have just 'deployed'. So the create/delete ops can never be
used because things are just set up that way.

BTW, this is probably ok and it does match nicely with the
accepted admin practice of disabling PUT and DEL in real
webservers (as observed previously in this thread).

I would be happy enough to leave off the create/delete support
for the immediate future :)

You have .put and .get in the client example, maybe the .post  
should be

something like

customers.post(uri, state-diff)


Ah! interesting, I never thought about that before, looks like  
there could be a pretty good fit with SDO with the following:


customers.post(uri, state-diff-in-an-SDO-change-summary-graph) ...

This would be an interesting usage of SDO change summaries IMO,  
obviously just as an option as you should be able to format your  
state diff in any format you want as long as it's understood by  
your application.


What do you think?


This sounds like a nifty fit for sure. But now I have to
go and read that SDO spec in more detail, because I know
too little about it :)

I like the general approach of going down the diff route
because if you do it right then you can undo/redo changes
to the data, which is neat feature, provided you are willing
to store all of the diffs in a timeline.

I'll go off and read that spec again. I just love reading
specs ;)

Are we close enough to condense a summary on the topic of
REST and SCA? This would be good white paper material BTW.

 cheers
  --oh


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [C++] Requirements for a pluggable C++ Tuscany implementation

2006-08-22 Thread Oisin Hurley

[deletia]
js-d says:

 I've been thinking about this and wondering what the architecture
 of the runtime will be with many different plugins? Are you guys
 envisioning one big process with different (maybe incompatible?)
 libraries loaded in it? or a more distributed architecture with
 multiple processes?
 I must admit I've been toying with the idea of having multiple
 processes handling the various component implementation types and
 binding types, then it would be quite easy to bring them up/down...
 What do you think?


[deletia]
pr says:
Not sure what the definition of incompatible is here. Is it, for  
instance,
having two separate extension plugins that both provide a  
binding.ws? I

think this is an interesting case and one we should try to support. Of
course there would need to be some config outside of the Assembly
specification to determine which one gets used. I see the jave folk
discussing this very issue.


It's probably the case that we can't define what 'incompatible' means  
upfront
except to say that bitter experience will provide :)  +1 on being  
able to
resolve a choice from a number of binding providers what all can  
support 'ws',
I think this is necessary right now, but I'm still a bit  
uncomfortable with
binding.ws as being too general (not trying to start a new thread  
here -

others are looking into this issue :)

[deletia]

 9. Plugins have versions, and dependencies on other plugins too.


 We may want to get there at some point, but I was not sure that we
 really needed this to start with... Would it make sense to stage
 this and start with a simple solution with no versions and no
 dependencies, and get into the whole versioning / dependency /
 coexistence of multiple versions etc. later?

Simple solution, followed by dependencies, followed by versioning
would work for me. We can learn from what OSGi does in terms of
its management of these things and maybe emulate it to some extent.

So: +1



Having tried to retro-fit versioning into many software products  
over my
many years I would say this is one to think about up front even if  
you don't
implement it. It is very easy to make it virtually impossible to  
this later

without majot restructure!


I'm comfortable with starting off using something like a {namespace,  
name,

version} triple as a unique identifier for a plugin - or even a {name,
version} pair with the proviso that the name is structure ala java  
package

names, eclipse plugin names etc.

We can start off with the basic resolution approaches of exact-match and
latest-match on the version part and then later on develop at-least- 
match

and range-match if they are really necessary.

I've seen lots of +1s on this thread, which is nice, and I've just found
out that I can edit the Tuscany wiki, so I'll summarize to there -- the
page will be http://wiki.apache.org/ws/Tuscany/TuscanyCpp/ 
PluggableCppRuntime

it'll be later today before I get to it.

 cheers
  --oh



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [C++] Requirements for a pluggable C++ Tuscany implementation

2006-08-22 Thread Oisin Hurley

Hi Simon,


Had a long weekend so just picking up this thread. Looks like a really
useful discussion and I too like the requirement driven approach. I  
have a
few to add/comment on. It seems that a plugin resolves to a  
component type
or binding, i.e. what the assembly model refers to as extensions,  
so that is

what I have in my mind.


IMHO you can package an extension as a plugin, but you can also package
an extension as 1 plugin, or you could package a number of extensions
in just 1 plugin. So I think there should be a level of decoupling
there...


6. There will need to be some kind of manager thingie to keep
track of plugins and their state at runtime.

Extensions should be able to constribute information to the in  
memory model,

for example, via annotations.

[deletia]

...and this is why :)  There are number of responsibilities of an
extension - which you accurately describe - and there are a number
of responsibilities of a plugin, related to configuration and lifecycle
and I think it would be a Good Thing to keep them as separate  
development

efforts. What do you think?


[deletia]
+1 for a simple lifecycle interface. What kind of parameters do  
you have

in mind?


Will also need some hosting abstraction to tie in with these lifetime
interfaces, for example, it might be useful for an extension to  
know when it
can observe caching semantics. Also has an impact on the (re) 
deployment
story, for example, we may want to deploy extensions without  
stopping the

server so we need to be able to do this and have the extension come up
cleany. These don't need to be at the top of the list.


+1

[deletia]
I would extend the extra requirement added by JSD to include all  
runtime

error, logging and audit requirements.


+1. On the subject of audit, to do successful auditing we need to have
access to the concept of an identity :) Has there been any discussion
about this already?

Oisin, good idea to put all this up on the wiki. I'll check there  
when you

have added you first tranche and add comments in.


Will email the list when it's in place.

 cheers
  --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: REST bindings for Tuscany SCA runtime

2006-08-22 Thread Oisin Hurley
REST is a very generic term, and I think it's more like a resource/ 
service
naming pattern (URL/URI). When we say REST bindings, what are we  
expecting

as the REST Service ?


The resource part is really important, but the small interface part is
important too, as are the expected behaviours of the interface: i.e.,
GET is idempotent, PUT will replace a resource, POST will perform a
partial update of the state of a resource.

IMHO the first place we could go is an XML over HTTP binding and some  
kind

of 'generic' processing method in the service (see [0] for an example
of what's RESTful with JAX-WS, which might prompt some ideas).

 cheers
 --oh

[0] http://java.sun.com/developer/technicalArticles/WebServices/restful/


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: REST bindings for Tuscany SCA runtime

2006-08-22 Thread Oisin Hurley

I think anything that is sent to/from a SCA REST binding needs to
either be Plain Old XML or JSON and not SOAP.  SOAP is generally what
makes most RESTifarians shudder :)


It's the encoding of the method in the XML body that is the
anathema :)

 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: REST bindings for Tuscany SCA runtime

2006-08-22 Thread Oisin Hurley

Apologies for addressing the emails in this thread out of order :)

I was on a similar track, thinking about implementing a REST  
binding for Tuscany C++. I agree with you that the REST pattern is  
about resources, so we need to go further than just sending XML  
service requests over HTTP, and understand what it means to work  
with resources in an SCA application.


I was thinking about starting with something very simple like this:

In an SCDL component reference:
reference name=customers
 interface.resource type=http://my.business.objects/#Customer/
/reference

and later in a composite reference:
reference name=customers
 binding.rest/
/reference

QName http://my.business.objects/#Customer; specifies an XSD  
complex type describing my Customer business object.
binding.rest loads my new REST binding extension that knows how  
to send Customer resource requests over HTTP.
interface.resource indicates a fixed interface pattern with the  
resource management / HTTP verbs.


In the client:
customers.get(http://my.customer.database.com/customers/1234;);  
returns an instance of the Customer XSD complex type
customers.put(http://my.customer.database.com/customers/1234;,  
customerDataObject) updates customer 1234 with a Customer instance.
customers.get(http://my.customer.database.com/customers/;) returns  
a list of URIs to the customers.


On the server, the CustomerResource component implements the  
Customer resource management verbs:

class CustomerResource {
 DataObject get(string uri);
 void post(string uri, DataObject customer);
 void put(string uri, DataObject customer);
 void delete(string uri);
 liststring list(string uris);
}


Yes I do like it, but I still have a fond attachment to the annotation
driven state-change - method mapping :)

You have .put and .get in the client example, maybe the .post should be
something like

 customers.post(uri, state-diff)

where state-diff is a state format dependent serialization.

Also, I was thinking that somehow our REST work should tie in with  
the DAS work that we're doing in Tuscany.


+1 - I know little about the DAS stuff as yet, but the REST/CRUD/BREAD
approach has a strong affinity for data sources. IMHO this would be
a great first step!

 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [C++] Requirements for a pluggable C++ Tuscany implementation

2006-08-21 Thread Oisin Hurley

Pete Robbins wrote:

Hi Oisin,

Here's the dumb question: What do you mean by Plugin? Is it a  
composite or

group of composites?


Or just a set of extensions packaged in a library that you plug  
into the runtime?


'Plugin' means a piece of software that adds some functionality in the
form of a core extension or an application element. So yes I think it
would work to have a composite bundled as a plugin - it also would be
a nice idea to have say binding.ws bundled as a plugin too. Lots of
scope - just the plugin mechanisms need to be clear, an SPI type of
thing needs to be in place and of course (the interesting piece ;) a
collection of shlib loaders for all the target platforms.

At this point I declare my allegiance to Darwin/powerpc :)


I'll add a few more requirements here :)
The extension programming model should be easy to understand by  
people who have read the SCA spec. Using consistent terminology  
(e.g. an implementation plugin/extension contributes the support  
for a particular component implementation type) will help.


+1

Also the model used by the developer of an extension should be  
consistent enough with the model described in the SCA spec. The in- 
memory model describing SCA assemblies can be optimized for use by  
the runtime, but it should be easy to grasp by the guy who just  
read the SCA spec and just understood what a composite, component,  
service or reference are.


For 'consistent enough' it would be good to say 'as consistent as  
possible',

make it a bit stronger, otherwise +1



3. Plugins can be loaded on-demand, from dynamic libraries,
and many plugins can be put into a library.



Do you really mean multiple plugins in a library? or one plugin per  
library contributing multiple extensions? I guess this depends on  
what we mean by plugin :)


Multiple plugins in a library is the goal to be aimed for in the
long term, IMHO, the reason being it makes it really easy for an
extension provider to package everything up into one lib - so if
you have (for example) interface.idl, implementation.cxx.poa
and binding.iiop then you can just deliver them all as libcorba.so
and all will resolve gracefully.


4. Plugins can be statically linked with an application.



Could you describe the use case you have in mind? Does that apply  
to just plugins? or the whole runtime?


I'll 'fess up and say that I have no particular use case in
mind right now. When I was writing that line, I was thinking
of 'embedded' applications - not in the sense of 'embedded
systems', although that might be an option for router hardware -
but in the sense of an SI constructing and provisioning a
system that uses Tuscany buried deep in folded layers of fat
application code. The Tuscany runtime is meant to stay buried,
and having a statically linked binary is an effective way to
do that -- it bakes the version in so that if a newer version
of Tuscany gets installed with shlibs, the old version won't
pick anything up by accident. Not a very strong case :)



5. Plugins should be evictable too, provided that this feature
is supported on the target platform.

6. There will need to be some kind of manager thingie to keep
track of plugins and their state at runtime.



I've been thinking about this and wondering what the architecture  
of the runtime will be with many different plugins? Are you guys  
envisioning one big process with different (maybe incompatible?)  
libraries loaded in it? or a more distributed architecture with  
multiple processes?
I must admit I've been toying with the idea of having multiple  
processes handling the various component implementation types and  
binding types, then it would be quite easy to bring them up/down...  
What do you think?


It's late here and my brain is a mite melted, but I think I
can see advantage to both :) In the first case, I think that
having incompatible libraries cohabiting a process should be
ruled out of order, but it should be possible for example for
an application to be able to take advantage of multiple binding
extensions in the same process - this seems like a reasonable
expectation if you are writing something that is going to work
as a bridge, for example.

If I understand the second case correctly, you're thinking of
having separate processes for a {binding, implementation} pair
or something like that, rather than using IPC between binding
and implementations? If thats the case, that seems ok to me :)


7. Plugins need to support an interface for initialization
and shutdown at the least. There will need to be some kind
of simple lifecycle put together. Request for lifecycle
transitions will need to support parameters

+1 for a simple lifecycle interface. What kind of parameters do you  
have in mind?


I'd go for a simple context-stylee thing with named properties
and simple typing. A bit of a step up from const void* const *
and pleasantly debuggable :)


9. Plugins have versions, and dependencies on other plugins too.



We may want to 

Re: REST bindings for Tuscany SCA runtime

2006-08-17 Thread Oisin Hurley

Hi Bert,


I am still at the point where I am trying to get my head really
wrapped around how Tuscany works


I will be travelling the same road soon ;)


Have you put much thought towards the subject of a REST binding?  Are
there things about which you believe we should be aware?


Well, the thing that comes to mind first is the mismatch between
the basic REST approach of using a fixed set of 'verbs' richly flexible
data and the Interfaces approach, which uses an open-ended set of
'verbs' (read: operations) and constrained strongly-typed data.

[small REST primer - skip if you know all this stuff]

The short document at [0] below characterises some of the issues of
developing a (Web) service using REST principles and is useful and
the wikipedia link at [1] has a good example (generic, not Tuscany
specific)  :

Say you have a service that has methods

getUser()
addUser()
removeUser()
updateUser()

then you might use code like:

exampleAppObject = new ExampleApp(example.com:1234)
exampleAppObject.getUser()

to get details of a user. This is the interface or unconstrained
verbs approach.

Now, let's flip over to a REST means of getting the same
information. In this case, you are limited to small set of
well-defined operations, which map very well to the CRUD [3]
operators that a persistence system must provide. Because
of this stricture, you need to ramp up the diversity of
nouns (or resources, or maybe objects, but really the concept
of a resource may not equal an object in programming terms,
many resources could be 'supported' by a single object).

These resources (which is the accepted term) are represented,
uniquely, and immutably, by URIs. So taking the example
above and REST-ing it you get resources:

http://example.com/users/
http://example.com/users/{user} (one for each user)

and then you might use code like:

userResource = new Resource(http://example.com/users/001;)
userResource.get()

and you get the same information as the Interface-y example
previously.

REST is liked by many, for many reasons, but one good on is
that it's scalable (the web is an
example, although there is an extra factor that makes the
web scalable and that is the 404) in the sense that everyone
supports the same 'interface' and the semantics of the interface
are simple and clear.

In practical terms, this means that you can just join the
web, as a resource, and you will immediately fit in. No adapters
required :)

[end of small REST primer]

My interest in responding to your initial mail was that I am
currently attempting to use RESTian principles in another
project and I am finding myself making lots of interesting
decisions that I would not have made using the Interface
approach that I have used for more years than I care to
remember. Using the REST principles has deeply impacted they
way I've approached the development of the development of
the project -- in a good way :)

I'm sure you've noticed the example I gave earlier on the
programming model is client-specific and so impacts on only
part of a prospective RESTian addition to Tuscany. There is an
impact on the server too, and that's a direct consequence of
the 'few verbs' approach - talking from a programming language
perspective, every 'servant' (or resource implementation may
be a better way to put it)  will have a tiny interface.

My point is that if Tuscany wants to support REST style -
a goal which I think is good, right and true - it's a job
that will involve constructing a binding extension,
re-working the Basic Client Model (see 1.3 in Java CI spec)
and adding some new annotations to the Java interface (or
maybe adding a new interface type). Note that the same will
apply to other language mappings too since REST is language
neutral (it's also protocol neutral too as an architectural
style, but assuming HTTP as the #1 priority would be safe
enough :)

On the annotations I mentioned, consider something like:

  package services.hello;

  import org.osoa.sca.annotations.*;

  @Remotable
  public interface HelloService {

 @RESTMethod(RestMethods.RETRIEVE)
 @RESTBaseURIContext(/foo/bar/sossages)
 String hello();
  }

Here I've decorated the ubiquitous HW example from JCI 1.2.1.1
with some spanky new annotations. This example indicates to the
runtime that the hello() method should be called on this interface
should the 'RETRIEVE' REST method (for HTTP this is 'GET') appear
on the dispatch, directed to a URI that starts with the string
specified in with the RESTBaseURIContext (now - this is probably
the wrong way to do it, but I just trying to illustrate the
broad outlines of an approach, i.e. I am making it up).

Note that the concept of XML/HTTP interchange may be RESTful,
but indeed may not. However, it is the basis for an implementation
of a RESTful approach (given HTTP as the transport) and is
useful in an of itself (especially for so-called Web 2.0 apps).

Methinks I've said enough for now, thank you for reading this
far if indeed you have ;)

 

Re: REST bindings for Tuscany SCA runtime

2006-08-17 Thread Oisin Hurley
Oisin may have been referring to how REST would impact the  
programming model rather than the implementation of bindings. For  
example, how would cache information in the request be handled by  
the binding and/or exposed to the application code? What is the  
mapping between REST resources and SCA services?


Caching, which is only made possible by the fact the RESTful retrieves
are idempotent, might be difficult to do effectively since it's not
really possible to control what the programmer does from within a
mapped retrieve method in the implementation short of giving them a
new execution environment to be bad in :)

IMO we can tackle this in to stages. First one is to get the basic  
transports working (like JSON-RPC, XML over messaging, HTML over  
HTTP etc.); that would at least allow SCA applications to provide/ 
access REST resources. The second stage would be to support more of  
the semantics of RESTful interactions.


+1

 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[C++] Requirements for a pluggable C++ Tuscany implementation

2006-08-17 Thread Oisin Hurley

Hi guys,
I thought I might kick off a thread on pluggability in the C++
implementation to get some ideas rolling around, so while these
are not 'requirements' at all, they might eventually lead to
some ;)

1. Language independence is not an issue here, so all plugins
are described and implemented in C++.

2. It should be reasonably straightforward to make a plugin
with minimum code, so things like base plugin classes as part
of the core are a good thing.

3. Plugins can be loaded on-demand, from dynamic libraries,
and many plugins can be put into a library.

4. Plugins can be statically linked with an application.

5. Plugins should be evictable too, provided that this feature
is supported on the target platform.

6. There will need to be some kind of manager thingie to keep
track of plugins and their state at runtime.

7. Plugins need to support an interface for initialization
and shutdown at the least. There will need to be some kind
of simple lifecycle put together. Request for lifecycle
transitions will need to support parameters

8. Plugins have names. Easy.

9. Plugins have versions, and dependencies on other plugins too.

10. Plugins describe and can validate their own configuration.

11. Plugins need to be signable, or equivalent.

Comments?

 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: REST bindings for Tuscany SCA runtime

2006-08-16 Thread Oisin Hurley

Hi Bert, Sreelatha,
Have you any thoughts on how a REST binding will need to influence the
SCA programming model?

 rgds
  --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Support for callbacks

2006-07-13 Thread Oisin Hurley
Yes I was counting on the binding (e.g. Celtix, Axis) to provide RM  
capabilities. However, we also need to manage stateful callbacks...


We will need to spec the RM requirements with a magical policy
or have some kind of constraint to validate the presence of the
feature (spec issue I guess there). Quick clarification on what
you call a stateful callback: Is a callback
said to be stateful if the target of the callback needs to
maintain state that will be influenced by the arrival of the
callback? Or is a callback stateful if the source of the callback
needs to deliver state to the target during the callback? Or both,
I guess :)

and I was thinking of persisting that state using a scope container  
that implements a mechanism similar to what is found in messaging  
systems like ActiveMQ (some type of identity-based store on the  
file system). What do you think?


Sounds like a reasonable approach and fairly straightforward :)


Is there a possibility of ordering constraints on the callbacks?
This could put a crimp in the runtime if a failing callback
was holding other things up.

Reliable ordered delivery is going to be an interesting one :-)  
Does Celtix support or plan to support this?


Well Celtix and similar projects implement WS-RM [0], but that
only speaks to ordering and delivery of the wire messages really.
Theres a thing called the Callback RM-Reply Pattern in the spec,
it seems to just spec out how what the MEP looks like and the
vocabulary of SOAP Headers to do the bookkeeping.

It's probably better to state up front that ordering criteria
MUST not be associated with callbacks. (Except of course that
the callback must come after the call :D ).

 rgds
   --oh

[0] http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrm

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tuscany Icon

2006-07-05 Thread Oisin Hurley

The cypress on the hill motif is pretty cool and it doesn't need to
be too busy - take a look at http://www.tuscanystyle.it/index.html
for an example of how it can be stylized.

 --oh

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re-post of link to Mike Rowley's blog article on JBI

2006-06-29 Thread Oisin Hurley

At the ApacheCon Tuscany BOF, there was some questions about JBI
and SCA and what the story is there. Jim mentioned a blog entry
by Mike that had an explanation of what JBI isn't - here's that
link to remind everyone :)

http://dev2dev.bea.com/blog/mrowley/archive/2005/08/jbi_doesnt_host.html

 --oh


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



More useful links mentioned @ ApacheCon Tuscany BOF

2006-06-29 Thread Oisin Hurley

More top link suggestions from Jim at the ApacheCon Tuscany BOF:

http://www.davidchappell.com/blog/2006/04/why-service-component- 
architecture-is

http://www.davidchappell.com/HTML_email/Opinari_No15_12_05.html


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: XML Comparison

2006-06-22 Thread Oisin Hurley

Hi Simon,

However this test compares everything and I am hitting the problem  
which is
touched on in http://issues.apache.org/jira/browse/TUSCANY-427,  
i.e. my
input xml files have comments and my output XML files don't so the  
current

equalXML... function always returns false.


What might be useful here is some XML Canonicalization (c14n) code that
will munge both XML sources to a canonical form and then compare  
those forms.

This does things like elide extraneous whitespace in the elements,
reorder attributes using a particular algorithm, optionally remove
comments and that kind of thing. The Canonical XML spec is at [0],
but you might be more interested in the example implementation which you
can find in the Xerces samples at [1]. A candidate for that testutils
jar that Dan was talking about, perhaps.

 regards
   Oisin

[0] http://www.w3.org/TR/xml-c14n
[1] http://svn.apache.org/viewvc/xerces/java/trunk/samples/sax/ 
Writer.java


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Eclipse SOA Tools Project (was: Re: SDO tooling for Apache Tuscany)

2006-06-13 Thread Oisin Hurley

You should be aware of the Eclipse SOA Tools Project
(http://www.eclipse.org/stp/) since there is a potential overlap with
them...


And there's my cue... :)

I'll introduce myself: my name's Oisin Hurley and I'm on the STP PMC.
Some of you on this list might know me already, from the SCA process,
since I get to do some of that too :)

Right now in STP land [0] we are collecting scenarios to drive our  
planning
process [1] for integrating the elements we have (specifically around  
the
SCA model core and deployment areas). Needless to say, we would be  
keen to
have a very diverse set of scenarios to wrangle over -- if you have  
something
in mind, feel free to put it on the STP wiki (go to [2] for a  
bugzilla login

to get the write access).

Ok, that's the pitch over :) - on the subject in hand, while an EMF- 
based

implementation of SDO for eclipse is available at [3], there are
no efforts in progress in STP to create a SDO-generator wizard and
AFAIK same goes for the other top-level projects. So you won't be
stepping on any code :)

On a general note, we're real open to any suggestions, code,  
questions or
other feedback that you may have. There's usually a couple of people  
hanging

out on #eclipseSTP at irc.freenode.net:6667 if you want to get in touch
that way, or send a mail to [EMAIL PROTECTED]

 cheers
  Oisin

[0] http://www.eclipse.org/stp
[1] http://wiki.eclipse.org/index.php/STP_Call_for_Scenarios
[2] https://wiki.eclipse.org/index.php? 
title=Special:Userloginreturnto=STP

[3] http://www.eclipse.org/emf/sdo.php



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]