<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<!-- MHonArc v2.6.10 -->
	<channel>
		<title>rap-dev</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/maillist.html</link>
		<description>rap-dev</description>
		<language>en-us</language>
		<pubDate>Fri, 24 May 2013 14:40:12 GMT</pubDate>
		<lastBuildDate>Fri, 24 May 2013 14:40:12 GMT</lastBuildDate>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<generator>MHonArc RSS 2.0 RCFile</generator>
		<managingEditor>webmaster@eclipse.org (Webmaster)</managingEditor>
		<webMaster>webmaster@eclipse.org (Webmaster)</webMaster>
		<image>
			<title>rap-dev</title>
			<url>http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg</url>
			<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/maillist.html</link>
		</image>
 

	<item>
		<title>Re: [rap-dev] RAP &amp; CometD for real time web (Ralf Sternberg)</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01023.html</link>
		<description> </description>
		<content:encoded><![CDATA[<pre>Hi Simone, Michele,

thanks for your explanations. It's an interesting topic. I'm not sure
if the performance improvement has such a big impact for RAP - the
benchmarks you referred to consider a server load orders of magnitude
higher than what a typical RAP server deals with. However, combining
the RAP protocol with CometD would probably open up interesting
possibilities for applications.

As I see it, RAP cannot build directly on Bayeux/CometD, as it is
designed to work in many different environments and does not depend
specifically on Jetty. But a CometD bridge could well be implemented
as a plug-in that applications can use to take advantage of CometD's
extra features.

There is some preparation required to open up the framework for such
alternative transport implementations. We'll discuss that direction in
our planning for RAP 2.2.

Best regards,
Ralf


On Wed, May 22, 2013 at 2:27 PM, Simone Bordet &lt;simone.bordet@xxxxxxxxx&gt; wrote:
&gt; Ralf,
&gt;
&gt; On Tue, May 21, 2013 at 10:47 PM, Ralf Sternberg
&gt; &lt;rsternberg@xxxxxxxxxxxxxxxxx&gt; wrote:
&gt;&gt; Hi Michele, Simone,
&gt;&gt;
&gt;&gt; could you explain how CometD could improve the performance in RAP?
&gt;
&gt; With CometD we have experienced that a big part of the overhead is the
&gt; HTTP protocol itself.
&gt; Long polling techniques scale up to a certain point.
&gt; Look at the benchmark results we obtained:
&gt; <a  href="http://webtide.intalio.com/2011/09/cometd-2-4-0-websocket-benchmarks/">http://webtide.intalio.com/2011/09/cometd-2-4-0-websocket-benchmarks/</a>
&gt; The only difference was using WebSocket instead of HTTP.
&gt;
&gt;&gt; What are the preconditions for employing CometD? For example, can
&gt;&gt; CometD work with an existing servlet, or would it require that we use
&gt;&gt; a servlet that comes with CometD?
&gt;
&gt; You will have to deploy the CometD servlet instead of your current RAP
&gt; servlet that manages the RAP Protocol.
&gt;
&gt; I think the change could be quite simple for you: you can keep your
&gt; RAP Protocol as it is, only it will be carried by CometD's Bayeux
&gt; protocol.
&gt; Now, it is true that wrapping RAP messages inside Bayeux messages is
&gt; an overhead, but you get WebSocket for free :)
&gt; Our experience however, was that JSON parsing was never an bottleneck,
&gt; so parsing a couple more fields should be irrelevant.
&gt;
&gt; All the rest of the RAP message processing could be the same.
&gt; I am imagining that now you have something like:
&gt;
&gt; JS (client) -- RAPMessage --&gt; RAPServlet --&gt; RAPService
&gt;
&gt; With CometD you will have:
&gt;
&gt; JS (client) -- BayeuxMessage(RAPMessage) --&gt; CometDServlet --&gt; RAPService
&gt;
&gt; I never tried to expose the CometD servlet via OSGi, but I know people
&gt; have done that, so it's not a problem.
&gt;
&gt; I don't know much about RAP, but the kind of communication seems very
&gt; much client -&gt; server -&gt; client oriented.
&gt; CometD supports this case but also others (client -&gt; server -&gt;
&gt; broadcast to many clients), and of course also server -&gt; client.
&gt;
&gt; CometD offers you APIs for authentication &amp; authorization,
&gt; disconnection detection, message batching, page reload, JSON library
&gt; pluggability, Spring integration, multiple sessions handling (two tabs
&gt; with same application), lazy messages (non-urgent messages delivered
&gt; on first occasion), server-to-client message acknowledgement,
&gt; automatic disconnection of inactive clients, a scalability clustering
&gt; solution to scale on multiple nodes called Oort, and much more, with
&gt; rich documentation and tutorials at <a  href="http://docs.cometd.org">http://docs.cometd.org</a>.
&gt;
&gt; Note that CometD is a project based on Jetty, which also is under the
&gt; Eclipse umbrella (<a  href="http://eclipse.org/jetty">http://eclipse.org/jetty</a>).
&gt;
&gt; Let me know if you have more questions (not subscribed to rap-dev).
&gt;
&gt; Thanks !
&gt;
&gt; --
&gt; Simone Bordet
&gt; <a  href="http://bordet.blogspot.com">http://bordet.blogspot.com</a>
&gt; ---
&gt; Finally, no matter how good the architecture and design are,
&gt; to deliver bug-free software with optimal performance and reliability,
&gt; the implementation technique must be flawless.   Victoria Livschitz

</pre>]]></content:encoded>
		<pubDate>Fri, 24 May 2013 14:36:14 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01023.html</guid>
		<author>rsternberg@xxxxxxx (Ralf Sternberg)</author>
	</item>


	<item>
		<title>[rap-dev] Commit rights for Stefan R&#xC3;ck have been expired</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01022.html</link>
		<description>rt.rap.incubator Committers, Markus Knauer has expired the commit rights for Stefan =?UTF-8?Q?R=C3=B6ck?= (srock). The reason for this change is: Every year we are requested to review and to update the list of active committers on the Eclipse projects, and...</description>
		<content:encoded><![CDATA[<pre>rt.rap.incubator Committers,
Markus Knauer has expired the commit rights for Stefan =?UTF-8?Q?R=C3=B6ck?= (srock).  The
reason for this change is:

Every year we are requested to review and to update the list of active
committers on the Eclipse projects, and the deadline for this year's Kepler
release is approaching very fast.

Thank you for supporting the RAP project!



</pre>]]></content:encoded>
		<pubDate>Wed, 22 May 2013 18:40:01 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01022.html</guid>
		<author>portal-noreply@xxxxxxx (portal on behalf of emo)</author>
	</item>
	<item>
		<title>[rap-dev] Commit rights for Stefan R&#xC3;ck have been expired</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01021.html</link>
		<description>rt.rap Committers, Markus Knauer has expired the commit rights for Stefan =?UTF-8?Q?R=C3=B6ck?= (srock). The reason for this change is: Every year we are requested to review and to update the list of active committers on the Eclipse projects, and the deadl...</description>
		<content:encoded><![CDATA[<pre>rt.rap Committers,
Markus Knauer has expired the commit rights for Stefan =?UTF-8?Q?R=C3=B6ck?= (srock).  The
reason for this change is:

Every year we are requested to review and to update the list of active
committers on the Eclipse projects, and the deadline for this year's Kepler
release is approaching very fast.

Thanks you for supporting the RAP project!



</pre>]]></content:encoded>
		<pubDate>Wed, 22 May 2013 18:40:01 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01021.html</guid>
		<author>portal-noreply@xxxxxxx (portal on behalf of emo)</author>
	</item>
	<item>
		<title>Re: [rap-dev] RAP &amp; CometD for real time web (Ralf Sternberg)</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01020.html</link>
		<description></description>
		<content:encoded><![CDATA[<div dir="ltr">hi Ralf,<div style>I&#39;d like to stress this point:</div><div style><br></div><div class="gmail_extra"><i>&gt; I don&#39;t know much about RAP, but the kind of communication seems very<br>&gt; much client -&gt; server -&gt; client oriented.<br>

&gt; CometD supports this case but also others (client -&gt; server -&gt;<br>&gt; broadcast to many clients), and of course also <b>server -&gt; client</b>.</i></div><div class="gmail_extra"><br></div><div class="gmail_extra" style>

<b>server--&gt;client&#xA0;</b></div><div class="gmail_extra" style><br></div><div class="gmail_extra" style>This is the key for financial applications, ticking market data is what all City types want.</div><div class="gmail_extra" style>

And CometD does that very well, especially through WebSockets.</div><div class="gmail_extra" style><br></div><div class="gmail_extra" style><br></div><div class="gmail_extra" style>Michele :)</div><div class="gmail_extra">

<br><br><div class="gmail_quote">On 22 May 2013 14:27, Simone Bordet <span dir="ltr">&lt;<a href="mailto:simone.bordet@xxxxxxxxx" target="_blank">simone.bordet@xxxxxxxxx</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Ralf,<br>
<div class="im"><br>
On Tue, May 21, 2013 at 10:47 PM, Ralf Sternberg<br>
&lt;<a href="mailto:rsternberg@xxxxxxxxxxxxxxxxx">rsternberg@xxxxxxxxxxxxxxxxx</a>&gt; wrote:<br>
&gt; Hi Michele, Simone,<br>
&gt;<br>
&gt; could you explain how CometD could improve the performance in RAP?<br>
<br>
</div>With CometD we have experienced that a big part of the overhead is the<br>
HTTP protocol itself.<br>
Long polling techniques scale up to a certain point.<br>
Look at the benchmark results we obtained:<br>
<a href="http://webtide.intalio.com/2011/09/cometd-2-4-0-websocket-benchmarks/" target="_blank">http://webtide.intalio.com/2011/09/cometd-2-4-0-websocket-benchmarks/</a><br>
The only difference was using WebSocket instead of HTTP.<br>
<div class="im"><br>
&gt; What are the preconditions for employing CometD? For example, can<br>
&gt; CometD work with an existing servlet, or would it require that we use<br>
&gt; a servlet that comes with CometD?<br>
<br>
</div>You will have to deploy the CometD servlet instead of your current RAP<br>
servlet that manages the RAP Protocol.<br>
<br>
I think the change could be quite simple for you: you can keep your<br>
RAP Protocol as it is, only it will be carried by CometD&#39;s Bayeux<br>
protocol.<br>
Now, it is true that wrapping RAP messages inside Bayeux messages is<br>
an overhead, but you get WebSocket for free :)<br>
Our experience however, was that JSON parsing was never an bottleneck,<br>
so parsing a couple more fields should be irrelevant.<br>
<br>
All the rest of the RAP message processing could be the same.<br>
I am imagining that now you have something like:<br>
<br>
JS (client) -- RAPMessage --&gt; RAPServlet --&gt; RAPService<br>
<br>
With CometD you will have:<br>
<br>
JS (client) -- BayeuxMessage(RAPMessage) --&gt; CometDServlet --&gt; RAPService<br>
<br>
I never tried to expose the CometD servlet via OSGi, but I know people<br>
have done that, so it&#39;s not a problem.<br>
<br>
I don&#39;t know much about RAP, but the kind of communication seems very<br>
much client -&gt; server -&gt; client oriented.<br>
CometD supports this case but also others (client -&gt; server -&gt;<br>
broadcast to many clients), and of course also server -&gt; client.<br>
<br>
CometD offers you APIs for authentication &amp; authorization,<br>
disconnection detection, message batching, page reload, JSON library<br>
pluggability, Spring integration, multiple sessions handling (two tabs<br>
with same application), lazy messages (non-urgent messages delivered<br>
on first occasion), server-to-client message acknowledgement,<br>
automatic disconnection of inactive clients, a scalability clustering<br>
solution to scale on multiple nodes called Oort, and much more, with<br>
rich documentation and tutorials at <a href="http://docs.cometd.org" target="_blank">http://docs.cometd.org</a>.<br>
<br>
Note that CometD is a project based on Jetty, which also is under the<br>
Eclipse umbrella (<a href="http://eclipse.org/jetty" target="_blank">http://eclipse.org/jetty</a>).<br>
<br>
Let me know if you have more questions (not subscribed to rap-dev).<br>
<br>
Thanks !<br>
<br>
--<br>
Simone Bordet<br>
<a href="http://bordet.blogspot.com" target="_blank">http://bordet.blogspot.com</a><br>
---<br>
Finally, no matter how good the architecture and design are,<br>
to deliver bug-free software with optimal performance and reliability,<br>
the implementation technique must be flawless. &#xA0; Victoria Livschitz<br>
</blockquote></div><br></div></div>
]]></content:encoded>
		<pubDate>Wed, 22 May 2013 12:31:19 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01020.html</guid>
		<author>michele.rossi@xxxxxxx (Michele Rossi)</author>
	</item>
	<item>
		<title>[rap-dev] Commit rights for Joel Oliveira have been expired</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01019.html</link>
		<description>rt.rap Committers, Markus Knauer has expired the commit rights for Joel Oliveira (joliveira). The reason for this change is: Every year we are requested to review and to update the list of active committers on the Eclipse projects, and the deadline for thi...</description>
		<content:encoded><![CDATA[<pre>rt.rap Committers,
Markus Knauer has expired the commit rights for Joel Oliveira (joliveira). 
The reason for this change is:

Every year we are requested to review and to update the list of active
committers on the Eclipse projects, and the deadline for this year's Kepler
release is approaching very fast.

Thanks you for supporting the RAP project!



</pre>]]></content:encoded>
		<pubDate>Wed, 22 May 2013 10:28:02 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01019.html</guid>
		<author>portal-noreply@xxxxxxx (portal on behalf of emo)</author>
	</item>
	<item>
		<title>[rap-dev] Commit rights for Istvan Ballok have been expired</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01018.html</link>
		<description>rt.rap Committers, Markus Knauer has expired the commit rights for Istvan Ballok (iballok). The reason for this change is: Every year we are requested to review and to update the list of active committers on the Eclipse projects, and the deadline for this ...</description>
		<content:encoded><![CDATA[<pre>rt.rap Committers,
Markus Knauer has expired the commit rights for Istvan Ballok (iballok). 
The reason for this change is:

Every year we are requested to review and to update the list of active
committers on the Eclipse projects, and the deadline for this year's Kepler
release is approaching very fast.

Thanks you for supporting the RAP project!



</pre>]]></content:encoded>
		<pubDate>Wed, 22 May 2013 10:28:01 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01018.html</guid>
		<author>portal-noreply@xxxxxxx (portal on behalf of emo)</author>
	</item>
	<item>
		<title>[rap-dev] Commit rights for Istvan Ballok have been expired</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01017.html</link>
		<description>rt.rap.incubator Committers, Markus Knauer has expired the commit rights for Istvan Ballok (iballok). The reason for this change is: Every year we are requested to review and to update the list of active committers on the Eclipse projects, and the deadline...</description>
		<content:encoded><![CDATA[<pre>rt.rap.incubator Committers,
Markus Knauer has expired the commit rights for Istvan Ballok (iballok). 
The reason for this change is:

Every year we are requested to review and to update the list of active
committers on the Eclipse projects, and the deadline for this year's Kepler
release is approaching very fast.

Thanks you for supporting the RAP project!



</pre>]]></content:encoded>
		<pubDate>Wed, 22 May 2013 10:27:01 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01017.html</guid>
		<author>portal-noreply@xxxxxxx (portal on behalf of emo)</author>
	</item>


	<item>
		<title>Re: [rap-dev] RAP &amp; CometD for real time web (Ralf Sternberg)</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01016.html</link>
		<description> </description>
		<content:encoded><![CDATA[<pre>Hi Michele, Simone,

could you explain how CometD could improve the performance in RAP?

What are the preconditions for employing CometD? For example, can
CometD work with an existing servlet, or would it require that we use
a servlet that comes with CometD?

Thanks,
Ralf
Ralf Sternberg
Project Lead, Remote Application Platform (RAP)
EclipseSource

Tel: +49 721 66 47 33-0

Innoopract Informationssysteme GmbH
Lammstra&#xC3;e 21, 76133 Karlsruhe, Germany
General Manager: Jochen Krause
Registered Office: Karlsruhe, Commercial Register Mannheim HRB 107883


On Sun, May 19, 2013 at 10:02 AM, Michele Rossi &lt;michele.rossi@xxxxxxxxx&gt; wrote:
&gt; hi Ralf,
&gt; I am adding Simone Bordet to this conversation, he is the &quot;daddy&quot; of CometD
&gt; and he might want to comment too.
&gt;
&gt; From what you say it sounds like you are using a protocol / communication
&gt; technique that is related to Bayeux and CometD but a lot less developed.
&gt;
&gt; High performance real time updates are especially important for financial
&gt; applications.
&gt; Being able to show a demo of an application that works both as Eclipse RCP
&gt; and Eclipse RAP and showing a grid with high speed ticking market data would
&gt; probably attract the attention of a whole new group of people.
&gt;
&gt; There might be scope for a marriage of convenience here :)
&gt;
&gt;
&gt; thanks,
&gt; Michele
&gt;
&gt;
&gt;
&gt; From: Ralf Sternberg &lt;rsternberg@xxxxxxxxxxxxxxxxx&gt;
&gt; To: RAP project development-related communication
&gt;         &lt;rap-dev@xxxxxxxxxxx&gt;
&gt; Subject: Re: [rap-dev] RAP &amp; CometD for real time web
&gt; Message-ID:
&gt;         &lt;CAMr=csq2q_mZRxhd4Rz=W5LhvFtOm3RZ=T7hnhUBFF_TAxY5RA@xxxxxxxxxxxxxx&gt;
&gt; Content-Type: text/plain; charset=UTF-8
&gt;
&gt; Hi Michele,
&gt;
&gt; thanks for bringing this up. Supporting advanced push technologies is
&gt; an interesting topic for RAP, we just didn't find the time to look
&gt; deeper into it yet.
&gt;
&gt; The RAP server is built on the HttpServlet API, it registers a
&gt; servlet, distinguishes user sessions based on the HttpSession, etc.
&gt; When run on OSGi, the RAP servlet is registered with the HttpService.
&gt; Clients send HTTP POST requests, the default web client uses XHR to do
&gt; so. There are other clients (currently for Android and iOS) that use
&gt; third-party HTTP client implementations. RAP has a server push
&gt; mechanism that can be enabled by applications when needed, this
&gt; mechanism uses the classic long polling (Comet) approach. Advanced
&gt; technologies such as WebSockets are currently not supported.
&gt;
&gt; I'm not familiar with CometD and can't tell what has to be done to
&gt; integrate it with RAP. There is no support for pluggable transports in
&gt; RAP, but since all client-server communication is based on JSON, it
&gt; should be generally possible to support alternative transports /
&gt; protocols.
&gt;
&gt; If you'd like to help to investigate this topic, your help is very
&gt; appreciated. It would be a great project for the RAP Incubator!
&gt;
&gt; Best regards,
&gt; Ralf
&gt;
&gt;
&gt; On Thu, May 16, 2013 at 3:40 PM, Michele Rossi &lt;michele.rossi@xxxxxxxxx&gt;
&gt; wrote:
&gt;&gt; hi all,
&gt;&gt; I am very new to RAP having only found out about it last night so please
&gt;&gt; forgive me if my questions don't appear to be too relevant.
&gt;&gt;
&gt;&gt; I am very curious about RAP specifically for the possibility of building
&gt;&gt; dual target rich internet applications re-using Eclipse RCP code.
&gt;&gt;
&gt;&gt; I have read about the half-object RAP protocol and found it very
&gt;&gt; interesting.
&gt;&gt;
&gt;&gt; I have read that it's based on JSON and I have seen examples about the
&gt;&gt; JSON
&gt;&gt; messages but I couldn't find anything on the type of transport used by RAP
&gt;&gt; Javascript GUIs to communicate with their servers.
&gt;&gt;
&gt;&gt; I assume that it's a variation of HTTP (XHR?) and I am interested in how
&gt;&gt; and
&gt;&gt; if the procotol covers server to web client data push.
&gt;&gt;
&gt;&gt; I am asking this question because I am quite familiar with CometD, a Java
&gt;&gt; framework that implements the Bayeux protcol leveraging some bits of
&gt;&gt; Jetty.
&gt;&gt; CometD provides a very fast and efficient way to implement server-to-web
&gt;&gt; push.
&gt;&gt; The protocol is message based (not request reply) and it works with a
&gt;&gt; number
&gt;&gt; of transport level protocols such as HTTP Long Polling and WebSockets.
&gt;&gt; It uses JSON as a message representation format.
&gt;&gt; It has a Java and JavaScript client side libraries - the latter
&gt;&gt; automatically chooses the best transport available trying to use
&gt;&gt; WebSockets
&gt;&gt; if the browser supports it.
&gt;&gt;
&gt;&gt;
&gt;&gt; This is a very long shot but I had the feeling that RAP and CometD
&gt;&gt; together
&gt;&gt; would be very fantastic.
&gt;&gt; This is a statement made without knowing much about RAP so please take it
&gt;&gt; for what it's worth.
&gt;&gt;
&gt;&gt; Is there a way to plug in different transports / protocols in RAP?
&gt;&gt;
&gt;&gt; Any comments on this would be really appreciated.
&gt;&gt;
&gt;&gt; thanks,
&gt;&gt; Michele

</pre>]]></content:encoded>
		<pubDate>Tue, 21 May 2013 20:47:42 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01016.html</guid>
		<author>rsternberg@xxxxxxx (Ralf Sternberg)</author>
	</item>


	<item>
		<title>Re: [rap-dev] RAP &amp; CometD for real time web (Ralf Sternberg)</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01015.html</link>
		<description> </description>
		<content:encoded><![CDATA[<div dir="ltr">hi Ralf,<div>I am adding Simone Bordet to this conversation, he is the &quot;daddy&quot; of CometD and he might want to comment too.</div><div><br></div><div>From what you say it sounds like you are using a protocol / communication technique that is related to Bayeux and CometD but a lot less developed.</div>

<div><br></div><div style>High performance real time updates are especially important for financial applications.</div><div style>Being able to show a demo of an application that works both as Eclipse RCP and Eclipse RAP and showing a grid with high speed ticking market data would probably attract the attention of a whole new group of people.</div>

<div><br></div><div>There might be scope for a marriage of convenience here :)</div><div><br></div><div><br></div><div>thanks,</div><div>Michele<br><div><br></div><div><br></div><div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">From: Ralf Sternberg &lt;</span><a href="mailto:rsternberg@xxxxxxxxxxxxxxxxx" style="font-family:arial,sans-serif;font-size:13px">rsternberg@xxxxxxxxxxxxxxxxx</a><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">To: RAP project development-related communication</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&#xA0; &#xA0; &#xA0; &#xA0; &lt;</span><a href="mailto:rap-dev@xxxxxxxxxxx" style="font-family:arial,sans-serif;font-size:13px">rap-dev@xxxxxxxxxxx</a><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">Subject: Re: [rap-dev] RAP &amp; CometD for real time web</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Message-ID:</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&#xA0; &#xA0; &#xA0; &#xA0; &lt;CAMr=csq2q_mZRxhd4Rz=</span><span style="font-family:arial,sans-serif;font-size:13px">W5LhvFtOm3RZ=</span><a href="mailto:T7hnhUBFF_TAxY5RA@xxxxxxxxxxxxxx" style="font-family:arial,sans-serif;font-size:13px">T7hnhUBFF_TAxY5RA@xxxxxxxxxxxxxx</a><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">Content-Type: text/plain; charset=UTF-8</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Hi Michele,</span><br style="font-family:arial,sans-serif;font-size:13px">

<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">thanks for bringing this up. Supporting advanced push technologies is</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">an interesting topic for RAP, we just didn&#39;t find the time to look</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">deeper into it yet.</span><br style="font-family:arial,sans-serif;font-size:13px">

<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">The RAP server is built on the HttpServlet API, it registers a</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">servlet, distinguishes user sessions based on the HttpSession, etc.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">When run on OSGi, the RAP servlet is registered with the HttpService.</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">Clients send HTTP POST requests, the default web client uses XHR to do</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">so. There are other clients (currently for Android and iOS) that use</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">third-party HTTP client implementations. RAP has a server push</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">mechanism that can be enabled by applications when needed, this</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">mechanism uses the classic long polling (Comet) approach. Advanced</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">technologies such as WebSockets are currently not supported.</span><br style="font-family:arial,sans-serif;font-size:13px">

<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">I&#39;m not familiar with CometD and can&#39;t tell what has to be done to</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">integrate it with RAP. There is no support for pluggable transports in</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">RAP, but since all client-server communication is based on JSON, it</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">should be generally possible to support alternative transports /</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">protocols.</span><br style="font-family:arial,sans-serif;font-size:13px">

<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">If you&#39;d like to help to investigate this topic, your help is very</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">appreciated. It would be a great project for the RAP Incubator!</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">Best regards,</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Ralf</span><br style="font-family:arial,sans-serif;font-size:13px">

<br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">On Thu, May 16, 2013 at 3:40 PM, Michele Rossi &lt;</span><a href="mailto:michele.rossi@xxxxxxxxx" style="font-family:arial,sans-serif;font-size:13px">michele.rossi@xxxxxxxxx</a><span style="font-family:arial,sans-serif;font-size:13px">&gt; wrote:</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; hi all,</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; I am very new to RAP having only found out about it last night so please</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; forgive me if my questions don&#39;t appear to be too relevant.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; I am very curious about RAP specifically for the possibility of building</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; dual target rich internet applications re-using Eclipse RCP code.</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; I have read about the half-object RAP protocol and found it very</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; interesting.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; I have read that it&#39;s based on JSON and I have seen examples about the JSON</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; messages but I couldn&#39;t find anything on the type of transport used by RAP</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; _javascript_ GUIs to communicate with their servers.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; I assume that it&#39;s a variation of HTTP (XHR?) and I am interested in how and</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; if the procotol covers server to web client data push.</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; I am asking this question because I am quite familiar with CometD, a Java</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; framework that implements the Bayeux protcol leveraging some bits of Jetty.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; CometD provides a very fast and efficient way to implement server-to-web</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; push.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; The protocol is message based (not request reply) and it works with a number</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; of transport level protocols such as HTTP Long Polling and WebSockets.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; It uses JSON as a message representation format.</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; It has a Java and _javascript_ client side libraries - the latter</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; automatically chooses the best transport available trying to use WebSockets</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; if the browser supports it.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; This is a very long shot but I had the feeling that RAP and CometD together</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; would be very fantastic.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; This is a statement made without knowing much about RAP so please take it</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; for what it&#39;s worth.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; Is there a way to plug in different transports / protocols in RAP?</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; Any comments on this would be really appreciated.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt;</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">&gt; thanks,</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">&gt; Michele</span><br></div>
</div>
</div>
]]></content:encoded>
		<pubDate>Sun, 19 May 2013 08:02:26 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01015.html</guid>
		<author>michele.rossi@xxxxxxx (Michele Rossi)</author>
	</item>


	<item>
		<title>Re: [rap-dev] RAP &amp; CometD for real time web</title>
		<link>http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01014.html</link>
		<description> </description>
		<content:encoded><![CDATA[<pre>Hi Michele,

thanks for bringing this up. Supporting advanced push technologies is
an interesting topic for RAP, we just didn't find the time to look
deeper into it yet.

The RAP server is built on the HttpServlet API, it registers a
servlet, distinguishes user sessions based on the HttpSession, etc.
When run on OSGi, the RAP servlet is registered with the HttpService.
Clients send HTTP POST requests, the default web client uses XHR to do
so. There are other clients (currently for Android and iOS) that use
third-party HTTP client implementations. RAP has a server push
mechanism that can be enabled by applications when needed, this
mechanism uses the classic long polling (Comet) approach. Advanced
technologies such as WebSockets are currently not supported.

I'm not familiar with CometD and can't tell what has to be done to
integrate it with RAP. There is no support for pluggable transports in
RAP, but since all client-server communication is based on JSON, it
should be generally possible to support alternative transports /
protocols.

If you'd like to help to investigate this topic, your help is very
appreciated. It would be a great project for the RAP Incubator!

Best regards,
Ralf


On Thu, May 16, 2013 at 3:40 PM, Michele Rossi &lt;michele.rossi@xxxxxxxxx&gt; wrote:
&gt; hi all,
&gt; I am very new to RAP having only found out about it last night so please
&gt; forgive me if my questions don't appear to be too relevant.
&gt;
&gt; I am very curious about RAP specifically for the possibility of building
&gt; dual target rich internet applications re-using Eclipse RCP code.
&gt;
&gt; I have read about the half-object RAP protocol and found it very
&gt; interesting.
&gt;
&gt; I have read that it's based on JSON and I have seen examples about the JSON
&gt; messages but I couldn't find anything on the type of transport used by RAP
&gt; Javascript GUIs to communicate with their servers.
&gt;
&gt; I assume that it's a variation of HTTP (XHR?) and I am interested in how and
&gt; if the procotol covers server to web client data push.
&gt;
&gt; I am asking this question because I am quite familiar with CometD, a Java
&gt; framework that implements the Bayeux protcol leveraging some bits of Jetty.
&gt; CometD provides a very fast and efficient way to implement server-to-web
&gt; push.
&gt; The protocol is message based (not request reply) and it works with a number
&gt; of transport level protocols such as HTTP Long Polling and WebSockets.
&gt; It uses JSON as a message representation format.
&gt; It has a Java and JavaScript client side libraries - the latter
&gt; automatically chooses the best transport available trying to use WebSockets
&gt; if the browser supports it.
&gt;
&gt;
&gt; This is a very long shot but I had the feeling that RAP and CometD together
&gt; would be very fantastic.
&gt; This is a statement made without knowing much about RAP so please take it
&gt; for what it's worth.
&gt;
&gt; Is there a way to plug in different transports / protocols in RAP?
&gt;
&gt; Any comments on this would be really appreciated.
&gt;
&gt; thanks,
&gt; Michele
&gt;
&gt;
&gt;
&gt; _______________________________________________
&gt; rap-dev mailing list
&gt; rap-dev@xxxxxxxxxxx
&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/rap-dev">https://dev.eclipse.org/mailman/listinfo/rap-dev</a>
&gt;

</pre>]]></content:encoded>
		<pubDate>Thu, 16 May 2013 20:14:04 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/rap-dev/msg01014.html</guid>
		<author>rsternberg@xxxxxxx (Ralf Sternberg)</author>
	</item>

 
	</channel>
	</rss>
<!-- MHonArc v2.6.10 -->
