Mike:

I don't know if you are talking about this sample:
https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/helloworld-bpel-ws/

If it's the case, the helloworld.composite does not have a reference, it
simply exposes a BPEL implementation as a service.

I think I understand a bit better the rationale for not modeling external
references as "components" and why "components" need to have an
implementation. I am fine with it since a component must belong to a domain.


I have tried to do some cross-domain work by modeling a service (external to
the domain) invoked by a BPEL implementation and I get some errors. I don't
know if anyone could help me.

Here is my composite file (I replaced the GreetingsService component by a
reference to an external web service (implemented in a different domain)):

<?xml version="1.0" encoding="ISO-8859-15"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; xmlns:sca="
http://www.osoa.org/xmlns/sca/1.0"; xmlns:hns="http://helloworld";
xmlns:instance="http://www.w3.org/2004/08/wsdl-instance"; xmlns:tuscany="
http://tuscany.apache.org/xmlns/sca/1.0"; name="helloworld" targetNamespace="
http://bpel";>
  <component name="HelloWorldService">
    <tuscany:implementation.bpel process="hns:HelloWorld"/>
    <reference name="greetingsPartnerLink" />
  </component>
  <reference name="GreetingsService"
promote="HelloWorldService/greetingsPartnerLink">
    <tuscany:interface.wsdl interface="
http://laptop2:8085/GreetingsService#wsdl.portType(Greetings)"/>
    <binding.ws wsdlElement="
http://laptop2:8085/GreetingsService#wsdl.service(GreetingsService)"
instance:wsdlLocation="http://laptop2:8085/GreetingsService.wsdl"/>
  </reference>
</composite>

I do get a series of errors coming from the domain trying to implement this
composite:

[java] May 22, 2008 7:44:59 AM
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor
read
     [java] WARNING: Element {
http://tuscany.apache.org/xmlns/sca/1.0}implementation.bpel cannot be
processed. ([row,col {unknown-source}]: [4,5])
     [java] May 22, 2008 7:44:59 AM
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor
read
     [java] WARNING: Element {
http://tuscany.apache.org/xmlns/sca/1.0}interface.wsdl cannot be processed.
([row,col {unknown-source}]: [8,5])
     [java] May 22, 2008 7:44:59 AM
org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl$1 problem
     [java] WARNING: No implementation for component: HelloWorldService
     [java] May 22, 2008 7:44:59 AM
org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl$1 problem
     [java] WARNING: Reference not found for component reference:
HelloWorldService/greetingsPartnerLink
     [java] May 22, 2008 7:44:59 AM
org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl$1 problem
     [java] WARNING: No implementation for component: HelloWorldService
     [java] May 22, 2008 7:44:59 AM
org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl$1 problem
     [java] WARNING: Reference not found for component reference:
HelloWorldService/greetingsPartnerLink
     [java] No service is declared on component HelloWorldService

BTW, of course the greetings service is up and running and I can query its
WSDL (v1.1)

In the composite I did try both wsdl.interface and wsdl.portType and got the
same result (same interface.wsdl cannot be processed)

thanks,

JJ-





On Sat, May 17, 2008 at 7:29 AM, Jean-Jacques Dubray <[EMAIL PROTECTED]>
wrote:

> Luciano, Mike:
>
> thanks for the detailed answer. Yes, I am aware there are different types.
> I am not so concerned having to declare an implementation within the same
> domain. As a matter of fact, it looks to me that it is not even within an
> entire domain, but within a composite since there is an implementation type
> which is "implementation.composite", so the scope to which an implementation
> declaration is exposed is fairly limited (which is good).
>
> I am more concerned of "cross domain" interactions and in particular how,
> say, a .Net based web service gets "assembled". In that case you won't be
> able to find a valid implementation to expose as a composite. In "cross
> domain" interactions you are also left to use Web Services technologies
> (which I'm fine with, it'd be a shame to find no real use for WS-* after all
> this energy spent :-).
>
> Do you have a sample for that use case?
>
> thanks,
>
> JJ-
>
>
> On Sat, May 17, 2008 at 5:34 AM, Mike Edwards <
> [EMAIL PROTECTED]> wrote:
>
>> Jean-Jacques Dubray wrote:
>>
>>> Luciano:
>>>
>>> thanks, actually in the test/bpel/helloworld-reference composite
>>> definition
>>> you also have a component defined with a binding.ws and there to, there
>>> is
>>> an implementation.java element. Is it required?
>>>
>>> <!-- Simple ws-reference -->
>>>    <!--
>>>    <component name="HelloWorldService">
>>>        <implementation.java class="helloworld.HelloWorldServiceImpl"/>
>>>        <reference name="greetingsService">
>>>            <binding.ws uri="http://localhost:8085/GreetingsService"/>
>>>        </reference>
>>>    </component>
>>>    -->
>>>
>>> Would you consider ws bindings as the preferred way to implement  cross
>>> domain composites?
>>>
>>> JJ-
>>>
>>>  Jean-Jacques,
>>
>> There may be a misunderstanding going on here....
>>
>> Where there is a component in SCA, that says that there is a piece of code
>> present which implements some function - and that the code provides function
>> via one or more services and consumes function provided elsewhere through
>> zero or more references.
>>
>> That code is called an implementation - and the implementation can be any
>> one of many kinds - Java, BPEL, C++, JavaScript, Ruby, etc.  But there must
>> be an implementation of some kind - and the component declaration is obliged
>> to point at one.
>>
>> In this case, the HelloWorldService component has an implementation that
>> is a Java POJO - the class
>> helloworld.HelloWorldServiceImpl.  While this test could have used some
>> other implementation type such as BPEL, it IS required to have SOME
>> implementation - otherwise there is no function that the component can
>> provide.
>>
>> The fact that the implementation is a Java POJO does not prevent the
>> service interface or the reference interface being declared using WSDL and
>> it also does not prevent the service or reference using a binding that is a
>> Web service binding also using a WSDL, should that be desirable.
>>
>> Here is a simple example of a component implemented by a BPEL process and
>> exposed as a Web service:
>>
>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
>>    targetNamespace="http://bpel";
>>    xmlns:hns="
>> http://tuscany.apache.org/implementation/bpel/example/helloworld";
>>    name="bpel">
>>
>>    <component name="BPELHelloWorldComponent">
>>        <implementation.bpel process="hns:HelloWorld"/>
>>        <service name="helloPartnerLink">
>>            <interface.wsdl
>>                 interface="
>> http://tuscany.apache.org/implementation/bpel/example/helloworld.wsdl#
>>                 wsdl.interface(HelloPortType)" />
>>            <binding.ws />
>>        </service>
>>    </component>
>>
>> </composite>
>>
>> ....no Java in sight !
>>
>> PS - you will find that component in a new BPEL Sample I've recently
>> committed to the Tuscany SVN - called  "helloworld-bpel-ws".
>>
>> Yours,  Mike.
>>
>
>
>
> --
> Jean-Jacques Dubray
> 425-445-4467
>



-- 
Jean-Jacques Dubray
425-445-4467

Reply via email to