Hi James,
Thanks for your reply; it made me realize that
we did something in one particular way for so long that I forgot about any
other possibilities.
- interface
In our work we have only been interested
in how to invoke a BPEL process from a client, either some Java client to kick
off a process or in a hierarchical composition of processes. From that
viewpoint, you only care about the portType of the initial activity creating an
instance and possibly a reply in case of req-resp interaction.
Of course, you are right. If the same
process, for example, acts as a client in an asynchronous interaction and
therefore defines a callback operation or has some pick-onMessage, then,
strictly speaking, this would be part of its interface.
- tns
As we have made such extensive use of
hierarchical composition, I guess it was just easier to have the portTypes of a
process in a WSDL with the same tns as the BPEL process (you don’t need
to worry which WSDL to use for invoking another process). I just need to
confirm that this (the tns match between process and WSDL) is not actually
needed by any BPEL engine for deployment.
- deployment onto runtime
To rephrase my initial question, for
deployment we need to derive some information from the partnerLinkType definition
used by the partner in the initial create instance activity. So, regardless of
any ns or tns, deployment code just needs access to the BPEL model of a process
and any WSDL involved.
Thanks for clarifying,
-- Bruno
From:
bpel-dev-bounces@xxxxxxxxxxx [mailto:bpel-dev-bounces@xxxxxxxxxxx] On Behalf Of James Moody
Sent: 15 March 2006 15:21
To: BPEL Designer project
developer discussions.
Subject: Re: [bpel-dev] Process
WSDL Interface
bpel-dev-bounces@xxxxxxxxxxx
wrote on 03/15/2006 10:04:27 AM:
> Hi All,
>
> I have a quick technical question. My runtime
extension code will need to
> get hold of the process WSDL interface. I am
not sure how the editor is
> going to handle this.
>
> Will there be a 'New BPEL Process' wizard
that captures the process WSDL
> interface and makes it available (and
information about it, such as
> location, tns) or would my code have to
search all partners of the process
> for one defined on a WSDL with matching tns
(process.tns = wsdl.tns)?
Hi Bruno,
First of
all, there is no one single port type which can be called the
"interface" to the process. A process' interface is the union of all
port types from partner links which have a "myRole" specified. (Now,
one could say that the port type corresponding to the partner link to which the
"initial activity" (e.g. receive or pick) is attached is special in
some way).
Basically,
we envision a new process wizard that will allow one of two paths:
1. User specifies an existing WSDL port type, and we use
that port type to create a partner link (and plt), and create an initial
receive (and reply, if it's a req/resp operation) attached to that partner
link.
2. User says "create me a new WSDL port type".
We create a new wsdl file with a port type with one operation, as well as a
plt, and a bpel process with a receive and reply and partner link which is
attached to the port type we just created.
I don't
think there is any necessary relationship betwen the tns of the process and the
tns of the wsdl - they are orthogonal - they can be the same, or not. The
import statements in the bpel file will clearly specify the location of the
referenced wsdl files.
I hope this
answers your questions.
james