Discussion:
about JMS Binding
Jack Zai
2007-07-05 16:54:56 UTC
Permalink
Hi,

I am developing a JMS binding and would like to discuss some of the
work i've done. basically, a message service listens to a queue at
some JMS message provider e.g. ActiveMQ or IBM Websphere MQ. And a
client or a reference can invoke the service's method by sending
message to its destination queue, and receive the response from a call
back queue, which can be provided at runtime by the client.

I found there is an existing specification for SCA JMS Binding [1]
from OSOA. This spec describes stuff like when receiving a request
which method should be invoked, and how the data/parameters are packed
into a JMS Message. I've already implemented section 1.5 and section
1.7.2 of that spec, and have some thoughts about the conversations
(section 1.7.3), but not yet implemented.

In addition, my solution requires another pecl extension SAM [2] for
connecting to the message providers. The reason of choosing SAM is
because that SAM provides one API for different messaging
infrastructures, and also provides a generic extension mechanism which
makes it easy to add new support. Currently SAM only supports XMS[3]
for IBM products and MQTT, but I've also developed a new Stomp support
for Active MQ, which will be included to the next release of SAM very
shortly.

If anyone is interested in the JMS binding or have any questions,
please join the discussion here.

Jack Zai

[1] SCA JMS Binding V1.00 (PDF)
http://www.osoa.org/download/attachments/35/SCA_AssemblyModel_V100.pdf?version=1
[2] SAM - Simple Asynchronous Messaging for PHP (http://pecl.php.net/
package/sam)
[3] XMS - http://www.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
Simon Laws
2007-07-05 17:41:29 UTC
Permalink
Post by Jack Zai
Hi,
I am developing a JMS binding and would like to discuss some of the
work i've done. basically, a message service listens to a queue at
some JMS message provider e.g. ActiveMQ or IBM Websphere MQ. And a
client or a reference can invoke the service's method by sending
message to its destination queue, and receive the response from a call
back queue, which can be provided at runtime by the client.
I found there is an existing specification for SCA JMS Binding [1]
from OSOA. This spec describes stuff like when receiving a request
which method should be invoked, and how the data/parameters are packed
into a JMS Message. I've already implemented section 1.5 and section
1.7.2 of that spec, and have some thoughts about the conversations
(section 1.7.3), but not yet implemented.
In addition, my solution requires another pecl extension SAM [2] for
connecting to the message providers. The reason of choosing SAM is
because that SAM provides one API for different messaging
infrastructures, and also provides a generic extension mechanism which
makes it easy to add new support. Currently SAM only supports XMS[3]
for IBM products and MQTT, but I've also developed a new Stomp support
for Active MQ, which will be included to the next release of SAM very
shortly.
If anyone is interested in the JMS binding or have any questions,
please join the discussion here.
Jack Zai
[1] SCA JMS Binding V1.00 (PDF)
http://www.osoa.org/download/attachments/35/SCA_AssemblyModel_V100.pdf?version=1
[2] SAM - Simple Asynchronous Messaging for PHP (http://pecl.php.net/
package/sam)
[3] XMS -
http://www.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html
Hey Jack, that sounds really cool. A couple of questions.
- How does a service listen to message queues. I.e. is there really a
listener or do you rely on user events before going and reading input
queues?

- Does the service take notice of the "reply to" information that can appear
in messages?

- How does a reference generate "reply to" information

- What does it mean to have a reference defined with a ms binding. Does it
mean calls through that reference will be synchronous, asynchronous or do I
get to choose.

- Is there a way I can programmatically receive messages from within a
service implementation.

It would be really good to get a look at the code. I'm not sure what the
process is for getting it from you. Have you signed a project Contributor
License Agreement (CLA) to indicate that you are free to give us the code
and are happy for us to use it?

If you have we could transfer it via the files section of the group but I
notice that it's set at the moment so that only managers can upload files.

We could do that via email and have one of the maintainers patch the code
into the branch for all to see. But what does everyone think about how we
should handle contributions like this. Should we have a separate place where
people can put contributions (like the file section of the google group)?

Regards

Simon

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
cem
2007-07-05 23:11:24 UTC
Permalink
Post by Simon Laws
If you have we could transfer it via the files section of the group but I
notice that it's set at the moment so that only managers can upload files.
We could do that via email and have one of the maintainers patch the code
into the branch for all to see. But what does everyone think about how we
should handle contributions like this. Should we have a separate place where
people can put contributions (like the file section of the google group)?
We should use the bug tracker, with type=Feature.Change Request. I
can't remember if the tracker will let you attach a patch file, or if
you have to make the patch available somewhere else and point to it
from the bug report. If the latter, we can always open up the files
area, (and hope we don't let any spammers in).


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
simonslaws-gM/Ye1E23mwN+
2007-07-06 12:25:00 UTC
Permalink
Post by cem
Post by Simon Laws
If you have we could transfer it via the files section of the group but I
notice that it's set at the moment so that only managers can upload files.
We could do that via email and have one of the maintainers patch the code
into the branch for all to see. But what does everyone think about how we
should handle contributions like this. Should we have a separate place where
people can put contributions (like the file section of the google group)?
We should use the bug tracker, with type=Feature.Change Request. I
can't remember if the tracker will let you attach a patch file, or if
you have to make the patch available somewhere else and point to it
from the bug report. If the latter, we can always open up the files
area, (and hope we don't let any spammers in).
I don't blieve that there is a way to attach a file to a PECL bug but
+1 to using a bug report to record the requested feature request.

Simon


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
Jack Zai
2007-07-06 12:28:21 UTC
Permalink
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.

"Reply to" information is provided by the client using the
'scaCallbackQueue' user property or the JMSReplyTo header, in other
words the name of the reply-to-queue should be found in the message's
header. And the client can change its reply-to-queue at any time by
calling setReplyQueue method.

$service->setReplyQueue("queue://OrderResponse")

However, according to the spec, the "reply to" information does not
contain any information about the message provider (e.g. host,
port ...). so I have to assume the reply-to queue is in the same
broker of the service queue.

At moment, my solution is implemented in a synchronous manner. A
reference is expecting the response immediately after a request being
sent. I think we have many options to achieve asynchronous
communication, but I am not sure how users want it be done, that is
one of the points we need to discuss more about. Currently a client or
a reference can tell the proxy not to expect response by calling
setWaitResponseTimeout(-1) to a negative value.

Answer to the last question is no, you can not receive messages from
service implementation. Actually I don't see why you need to, as that
would cause problems if later you want to expose it as soap or another
service.

Finally, I singed CLA a few days ago and I am happy to join you as a
contributor.

Jack
Post by Simon Laws
Post by Jack Zai
Hi,
I am developing a JMS binding and would like to discuss some of the
work i've done. basically, a message service listens to a queue at
some JMS message provider e.g. ActiveMQ or IBM Websphere MQ. And a
client or a reference can invoke the service's method by sending
message to its destination queue, and receive the response from a call
back queue, which can be provided at runtime by the client.
I found there is an existing specification for SCA JMS Binding [1]
from OSOA. This spec describes stuff like when receiving a request
which method should be invoked, and how the data/parameters are packed
into a JMS Message. I've already implemented section 1.5 and section
1.7.2 of that spec, and have some thoughts about the conversations
(section 1.7.3), but not yet implemented.
In addition, my solution requires another pecl extension SAM [2] for
connecting to the message providers. The reason of choosing SAM is
because that SAM provides one API for different messaging
infrastructures, and also provides a generic extension mechanism which
makes it easy to add new support. Currently SAM only supports XMS[3]
for IBM products and MQTT, but I've also developed a new Stomp support
for Active MQ, which will be included to the next release of SAM very
shortly.
If anyone is interested in the JMS binding or have any questions,
please join the discussion here.
Jack Zai
[1] SCA JMS Binding V1.00 (PDF)
http://www.osoa.org/download/attachments/35/SCA_AssemblyModel_V100.pd...
[2] SAM - Simple Asynchronous Messaging for PHP (http://pecl.php.net/
package/sam)
[3] XMS -
http://www.ibm.com/developerworks/websphere/library/techarticles/0509...
Hey Jack, that sounds really cool. A couple of questions.
- How does a service listen to message queues. I.e. is there really a
listener or do you rely on user events before going and reading input
queues?
- Does the service take notice of the "reply to" information that can appear
in messages?
- How does a reference generate "reply to" information
- What does it mean to have a reference defined with a ms binding. Does it
mean calls through that reference will be synchronous, asynchronous or do I
get to choose.
- Is there a way I can programmatically receive messages from within a
service implementation.
It would be really good to get a look at the code. I'm not sure what the
process is for getting it from you. Have you signed a project Contributor
License Agreement (CLA) to indicate that you are free to give us the code
and are happy for us to use it?
If you have we could transfer it via the files section of the group but I
notice that it's set at the moment so that only managers can upload files.
We could do that via email and have one of the maintainers patch the code
into the branch for all to see. But what does everyone think about how we
should handle contributions like this. Should we have a separate place where
people can put contributions (like the file section of the google group)?
Regards
Simon- Hide quoted text -
- Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
simonslaws-gM/Ye1E23mwN+
2007-07-06 12:45:41 UTC
Permalink
Post by Jack Zai
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.
"Reply to" information is provided by the client using the
'scaCallbackQueue' user property or the JMSReplyTo header, in other
words the name of the reply-to-queue should be found in the message's
header. And the client can change its reply-to-queue at any time by
calling setReplyQueue method.
$service->setReplyQueue("queue://OrderResponse")
However, according to the spec, the "reply to" information does not
contain any information about the message provider (e.g. host,
port ...). so I have to assume the reply-to queue is in the same
broker of the service queue.
At moment, my solution is implemented in a synchronous manner. A
reference is expecting the response immediately after a request being
sent. I think we have many options to achieve asynchronous
communication, but I am not sure how users want it be done, that is
one of the points we need to discuss more about. Currently a client or
a reference can tell the proxy not to expect response by calling
setWaitResponseTimeout(-1) to a negative value.
Answer to the last question is no, you can not receive messages from
service implementation. Actually I don't see why you need to, as that
would cause problems if later you want to expose it as soap or another
service.
Finally, I singed CLA a few days ago and I am happy to join you as a
contributor.
Jack
Post by Simon Laws
Post by Jack Zai
Hi,
I am developing a JMS binding and would like to discuss some of the
work i've done. basically, a message service listens to a queue at
some JMS message provider e.g. ActiveMQ or IBM Websphere MQ. And a
client or a reference can invoke the service's method by sending
message to its destination queue, and receive the response from a call
back queue, which can be provided at runtime by the client.
I found there is an existing specification for SCA JMS Binding [1]
from OSOA. This spec describes stuff like when receiving a request
which method should be invoked, and how the data/parameters are packed
into a JMS Message. I've already implemented section 1.5 and section
1.7.2 of that spec, and have some thoughts about the conversations
(section 1.7.3), but not yet implemented.
In addition, my solution requires another pecl extension SAM [2] for
connecting to the message providers. The reason of choosing SAM is
because that SAM provides one API for different messaging
infrastructures, and also provides a generic extension mechanism which
makes it easy to add new support. Currently SAM only supports XMS[3]
for IBM products and MQTT, but I've also developed a new Stomp support
for Active MQ, which will be included to the next release of SAM very
shortly.
If anyone is interested in the JMS binding or have any questions,
please join the discussion here.
Jack Zai
[1] SCA JMS Binding V1.00 (PDF)
http://www.osoa.org/download/attachments/35/SCA_AssemblyModel_V100.pd...
[2] SAM - Simple Asynchronous Messaging for PHP (http://pecl.php.net/
package/sam)
[3] XMS -
http://www.ibm.com/developerworks/websphere/library/techarticles/0509...
Hey Jack, that sounds really cool. A couple of questions.
- How does a service listen to message queues. I.e. is there really a
listener or do you rely on user events before going and reading input
queues?
- Does the service take notice of the "reply to" information that can appear
in messages?
- How does a reference generate "reply to" information
- What does it mean to have a reference defined with a ms binding. Does it
mean calls through that reference will be synchronous, asynchronous or do I
get to choose.
- Is there a way I can programmatically receive messages from within a
service implementation.
It would be really good to get a look at the code. I'm not sure what the
process is for getting it from you. Have you signed a project Contributor
License Agreement (CLA) to indicate that you are free to give us the code
and are happy for us to use it?
If you have we could transfer it via the files section of the group but I
notice that it's set at the moment so that only managers can upload files.
We could do that via email and have one of the maintainers patch the code
into the branch for all to see. But what does everyone think about how we
should handle contributions like this. Should we have a separate place where
people can put contributions (like the file section of the google group)?
Regards
Simon- Hide quoted text -
- Show quoted text -
Thanks for the reply Jack. I'll need to see the code to help me parse
your responses:-)

I've turned on group member rights for uploading files so you can
upload you message service binding here. If you create a PECL bug for
this new feature (marking it as Caroline suggested) then you can
reference the uploaded file. That will help us track changes we make
to PHP SCA based on your new binding. Once you've uploaded it we can
start to take a look at it and give you some feedback.

In order to run this new binding do we also need changes to SAM?

Regards

Simon


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
Jack Zai
2007-07-06 15:31:05 UTC
Permalink
I've uploaded my code as an archive file - ms.zip.

Jack
Post by simonslaws-gM/Ye1E23mwN+
Post by Jack Zai
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.
"Reply to" information is provided by the client using the
'scaCallbackQueue' user property or the JMSReplyTo header, in other
words the name of the reply-to-queue should be found in the message's
header. And the client can change its reply-to-queue at any time by
calling setReplyQueue method.
$service->setReplyQueue("queue://OrderResponse")
However, according to the spec, the "reply to" information does not
contain any information about the message provider (e.g. host,
port ...). so I have to assume the reply-to queue is in the same
broker of the service queue.
At moment, my solution is implemented in a synchronous manner. A
reference is expecting the response immediately after a request being
sent. I think we have many options to achieve asynchronous
communication, but I am not sure how users want it be done, that is
one of the points we need to discuss more about. Currently a client or
a reference can tell the proxy not to expect response by calling
setWaitResponseTimeout(-1) to a negative value.
Answer to the last question is no, you can not receive messages from
service implementation. Actually I don't see why you need to, as that
would cause problems if later you want to expose it as soap or another
service.
Finally, I singed CLA a few days ago and I am happy to join you as a
contributor.
Jack
Post by Simon Laws
Post by Jack Zai
Hi,
I am developing a JMS binding and would like to discuss some of the
work i've done. basically, a message service listens to a queue at
some JMS message provider e.g. ActiveMQ or IBM Websphere MQ. And a
client or a reference can invoke the service's method by sending
message to its destination queue, and receive the response from a call
back queue, which can be provided at runtime by the client.
I found there is an existing specification for SCA JMS Binding [1]
from OSOA. This spec describes stuff like when receiving a request
which method should be invoked, and how the data/parameters are packed
into a JMS Message. I've already implemented section 1.5 and section
1.7.2 of that spec, and have some thoughts about the conversations
(section 1.7.3), but not yet implemented.
In addition, my solution requires another pecl extension SAM [2] for
connecting to the message providers. The reason of choosing SAM is
because that SAM provides one API for different messaging
infrastructures, and also provides a generic extension mechanism which
makes it easy to add new support. Currently SAM only supports XMS[3]
for IBM products and MQTT, but I've also developed a new Stomp support
for Active MQ, which will be included to the next release of SAM very
shortly.
If anyone is interested in the JMS binding or have any questions,
please join the discussion here.
Jack Zai
[1] SCA JMS Binding V1.00 (PDF)
http://www.osoa.org/download/attachments/35/SCA_AssemblyModel_V100.pd...
[2] SAM - Simple Asynchronous Messaging for PHP (http://pecl.php.net/
package/sam)
[3] XMS -
http://www.ibm.com/developerworks/websphere/library/techarticles/0509...
Hey Jack, that sounds really cool. A couple of questions.
- How does a service listen to message queues. I.e. is there really a
listener or do you rely on user events before going and reading input
queues?
- Does the service take notice of the "reply to" information that can appear
in messages?
- How does a reference generate "reply to" information
- What does it mean to have a reference defined with a ms binding. Does it
mean calls through that reference will be synchronous, asynchronous or do I
get to choose.
- Is there a way I can programmatically receive messages from within a
service implementation.
It would be really good to get a look at the code. I'm not sure what the
process is for getting it from you. Have you signed a project Contributor
License Agreement (CLA) to indicate that you are free to give us the code
and are happy for us to use it?
If you have we could transfer it via the files section of the group but I
notice that it's set at the moment so that only managers can upload files.
We could do that via email and have one of the maintainers patch the code
into the branch for all to see. But what does everyone think about how we
should handle contributions like this. Should we have a separate place where
people can put contributions (like the file section of the google group)?
Regards
Simon- Hide quoted text -
- Show quoted text -
Thanks for the reply Jack. I'll need to see the code to help me parse
your responses:-)
I've turned on group member rights for uploading files so you can
upload you message service binding here. If you create a PECL bug for
this new feature (marking it as Caroline suggested) then you can
reference the uploaded file. That will help us track changes we make
to PHP SCA based on your new binding. Once you've uploaded it we can
start to take a look at it and give you some feedback.
In order to run this new binding do we also need changes to SAM?
Regards
Simon- Hide quoted text -
- Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
simonslaws-gM/Ye1E23mwN+
2007-07-06 15:39:15 UTC
Permalink
...snip
Post by Jack Zai
I've uploaded my code as an archive file - ms.zip.
Jack
Thanks Jack, I see it. I'll take a look.

Simon


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
Caroline Maynard
2007-07-06 16:04:40 UTC
Permalink
Post by Jack Zai
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.
Can you explain a bit more? In an enterprise environment I would imagine
the JMS service being started by some mechanism outside the scope of
your binding. So your command-line service, is that just a way to
bootstrap a JMS service locally?

I'm assuming that your SCA binding is a client only, that is, it
provides an SCA proxy to a remote JMS service, but not a wrapper for a
local service to be exposed to non-SCA JMS clients. Is that right?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
Jack Zai
2007-07-09 13:57:53 UTC
Permalink
My binding is not only a proxy to a JMS service, but also for exposing
a RPC-style message service. For example, assume we have a SCA file
MyService.php with soap binding. We can replace the annotation
@binding.soap with @binding.ms plus some config information about the
target queue. Now, if we issue command >php MyService.php, the
service will be started by running a listener to the target queue.
then incoming JMS messages at the target queue will be processed by
the wrapper and pass on to appropriate operation of the service. So in
this case, the message sender could be a non-SCA JMS client.

In addition, I am sorry for the wrong link to the spec, which should
be as below :
[pdf] http://www.osoa.org/download/attachments/35/SCA_JMSBinding_V100.pdf?version=2
Post by Caroline Maynard
Post by Jack Zai
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.
Can you explain a bit more? In an enterprise environment I would imagine
the JMS service being started by some mechanism outside the scope of
your binding. So your command-line service, is that just a way to
bootstrap a JMS service locally?
I'm assuming that your SCA binding is a client only, that is, it
provides an SCA proxy to a remote JMS service, but not a wrapper for a
local service to be exposed to non-SCA JMS clients. Is that right?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
simonslaws-gM/Ye1E23mwN+
2007-07-24 08:33:18 UTC
Permalink
Post by Jack Zai
My binding is not only a proxy to a JMS service, but also for exposing
a RPC-style message service. For example, assume we have a SCA file
MyService.php with soap binding. We can replace the annotation
@binding.soap with @binding.ms plus some config information about the
target queue. Now, if we issue command >php MyService.php, the
service will be started by running a listener to the target queue.
then incoming JMS messages at the target queue will be processed by
the wrapper and pass on to appropriate operation of the service. So in
this case, the message sender could be a non-SCA JMS client.
In addition, I am sorry for the wrong link to the spec, which should
[pdf]http://www.osoa.org/download/attachments/35/SCA_JMSBinding_V100.pdf?v...
Post by Caroline Maynard
Post by Jack Zai
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.
Can you explain a bit more? In an enterprise environment I would imagine
the JMS service being started by some mechanism outside the scope of
your binding. So your command-line service, is that just a way to
bootstrap a JMS service locally?
I'm assuming that your SCA binding is a client only, that is, it
provides an SCA proxy to a remote JMS service, but not a wrapper for a
local service to be exposed to non-SCA JMS clients. Is that right?
Hi Jack

Sorry this took such a long time for me to get to. I've just checked
your code in. Thank you.

I've changed the binding name from "ms" to "message". I think the
latter is a little more meaningful.
I've fixed up the class names etc but am unable to run/test it as
there are no test cases included

Based on the checked in code can you construct some test cases fur us?

Also I've created a new link on the web site [1] for the documentation
for this binding. If would be great if you could write a few words
describing how to use the binding and what its various features are.
We can then put that up there.

Regards

Simon

[1] http://www.osoa.org/display/PHP/SCA+with+PHP


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
Jack Zai
2007-07-25 16:02:37 UTC
Permalink
Hi Simon,

I checked out the code from EIDER branch, and made some changes.
Also I wrote some test cases for the message binding.

I've just uploaded a patch file patch.txt, which includes the changes
and test cases.

Thanks

Jack
Post by simonslaws-gM/Ye1E23mwN+
Post by Jack Zai
My binding is not only a proxy to a JMS service, but also for exposing
a RPC-style message service. For example, assume we have a SCA file
MyService.php with soap binding. We can replace the annotation
@binding.soap with @binding.ms plus some config information about the
target queue. Now, if we issue command >php MyService.php, the
service will be started by running a listener to the target queue.
then incoming JMS messages at the target queue will be processed by
the wrapper and pass on to appropriate operation of the service. So in
this case, the message sender could be a non-SCA JMS client.
In addition, I am sorry for the wrong link to the spec, which should
[pdf]http://www.osoa.org/download/attachments/35/SCA_JMSBinding_V100.pdf?v...
Post by Caroline Maynard
Post by Jack Zai
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.
Can you explain a bit more? In an enterprise environment I would imagine
the JMS service being started by some mechanism outside the scope of
your binding. So your command-line service, is that just a way to
bootstrap a JMS service locally?
I'm assuming that your SCA binding is a client only, that is, it
provides an SCA proxy to a remote JMS service, but not a wrapper for a
local service to be exposed to non-SCA JMS clients. Is that right?
Hi Jack
Sorry this took such a long time for me to get to. I've just checked
your code in. Thank you.
I've changed the binding name from "ms" to "message". I think the
latter is a little more meaningful.
I've fixed up the class names etc but am unable to run/test it as
there are no test cases included
Based on the checked in code can you construct some test cases fur us?
Also I've created a new link on the web site [1] for the documentation
for this binding. If would be great if you could write a few words
describing how to use the binding and what its various features are.
We can then put that up there.
Regards
Simon
[1]http://www.osoa.org/display/PHP/SCA+with+PHP- Hide quoted text -
- Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
simonslaws-gM/Ye1E23mwN+
2007-08-31 09:01:31 UTC
Permalink
Post by Jack Zai
Hi Simon,
I checked out the code from EIDER branch, and made some changes.
Also I wrote some test cases for the message binding.
I've just uploaded a patch file patch.txt, which includes the changes
and test cases.
Thanks
Jack
Post by simonslaws-gM/Ye1E23mwN+
Post by Jack Zai
My binding is not only a proxy to a JMS service, but also for exposing
a RPC-style message service. For example, assume we have a SCA file
MyService.php with soap binding. We can replace the annotation
@binding.soap with @binding.ms plus some config information about the
target queue. Now, if we issue command >php MyService.php, the
service will be started by running a listener to the target queue.
then incoming JMS messages at the target queue will be processed by
the wrapper and pass on to appropriate operation of the service. So in
this case, the message sender could be a non-SCA JMS client.
In addition, I am sorry for the wrong link to the spec, which should
[pdf]http://www.osoa.org/download/attachments/35/SCA_JMSBinding_V100.pdf?v...
Post by Caroline Maynard
Post by Jack Zai
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.
Can you explain a bit more? In an enterprise environment I would imagine
the JMS service being started by some mechanism outside the scope of
your binding. So your command-line service, is that just a way to
bootstrap a JMS service locally?
I'm assuming that your SCA binding is a client only, that is, it
provides an SCA proxy to a remote JMS service, but not a wrapper for a
local service to be exposed to non-SCA JMS clients. Is that right?
Hi Jack
Sorry this took such a long time for me to get to. I've just checked
your code in. Thank you.
I've changed the binding name from "ms" to "message". I think the
latter is a little more meaningful.
I've fixed up the class names etc but am unable to run/test it as
there are no test cases included
Based on the checked in code can you construct some test cases fur us?
Also I've created a new link on the web site [1] for the documentation
for this binding. If would be great if you could write a few words
describing how to use the binding and what its various features are.
We can then put that up there.
Regards
Simon
[1]http://www.osoa.org/display/PHP/SCA+with+PHP-Hide quoted text -
- Show quoted text -
Jack, sorry this took me a month to get to. Heads down doing Java
releases. Anyhow I have applied the patch locally and am seeing
notices when I run the tests which I assume are because I haven't yet
configure SAM in my PHP installation..

...I...........I.......PHP Notice: Use of undefined constant SAM_HOST
- assumed
'SAM_HOST' in C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo
\tests\SCA\php
unit\MessageBinding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_PORT - assumed 'SAM_PORT'
in C:\simon
\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBinding\MST
est.php on line 46
PHP Notice: Use of undefined constant SAM_BROKER - assumed
'SAM_BROKER' in C:\s
imon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBinding
\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_ENDPOINTS - assumed
'SAM_ENDPOINTS' i
n C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageB
inding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_TARGETCHAIN - assumed
'SAM_TARGETCHAI
N' in C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA
\phpunit\Mess
ageBinding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_BUS - assumed 'SAM_BUS' in
C:\simon\P
rojects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBinding\MSTes
t.php on line 46
PHP Notice: Use of undefined constant SAM_USERID - assumed
'SAM_USERID' in C:\s
imon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBinding
\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_PASSWORD - assumed
'SAM_PASSWORD' in
C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBin
ding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_CORRELID - assumed
'SAM_CORRELID' in
C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBin
ding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_DELIVERYMODE - assumed
'SAM_DELIVERYM
ODE' in C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA
\phpunit\Me
ssageBinding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_TIMETOLIVE - assumed
'SAM_TIMETOLIVE'
in C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA
\phpunit\Messag
eBinding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_PRIORITY - assumed
'SAM_PRIORITY' in
C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBin
ding\MSTest.php on line 46
PHP Fatal error: Class 'SAMMessage' not found in C:\simon\Projects
\Tuscany\php\
branch-build\pecl\sdo\tests\SCA\phpunit\MessageBinding\MSTest.php on
line 52

Before I go and do that I need to ask the question about whether we
want to make SAM a mandatory dependency. It maybe more appropriate to
have the tests raise a warning it SAM is not configured and skip onto
the next tests so that people without SAM are able to see the full
picture.

Also I note that some of the test files don't have copyright
headers.

As it's a month since you posted this do you have more changes to
submit and if so do you want me to apply these changes and then some
more or do you want to submit a new patch against FULMER with all of
the changes. Happy to do whichever is easier for you.

Thanks

Simon


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
Caroline Maynard
2007-09-03 23:15:14 UTC
Permalink
Post by simonslaws-gM/Ye1E23mwN+
Before I go and do that I need to ask the question about whether we
want to make SAM a mandatory dependency.
I don't think we can let SAM be a mandatory dependency. The tests should
simply be skipped if SAM is unavailable.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
Jack Zai
2007-09-04 11:00:57 UTC
Permalink
Post by Caroline Maynard
Post by simonslaws-gM/Ye1E23mwN+
Before I go and do that I need to ask the question about whether we
want to make SAM a mandatory dependency.
I don't think we can let SAM be a mandatory dependency. The tests should
simply be skipped if SAM is unavailable.
I agree that we should not make SAM a mandatory dependency at this
stage, and I'll fix the unit test.

The reason I chose SAM is not only because SAM provided a simple
solution for PHP applications to send and receive messages to
messaging brokers. But more importantly SAM has a generic extension
mechanism which makes it easy to add new support. Using SAM means the
messaging binding can talk to a number of different messaging and
queuing middleware systems without changing the binding itself.

Simon, I do have some other changes, I'll make a new patch later this
week.

Regards

Jack


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---
simonslaws-gM/Ye1E23mwN+
2007-09-10 17:33:01 UTC
Permalink
Post by Jack Zai
Hi Simon
i've fixed the tests, and made a new patch against FULMER with all of
the changes.
Thanks
Jack
Post by simonslaws-gM/Ye1E23mwN+
Post by Jack Zai
Hi Simon,
I checked out the code from EIDER branch, and made some changes.
Also I wrote some test cases for the message binding.
I've just uploaded a patch file patch.txt, which includes the changes
and test cases.
Thanks
Jack
Post by simonslaws-gM/Ye1E23mwN+
Post by Jack Zai
My binding is not only a proxy to a JMS service, but also for exposing
a RPC-style message service. For example, assume we have a SCA file
MyService.php with soap binding. We can replace the annotation
@binding.soap with @binding.ms plus some config information about the
target queue. Now, if we issue command >php MyService.php, the
service will be started by running a listener to the target queue.
then incoming JMS messages at the target queue will be processed by
the wrapper and pass on to appropriate operation of the service. So in
this case, the message sender could be a non-SCA JMS client.
In addition, I am sorry for the wrong link to the spec, which should
[pdf]http://www.osoa.org/download/attachments/35/SCA_JMSBinding_V100.pdf?v...
Post by Caroline Maynard
Post by Jack Zai
Unlike any of other bindings, where an http server is used for
listening to the ports, for the ms binding, a service is started from
a console (e.g. > php myservice.php). Once the service is started, it
will keep trying to get message from the queue, and it can be
terminated by pressing <Ctrl> + <C>.
Can you explain a bit more? In an enterprise environment I would imagine
the JMS service being started by some mechanism outside the scope of
your binding. So your command-line service, is that just a way to
bootstrap a JMS service locally?
I'm assuming that your SCA binding is a client only, that is, it
provides an SCA proxy to a remote JMS service, but not a wrapper for a
local service to be exposed to non-SCA JMS clients. Is that right?
Hi Jack
Sorry this took such a long time for me to get to. I've just checked
your code in. Thank you.
I've changed the binding name from "ms" to "message". I think the
latter is a little more meaningful.
I've fixed up the class names etc but am unable to run/test it as
there are no test cases included
Based on the checked in code can you construct some test cases fur us?
Also I've created a new link on the web site [1] for the documentation
for this binding. If would be great if you could write a few words
describing how to use the binding and what its various features are.
We can then put that up there.
Regards
Simon
[1]http://www.osoa.org/display/PHP/SCA+with+PHP-Hidequotedtext -
- Show quoted text -
Jack, sorry this took me a month to get to. Heads down doing Java
releases. Anyhow I have applied the patch locally and am seeing
notices when I run the tests which I assume are because I haven't yet
configure SAM in my PHP installation..
...I...........I.......PHP Notice: Use of undefined constant SAM_HOST
- assumed
'SAM_HOST' in C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo
\tests\SCA\php
unit\MessageBinding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_PORT - assumed 'SAM_PORT'
in C:\simon
\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBinding\MST
est.php on line 46
PHP Notice: Use of undefined constant SAM_BROKER - assumed
'SAM_BROKER' in C:\s
imon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBinding
\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_ENDPOINTS - assumed
'SAM_ENDPOINTS' i
n C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageB
inding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_TARGETCHAIN - assumed
'SAM_TARGETCHAI
N' in C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA
\phpunit\Mess
ageBinding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_BUS - assumed 'SAM_BUS' in
C:\simon\P
rojects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBinding\MSTes
t.php on line 46
PHP Notice: Use of undefined constant SAM_USERID - assumed
'SAM_USERID' in C:\s
imon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBinding
\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_PASSWORD - assumed
'SAM_PASSWORD' in
C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBin
ding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_CORRELID - assumed
'SAM_CORRELID' in
C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBin
ding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_DELIVERYMODE - assumed
'SAM_DELIVERYM
ODE' in C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA
\phpunit\Me
ssageBinding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_TIMETOLIVE - assumed
'SAM_TIMETOLIVE'
in C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA
\phpunit\Messag
eBinding\MSTest.php on line 46
PHP Notice: Use of undefined constant SAM_PRIORITY - assumed
'SAM_PRIORITY' in
C:\simon\Projects\Tuscany\php\branch-build\pecl\sdo\tests\SCA\phpunit
\MessageBin
ding\MSTest.php on line 46
PHP Fatal error: Class 'SAMMessage' not found in C:\simon\Projects
\Tuscany\php\
branch-build\pecl\sdo\tests\SCA\phpunit\MessageBinding\MSTest.php on
line 52
Before I go and do that I need to ask the question about whether we
want to make SAM a mandatory dependency. It maybe more appropriate to
have the tests raise a warning it SAM is not configured and skip onto
the next tests so that people without SAM are able to see the full
picture.
Also I note that some of the test files don't have copyright
headers.
As it's a month since you posted this do you have more changes to
submit and if so do you want me to apply these changes and then some
more or do you want to submit a new patch against FULMER with all of
the changes. Happy to do whichever is easier for you.
Thanks
Simon- Hide quoted text -
- Show quoted text -
Great thanks Jack, I'll take a look

Simon


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "phpsoa" group.
To post to this group, send email to phpsoa-/***@public.gmane.org
To unsubscribe from this group, send email to phpsoa-unsubscribe-/***@public.gmane.org
For more options, visit this group at http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---

Loading...