BlazeDS: Open Sourcing Remoting and Messaging

Today is yet another exciting day for the Flex community and for the world of Rich Internet applications… Adobe is announcing plans to release its Remoting and Messaging technologies under a new open source product named BlazeDS.

The news is probably all over the blogs, but I thought I would summarize the key points:

  • The Remoting and Messaging technology previously available only as part of LiveCycle Data Services will now be available for free as a new Open Source product called BlazeDS (under LGPL v3 license).
  • The public beta of BlazeDS is available for download here (the GA version is scheduled for early 2008).
  • As part of this announcement, the Action Message Format (AMF) protocol specification is also being published. The spec is available here.
  • The JIRA bugbase is available here.


Additional Information:

  • BlazeDS includes a new HTTP Streaming channel for real time applications that require very low latency. The sample applications packaged with BlazeDS provide examples of real time market data streaming and collaborative applications built with BlazeDS and using the new HTTP Streaming channel (the RTMP protocol is not included in BlazeDS).
  • In addition to the BlazeDS war file, the BlazeDS download includes a version of Tomcat (6.0.14) with a series of web applications fully configured with BlazeDS (including blazeds-sample).

Getting Started:

  1. Download the BlazeDS beta 1 zip file here
  2. Expand it on your local file system (for example in a /blazeds directory)
  3. Start Tomcat (startup.bat or startup.sh in /blazeds/tomcat/bin)
  4. Open a browser and access the samples home page: http://localhost:8400/blazeds-samples/
  5. Take the test drive!

Background Information on Messaging:

The Message Service provides a complete publish/subscribe infrastructure allowing Flex clients and the server to exchange messages in real time. The Message Service is made of two key components: a message service running in the application server, and a client-side API. The message service manages a set of destinations. The client-side API allows Flex clients to publish and subscribe to these destinations.

The Message Service enables data push, and collaborative applications to be delivered in the browser in a reliable and scalable manner while preserving the benefits of the traditional web deployment model.

The Message Service can integrate with existing messaging systems through an adapter architecture. A JMS adapter is available out-of-the-box. Using the JMS adapter, you can map BlazeDS messaging destinations to JMS topics, allowing Flex clients to publish and subscribe to JMS topics.

Background Information on Remoting:

Remoting allows a Flex applications to directly invoke methods of Java objects deployed in your application server. The benefits of Remoting include performance and the straightforward programming model.

Additional Offerings:

  • Adobe will also offer “Adobe LiveCycle Data Services, Community Edition”, a subscription offering that includes certified builds of BlazeDS, enterprise support, etc.
  • LiveCycle Data Services ES (the commercial product) will continue to exist and will focus on higher level APIs: such as Data Management Services, Portal Integration, Offline Synchronization, etc.
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • LinkedIn
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis

85 Comments

  1. So this is the big huge surprise you were talking about at Flex Camp in Boston this past Friday. Very cool.

  2. arpit Says:

    Holy S*** !!! Wasn’t this Flex Data Services?

    BTW, you completely ruined Ted Patrick’s build up to this announcement on his blog ;).

  3. [...] am so excited, I better post this before I pass out . Christophe Coenraets just announced on his blog that Adobe just open sourced the Flash/Flex Remoting and Messaging services under the name BlazeDS. [...]

  4. Awesome! Flex is already a highly productive framework, but with a fully open source stack it’s getting sweeter and sweeter. Thanks for the AMF spec too.

  5. [...] Voici le titre du post de Christophe Coenraets. [...]

  6. [...] y Messaging Open source! Otro impresionante movimiento de Adobe! Podemos leer en el post de Christophe Coenraets que Adobe va a liberar como Open Source con licencia LGPL v3 los protocolos de Remoting Object y [...]

  7. wowo! that´s really great news!

  8. denster Says:

    Christophe,

    Does the current BlazeDS release on labs offer any channels with http “connection holding” capability, as defined in:

    http://www.xmpp.org/extensions/xep-0124.html

    The section titled “The BOSH Technique” outlines a strategy to fool the client-side TCP state machine in a way that’s both firewall friendly *and* scales well in a server environment.

    From what I understand, this isn’t possible in a standard J2EE web app (where the thread lifecycle is tied closely to the request/response being read/written to a socket), but I think Jetty has the ability to do this with its Continuations API.

    So, my real question is, if there isn’t a channel that provides this functionality, would it be at least reasonable to guess that I could go off and implement one without *a lot* of trouble? Or would this be something that BlazeDS architecturally doesn’t support? Better yet, any chance Adobe would want to implement a channel like this and contribute it to the community? ;-)

    Thanks for any/all advice!
    Cheers,
    denster

  9. denster Says:

    Christophe,

    I just looked into how Streaming[AMF|Http]Endpoint works, and it seems like it’s holding the connection, but actually sending http data over it periodically, to “keep it alive”.

    This is a taboo with some firewalls/proxies, from what I understand, whereas the method described in:

    http://www.xmpp.org/extensions/xep-0124.html

    “The BOSH Technique” would be firewall/proxy friendly.

    Any chance you can confirm my suspicions of how the current endpoints work, and on Adobe’s interest to make a true BOSH-style endpoint?

    As an interesting aside, meebo implements the BOSH style of connection holding correctly. (That is, their mechanism works with both http 1.0/1.1, is firewall/proxy friendly, and is relatively performance-friendly on the server-side.)

    Thanks!
    denster

  10. [...] Christophe Coenraets, publicou sua visão sobre o novo lançamento da Adobe e os futuros planos. [...]

  11. Ken Dunnington Says:

    Great news, Christophe! Will this have any effect on the remoting/messaging that ships with ColdFusion?

  12. How does the new AMF Streaming Channel relate to RTMP performance wise? Seems as if there is no RTMP endpoint in BlazeDS.

    Also, will there still be a LCDS Express Edition (including RTMP) around when LCDS/BlazeDS Community Edition gets released in 2008? If not, that would be tough for some of our customers!

  13. [...] info: BlazeDS: Open Sourcing Remoting and Messaging These icons link to social bookmarking sites where readers can share and discover new web [...]

  14. [...] 2008. Until then try the beta and check the AMF binary data protocoll specification! This is huge! Christophe Coenraets blogged a nice introduction and check the press release for more info. Last but not least BRIO beta was released a few days [...]

  15. This is amazing news! Adobe rocks! Open source rocks! :D

  16. christophe Says:

    Denster,
    In addition to the HTTP Streaming channel, we do support “Long Polling”. This is achieved by setting the wait-interval-millis property in a polling channel definition.

    Also, you can configure a list of channels for your destinations. For example the first channel in the list could be an HTTP Streaming channel, and the second channel could be a Long Polling channel. If for some reason, the HTTP Streaming connection failed, the application would automatically fall back to the second channel in the list. You can also use a “long polling” channel only if that’s a better fit for you.

    Documentation for the messaging channels is available here: http://livedocs.adobe.com/labs/blazeds/html/index.html

    Go to Getting Started with Data Services Applications > The Messaging Framework

    Christophe

  17. christophe Says:

    Hi Dirk,
    We don’t have benchmarks yet comparing the HTTP Streaming channel vs RTMP. Also there is no plan to discontinue LCDS Express.
    Christophe

  18. Pierre-Yves Says:

    Serious use of BlazedDS in J2EE applications would require integrating a library with a public API into the application. I can’t imagine anybody using either of the proposed versions (integrated tomcat and war) in a serious application. We need a way to expose existing services in existing applications through RemoteObjects, the same way we do this with WebServices, RMI, HttpInvoker, Hessian, etc.
    How can we use RemoteObjects in a normal J2EE application? We don’t need a server. If we have a J2EE app, we already have a server. The question is how to add RemoteObjects to our applciation, not how to add our application to the BlazedDS server!

  19. christophe Says:

    Pierre-Yves,
    The goal of the pre-configured Tomcat server that we ship with BlazeDS is only to give developers an easy way to run the samples out-of-the-box. We are not at all suggesting that this is the server you should use in your production environment. The way to use BlazeDS is indeed to let you integrate the BlazeDS libraries in your own app on your own application server. The high level instructions to do this are: (1) copy the jar files available in WEB-INF\lib of blazeds.war to the WEB-INF\lib of your own app, (2) copy the WEB-INF\flex directory from blazeds.war to WEB-INF\flex in your own app, and (3) add the listener, servlet and servlet mapping defined in web.xml in blazeds.war to your own web.xml.
    Christophe

  20. Dung Nguyen Says:

    I am new be in Flex and BlazeDS.
    In eclipse WTP, Blazeds-Samples stoped working when I change root context from blazeds-samples to blazedssamples or anything else.

    Could you help me to find out why it is?

    Thanks!
    Dung.

  21. moonunit Says:

    The test drive was interesting. I got it up and running in no time flat.

    While interesting, it was less of a drive was more like being a passenger. ‘Driving’ implies ‘doing’ and doing isn’t possible because Adobe has neglected to include any Getting Started documentation whatsoever.

    The test drive felt more like pottering around in a scrap yard for the weekend, picking up obscure bits of junk and trying to figure out what they do in order to build a car.

    If you are trying to attract new (key word: NEW) users to your technology, providing something to get them started would have been sensible especially after putting out the invitation. My idea of test driving and learning doesn’t extend to spending a weekend with my head buried in obscure configuration files and randomly fiddling with Eclipse settings.

    For a corporation worth $25 billion, couldn’t Adobe could have stretched itself to providing a ten page pdf?

    I criticize Adobe very reluctantly, since this is a good thing Adobe has done. It’s free and a lot of people have obviously put huge amounts of time and effort into making it happen. Bizarre then that it was allowed to fall so flat.

    Can’t help noticing that the BlazeDS forum is virtually void of any activity till now. Couldn’t help wondering why, since this is actually a great product. Perhaps people just can’t be bothered to plough through your test drive without appropriately targeted documentation?

  22. moonunit Says:

    Forgot to mention this. It says in my post above:-

    > The test drive was interesting. I got it up
    > and running in no time flat.

    That was ‘on a mac’ up and running in no time flat. Why did your download page mention everything except Apple Mac’s, especially since it takes only a few minutes to install it on a mac?

    Perhaps Adobe should be given the benefit of the doubt, but the endless rumors about Adobe having some grudge against Apple are apparently not lacking in evidence.

    Anyhow, just another test drive time waster and irritation.

  23. lowdown Says:

    Dang moonunit, bitch more?

    Thanks for the update Christophe.

  24. Marcel Overdijk Says:

    Hi Christophe,

    I’m trying your spring-flex integration example 1 with BlazeDS. However I got the following error:

    [RPC Fault faultString=”[MessagingError message=’Destination ‘mortgageService’ has no channels defined and the application does not define any default channels.’]” faultCode=”InvokeFailed” faultDetail=”Couldn’t establish a connection to ‘mortgageService’”]

    Any clue?

  25. Add the 2 following compilers options in your Flex
    project and u should be all set.

    -context-root=[name of your web context]
    -services=[Location of the services-config.xml]

    Example on Windows:
    ——————-
    -context-root=blazeds -services=C:/DEV-APPLICATIONS/workspace-eclipseJDK15/blazeds/WebContent/WEB-INF/flex/services-config.xml

  26. Dan Zeitman Says:

    Christophe -

    Thanks for the quick info on setting up and running blazeds.

    No problems with running most of the samples.

    I’m a flex developer - Using flexbuilder. I prefer CF dev, but I’ve also installed eclipse to learn java as well. -

    Can you spend brief moment to blog about setting up flexbuilder sa OR ECLIPSE to get busy compiling the java classes.

    Or better yet, Flexbuilder comes with a great cfc wizard to build the assemblers and dao, etc… (Coldfusion would be my pref) Both you and Ben Forta have been gushing about this stuff at Flex Camps for months…

    I think I’m not alone in my confusion of what’s the best path here.

    Please provide some enlightenment!

  27. Bouiaw Says:

    The error has been identified, Acegi/BlazeDS integration is working !

    More details on http://code.google.com/p/igenko/wiki/FlexDataServices

  28. [...] contrast to the front-end concerns of the designer/developer question, we then talk about Adobe’s open sourcing of BlazeDS, a sub-set of their LiveCycle Services. BlazeDS, boiled down, is a messaging framework and protocol [...]

  29. [...] Christophe Coenraets » BlazeDS: Open Sourcing Remoting and Messaging (tags: adobe flex blazeds data messaging opensource ria redmonkclients) [...]

  30. Andy Manson Says:

    Why not just change its name to Siebel? It plainly does not integrate with anything….so we need another bunch of consultants to even make it talk to JMS!! Incredible that Adobe are so lazy that they *bundle* ActiveMQ with this….and refuse to tell anyone how it actually works. Hmm…smell those consultancy dollars.

  31. leonidas Says:

    hello.
    i’m looking for a way to upload picture to a database using Flex and java without a scrpit ( asp, php …).
    FileReference api is not enough i think , i need the full path file from system file , but i can’t get it

    u can sen dme mail : anass.oasis@gmail.com

    thx for ur help.

  32. Cato Paus Says:

    FileReference - A petition for Astro WE NEED YOUR VOTE !

    Hi All! If We Want New Features in Flahs Player we will all need to VOTE!

    I have submited it as a Feature Request. Follow the link and create a accont and vote for it!
    http://bugs.adobe.com/jira/browse/SDK-14245

    By the way we all need to get familiar with this “Adobe Bug System” :)

    Please forward this message.
    Cheers :)

  33. leonidas Says:

    we realy need some extra work from Adobe inthis issue , silverlight has more advantage on it , so why not adobe .
    it’s so important.

  34. We’re seriously take in count BlazeDS for our collaboration apps at EyePartner. Giving it open sourced is even better. We’re looking forward to this.

    Adrian.

  35. Luke Vanderfluit Says:

    Hi Christophe. Im trying to contact you but cannot find you email address anywhere.
    Im doing your 30 minute testdrive for flex and since I work for a company where we use java, Id like to get flex talking to our java back end. Im having a few problems getting you 30 min testdrive to work…
    Could you contact me please.

    Kind regards.
    Luke.

  36. [...] you missed the beta announcement in December, Adobe is open sourcing its Remoting and Messaging technologies (previously available as part of [...]

  37. Oğuz Çelikdemir Says:

    TURKISH : Valla bu işi öğrenemediniz gitti. Tüm dünyada, bütün herkes sizin sadece ve sadece veri tabanı bağlantısını 3. bir dili öğrenmeden nasıl yapabileceğine odaklanmış durumda, siz kalkıyorsunuz arka planı java yapıyorsunuz, o yetmiyormuş gibi verdiğiniz örnekte, Java Tomcat server üzerinde nasıl çalıştığına dair. Allah aşkına, shared hosting hizmeti veren kaç tane kurum apache tomcat hizmeti veriyor? Ya bırakın bu işi, yapamıcaksınız siz bunu anlaşıldı!!! Topu topu yapmanız gereken Apache Web Server için bir .so file, PHP için bir extension DLL, IIS içinde yine bir DLL, bunların güvenliğinide nasıl sağlarsınız, orasını siz düşüneceksiniz. Sizin sorununuz baştan belliydi, Macromedia’ yı satın aldınız, iyi güzelde, macromedia nın müşteri odağı interaktif çalışan tasarımcılar idi. Kalktınız, interaktif çalışan tasarımcılara, dayatma yoluyla “Kardeşim, ActionScript öğrenicen, ActionScript 3 öğrenicen, o yetmiyor en azından PHP, ASP.NET yada JAVA öğreniceksin, o yetmez gelicen birde BlazeDS yada Live Cyle Data Services nasıl çalışır bunu öğreniceksin, ondan sonra Flex te uygulama geliştireceksiniz” diyorsunuz. Bu akla, mantığa, şirket prensiplerine uyurmu, oturun bir düşünün bakalım. Tasarımcılara yol verdiniz, developerlarında beynini sulandırıyorsunuz.
    Şunu baştan kabullenmelisiniz, ADOBE bir uygulama geliştirme şirketi değil [di], siz onu uygulama geliştirme şirketine çevirmeye çalışıyorsunuz, ondan sonrada Microsoft’a afedersiniz bok atıyorsunuz. Microsoft 10 yıldan fazla bir zamandır, uygulama geliştirme dilleri üzerinde çalışıyor. Tecrübe, fırından alınan ekmekler yenilerek kazanılmıyor, yılların birikimi ile kazanılıyor. O nedenle, Silverlight 1-2 seneye kalmaz, sizi geldiğiniz yere geri postalar.

    ENGLISH : These are my opinions, if you wish you can translate your language.

  38. Q Says:

    This is great news.

    One thing I can’t find is the architecture of the BlazeDS. How exactly works on a BEA Weblogic for example ?

    Do I just deploy the war file and I’m good to go ?

    AMF over the HTTP is easy to comprehend.

    Drop me a line or two please.

    Thanks,
    Q

  39. David Welch Says:

    Any word on when the the BlazeDS source will be available? Even having the current RC code would be great…

    Thanks,
    David

  40. Sheetal Says:

    Hi Christopher,

    Whenever I am running a trader desktop [amf-streaming] sample through Squid proxy, Getting error on tomat ‘my-streaming-amf’ cannot service the streaming request made with 1.0. Only HTTP 1.1 is supported.

    Please give me some solution on this problem

    Regards
    Sheetal M

  41. fem pocker Says:

    fem pocker…

    godmothers adoption surface.amulets mutilating plausible …

  42. canine health care…

    optimize.wonderment?inexorable towelling….

  43. Migration to BlazeDS…

    Useful links: #…

  44. wamu personal visa credit card…

    infers,acquiescing element?fortiori …

  45. [...] 相關技術 BlazeDS BlazeDS: Open Sourcing Remoting and Messaging [...]

  46. insurance pet…

    exacerbates blight ineffectual.Oman ultimate imprudent …

  47. DamionKutaeff Says:

    Hello everybody, my name is Damion, and I’m glad to join your conmunity,
    and wish to assit as far as possible.

  48. @Oğuz Çelikdemir:

    Lütfen API’yi biraz daha inceleyin. İlla BlazeDS kullanacaksınız, Tomcat kuracaksınız diye bir zorunluluk yok.

  49. [...] order to get a better overview of the messaging features you can check out some of the great samples provided by Christophe [...]

  50. [...] was one mention on Christophe Conreate’s blog, but no solution was provided. The BlazeDS DevGuide on Scribd mentions the following: The streaming [...]

  51. on line slots free…

    Venusians disrespectful.conventions?domesticated …

  52. thaks you,
    arkadaşlara katılıyorum
    video,belgesel,islami video,islami müzikler,yalan haber,futbol görüntüleri,her türlü video izle,video izle,ücretsiz video,video siteleri,video yükle,video indir,video download

  53. thaks you,
    arkadaşlara katılıyorum
    video,belgesel,islami video,islami müzikler,yalan haber,futbol görüntüleri,her türlü video izle,video izle,ücretsiz video,video siteleri,video yükle,video indir,video download,video sitesi,video siteleri,video seyret,sanatçılar,şarkı videoları,mp3ler,en güzel videolar,ilahileri,ilahi dinle,ilahi seyret,maç görüntüleri,fenerbahçe videoları

  54. prolan1 Says:

    9E9NYU qazwsx

  55. prolan5 Says:

    qAQQFe eeeerrrffddgggggggccccc

  56. BlazeDS info…

    Blaze home…

  57. forum Says:

    güzel bilgiler teşekkürler

  58. sohbet Says:

    thanks a lot ;)

  59. chat Says:

    güzel bilgiler teşekkürler…

  60. thank you very much.

  61. Thank you very much for this information. I like this site

  62. muhabbet Says:

    ooo süper this is fantastik

  63. [...] contrast to the front-end concerns of the designer/developer question, we then talk about Adobe’s open sourcing of BlazeDS, a sub-set of their LiveCycle Services. BlazeDS, boiled down, is a messaging framework and protocol [...]

  64. [...] Links: Article summarizing the options for Flex communication and introducing BlazeDS BlazeDS download page Getting Started in BlazeDS [...]

  65. thanks goog job,savaş oyunu,savaş oyunları

  66. [...] Christophe Coenraets :: BlazeDS: Open Sourcing Remoting and Messaging [...]

  67. [...] Christophe Coenraets :: BlazeDS: Open Sourcing Remoting and Messaging [...]

  68. carlos pokerroom net…

    attune morose replenished reelecting imperialists …

  69. In addition to the HTTP Streaming channel, we do support “Long Polling”. This is achieved by setting the wait-interval-millis property in a polling channel definition.

    Also, you can configure a list of channels for your destinations. For example the first channel in the list could be an HTTP Streaming channel, and the second channel could be a Long Polling channel. If for some reason, the HTTP Streaming connection failed, the application would automatically fall back to the second channel in the list. You can also use a “long polling” channel only if that’s a better fit for you.

  70. daslaber Says:

    From what I understand, this isn’t possible in a standard J2EE web app (where the thread lifecycle is tied closely to the request/response being read/written to a socket), but I think Jetty has the ability to do this with its Continuations API.

  71. Krishna Says:

    Very good article..

  72. In addition to the HTTP Streaming channel, we do support “Long Polling”. This is achieved by setting the wait-interval-millis property in a polling channel definition

  73. komik oyun Says:

    Thank you very much for this information. I like this site

  74. Will this have any effect on the remoting/messaging that ships with ColdFusion?

  75. Thanks for the quick info on setting up and running blazeds.

  76. thankssss adminn

  77. jurlan Says:

    So, am I corrent when assuming that, when using BlazeDS, you don’t have the option of displaying modified data(real time modification without having to reload or save the 2nd session?) in the same form on a 2nd session?

  78. sağlık Says:

    thanks very good.

  79. sohbet Says:

    hi good thank you For example the first channel in the list could be an HTTP Streaming channel, and the second channel could be a Long Polling channel. If for some reason, the HTTP Streaming connection failed, the application would automatically fall back to the second channel in the list.

Leave a Comment