MuleSoft launches iBeans for rapid web application integration

Discussions

News: MuleSoft launches iBeans for rapid web application integration

  1. MuleSoft, formerly MuleSource, announced the release of iBeans (short for integration beans), dramatically simplifying web application development and integration. iBeans leverage MuleSoft’s integration technology to bring powerful integration capabilities to web application developers. iBeans eliminate time-consuming and repetitive hand-coding and offer a simple task-based integration approach to developers for projects where top-down enterprise architecture is not required. iBeans are reusable integration components that can easily be created in minutes. Developers using iBeans can connect their web applications, written in Java or JavaScript, with other applications and external data sources, via Web Services, RSS feeds, RESTful services, AJAX events, message queues (e.g., JMS), and more. Ross Mason, CTO and founder of MuleSoft says, “Developers are seeing an increasing need to integrate their applications with a proliferating number of data sources and applications, including Web and cloud-based applications, as well as back-end data sources and services. iBeans allows them to do this with just a few simple annotations in their application code, without having to learn a new way of doing things. With the release of iBeans, MuleSoft introduces iBeans Central, a free repository of iBeans that is hosted in the cloud and is accessed via the iBeans console. iBeans Central leverages the power of Mule’s vibrant community, allowing developers to contribute and reuse iBeans for various integration tasks and services. The community has already contributed iBeans connecting to services such as Twitter, Gmail, Flickr, and Amazon EC2. To download, or for further information and documentation, visit: http://www.mulesoft.org

    Threaded Messages (43)

  2. So what iBeans are... They're basically proxies for services. You set up an iBean, and tell it how to call the service, and you get to leverage Mule's (impressive) messaging transports to do the work.
  3. What's new?[ Go to top ]

    Isn't this what they've always done? Proxied services? What's the new thing here? Marketing?
  4. Re: What's new?[ Go to top ]

    Isn't this what they've always done? Proxied services? What's the new thing here? Marketing?
    Proxying services is only a fraction of what Mule does. However, seeing that you didn't yet have a chance to look at what iBeans are (at least the documentation examples), it's hard to entertain such flame discussions. You're welcome to take a look :)
  5. Re: What's new?[ Go to top ]

    Isn't this what they've always done? Proxied services? What's the new thing here? Marketing?


    Proxying services is only a fraction of what Mule does. However, seeing that you didn't yet have a chance to look at what iBeans are (at least the documentation examples), it's hard to entertain such flame discussions. You're welcome to take a look :)
    Flame discussions? I didn't see a flame - I saw a legitimate question about the motivation. Personally, I think it would have been nice to have the seven-word summary of what iBeans are somewhere, or even a 25-second elevator pitch that doesn't use marketing vagueness. This isn't a flame, I hope, but it'd be easier for ME if those things were more obvious.
  6. Re: What's new?[ Go to top ]

    Here's one from me (not exhaustive): iBeans does for typical web-systems what Mule does for larger set of apps, but without the learning curve of an ESB. Simple integration tasks (especially point-to-point) are kept simple. Next - it's not limited to Java. JavaScript can leverage the same power of iBeans. Better? :)
  7. Re: What's new?[ Go to top ]

    Here's one from me (not exhaustive): iBeans does for typical web-systems what Mule does for larger set of apps, but without the learning curve of an ESB. Simple integration tasks (especially point-to-point) are kept simple. Next - it's not limited to Java. JavaScript can leverage the same power of iBeans.

    Better? :)
    LOL, no! See, you're assuming that I as a reader know exactly what Mule does for a larger set of apps. (I do, but... I'm wearing my Everyman McReader hat right now.)
  8. Re: What's new?[ Go to top ]

    Sorry for the second reply in a row, but I suppose here's what I would LOVE to see: Stop telling me what they do differently, but tell me what they DO. Irony: the captcha for this post was "basic phooeys."
  9. Re: What's new?[ Go to top ]

    Sorry for the second reply in a row, but I suppose here's what I would LOVE to see:

    Stop telling me what they do differently, but tell me what they DO.

    Irony: the captcha for this post was "basic phooeys."
    Joe, here is what I did with iBeans. I wrote two lines of code to pull in real-time BART schedules. The two lines of code are below: @Call(uri = "http://www.bart.gov/dev/eta/bart_eta.xml") public Document getFeed() throws CallException; Now, I have an iBean to get realtime feed from BART. I can call my iBean from my JSP or java script. 30 minutes later ( 15 minutes figuring out BART's XML format), I have a fully functional web application that retrieves real-time BART schedules and parses the XML and tells me exactly when the next train is from Embarcadero station to Dublin. Hope this example helps.
  10. Re: What's new?[ Go to top ]

    *sigh* Sateesh, it does help - but I understood what iBeans were already. What I've been trying to say is that while it's possible to work out what iBeans are and do, it's not *clear* without someone taking the time to dig in. It's an old problem, repeated over and over and over again. When you mention a project or a product, it works best if you start from first principles: "This is what it is, this is what it does, this is how you use it, this is where you use it. Here's what's changed." On the TSS "submit news" page, there are links to two pages on TSS that kinda go over this stuff: http://www.theserverside.com/news/thread.tss?thread_id=46869 and http://www.theserverside.com/news/thread.tss?thread_id=46894 - and in fact you see the same sort of principles in the article published on TSS a couple of days ago: http://www.theserverside.com/news/thread.tss?thread_id=57981 Nikita Ivanov had a comment on that article, saying this:
    Sorry if this is harsh but I don't get this piece. Topic has been discussed to death for the last 30 years and I'm not sure what's new has been added by this manuscript.
    It's not surprising that he doesn't get this piece! After all, GridGain, too, posts stuff without taking into account that not every possible user is horribly familiar with his product's past history. Not getting the piece doesn't mean it's to be ignored, if the piece actually has something worthwhile to pay attention to. Having ignored the point for the last 30 years doesn't make the point any less relevant.
  11. it does![ Go to top ]

    can you post a link to the full example?
  12. Re: it does![ Go to top ]

    can you post a link to the full example?
    Sure... Below is the complete BART iBean... package org.mule.ibeans.BART; import org.w3c.dom.Document; import org.mule.ibeans.api.client.*; import org.mule.ibeans.api.client.params.*; import org.mule.ibeans.api.client.CallException; @Usage("How to use this bean") public interface BartIBean { @HeaderParam("Content-Type") public static final String DEFAULT_CONTENT_TYPE = "text/plain"; @Call(uri = "http://www.bart.gov/dev/eta/bart_eta.xml") public Document getFeed() throws CallException; } Here is the JSP fragment that called this iBean: <% IBeansContext ibeansContext = (IBeansContext) getServletConfig().getServletContext().getAttribute( IBeansContext.CONTEXT_PROPERTY); BartIBean bart = ibeansContext.createIBean(BartIBean.class); Document doc = bart.getFeed(); String stn; IBeansSupport ibs = new IBeansSupport(); List nodelist = null; nodelist = ibs.select("/root/station/name/text()", doc); //rest of XML processing using IBeansSupport XPath follows... If you download iBeans today, it includes an iBeans Console: for ex: http://localhost:8080/ibeans You can go to Examples there and see some of the example demonstrations live. Hope this helps.
  13. iBeans Central[ Go to top ]

    Even better, once Sateesh contributes his example to iBeans Central, you'll be able to select the Bart iBean from the iBeans console running in either Tcat (the iBeans runtime is included in the Tcat download) or Tomcat and it will deploy to your app server. Then you just need to create and call the Bart iBean from your Java, JSP, or Javascript application. As a consumer of iBeans you never need to know anything about web services, URIs, XML, REST, Authentication protocols, etc. Try doing that with Spring, JBoss or one of the other dozen generic frameworks out there that still leave it to the developer to figure out and deal with these issues. An integration framework should handle that for you and let you focus on your application logic.
  14. Re: iBeans Central[ Go to top ]

    I find very compelling the fact this framework is backed by a "marketplace" (iBeans Central) where you will be able to grab ready-made integration cogs for your applications. It's not just tapping the power of Mule in an easy way, it's direct reuse of community-built integration components. D.
  15. Re: What's new?[ Go to top ]

    Personally, I think it would have been nice to have the seven-word summary of what iBeans are somewhere
    Erm, is the title not working for you?
    or even a 25-second elevator pitch that doesn't use marketing vagueness.
    I did blog about the motivation of iBeans on Tuesday: http://blogs.mulesoft.org/2009/09/ibeans-dead-simple-integration-for-web-apps/ In a nutshell, iBeans makes it really easy to hook into external services in a way that is natural for a java web developer, i.e. dealing with a single object that encapsulates a service. Integration frameworks today are pretty SOA-centric where developers need to take on a whole new set of concepts, nomenclature, and architecture to use even basic features. The approach of iBeans is to offer a very simple API (a few annotations) to perform common integration tasks such as interacting with JMS, Call REST or Web Services, sending email etc. What I personally really like about iBeans is that is has a reuse story that could actually work. iBeans define how to talk to a service like Flickr, Twitter or Gmail by annotating Java interfaces which means there is little implementation code and developers can create iBeans in minutes (think WSDL but much simpler and more powerful). These iBeans can then be shared in IBeans Central, the public repository of these reusable iBeans. Also, iBeans can be used in your Java code and of course frameworks like Spring, Struts and JSF, but they can also be used from JavaScript, making it really easy to call these services direct from the browser. Cheers, Ross MuleSoft
  16. Re: What's new?[ Go to top ]

    Personally, I think it would have been nice to have the seven-word summary of what iBeans are somewhere
    Erm, is the title not working for you?
    Nope, it didn't work for me: "MuleSoft launches iBeans for rapid web application integration" only tells me that it's for... rapid web app integration, not what's being integrated or how or anything. The podcast is good, but let's be real: I didn't come to TSS to be redirected to a podcast. :)
  17. Re: What's new?[ Go to top ]

    Personally, I think it would have been nice to have the seven-word summary of what iBeans are somewhere
    Erm, is the title not working for you?
    Nope, it didn't work for me: "MuleSoft launches iBeans for rapid web application integration" only tells me that it's for... rapid web app integration, not what's being integrated or how or anything.

    The podcast is good, but let's be real: I didn't come to TSS to be redirected to a podcast. :)
    Not sure how you get all that into 7 words of a title... That's where folks need to read on. BTW podcast link: http://blogs.mulesoft.org/2009/09/introducing-mule-ibeans
  18. Re: What's new?[ Go to top ]

    Ross -- that's the challenge, of course. I didn't say it was always easy. Just always worthwhile.
  19. Re: What's new?[ Go to top ]

    Ross -- that's the challenge, of course. I didn't say it was always easy. Just always worthwhile.
  20. Re: What's new?[ Go to top ]

    But the task here is so vague...
  21. 7 words[ Go to top ]

    simple web-application API for integrating external services I had to cheat and add a hyphen to make it 7 :) -Ken
  22. Re: What's new?[ Go to top ]

    The Javascript communication portion here is what I find most interesting and compelling about iBeans. It makes communicating with other services that are not on your web page's domain very simple. It's an elegant way to work around the Same Origin Policy -- that framework is already written. You just pick it up and use it as part of your webapp(s). Isn't this what we came to TSS to read about? New technologies that help us write our webapps and save us some time writing them? I think it is.
  23. Re: What's new?[ Go to top ]

    The Javascript communication portion here is what I find most interesting and compelling about iBeans.
    Javascript? This is TheServerSide, not TheClientSide. Besides, I think I'll write my own HttpUrlConnection code, thank you very much.. it's much easier that way. How is any of this saving me time developing my server code?
  24. Re: What's new?[ Go to top ]

    As I was saying, it works around the Same Origin Policy problem, which ends up being a server side issue. The client cannot make a connection to any random server, for security reasons. So, what iBeans implements is a nice solution for this, and at the same time provides a pretty standard API for the communication, while also implementing modular connectors, which is a big help. It's true that you could write your own HttpURLConnection code if you want to reinvent the wheel again. Or, you can adopt several different client API jars and learn each different API. There's no regularity across those APIs though, so you'll spend a bunch of time learning several very different APIs, whereas iBeans provides a simpler and more consistent API all the way across.
  25. Re: What's new?[ Go to top ]

    I think it's pretty simple. I'm sure anything can be written by anyone with coding knowledge. The point with iBeans as I understand it so far is to shorten the time it takes to use data and services that are commonly available elsewhere and iBeans exist for. I don't know if I'd spend time writing iBeans myself but if I can with a single line of [annotation] code obtain an HTTP document, why would I resort to HttpClient? For spite? That wouldn't make any sense. The use of [relevant] iBeans where applicable, can potentially save me a lot of time. Whether or not I realize that potential depends mostly on the kind of iBeans that will be made available.
  26. Re: What's new?[ Go to top ]

    Thanks David, Also, as I have found out first hand, not all HTTP APIs were created equal. For example, talking to Twitter is pretty easy, firing up instances on EC2 is more tricky due to the needed security constraints. iBeans smooths over these difference from the user and allows the user to interact with any service using a single method call. And of course you are not limited to HTTP, the Gmail iBean talks SMTP and IMAP. You are right in that the a big pull for iBeans will be iBeans Central, the public repository of iBeans that people can use/share. We already have some good one on the way and will be available shortly.
  27. Re: What's new?[ Go to top ]

    I for one am getting a lot of good info out of this post, so thanks to all for stoking the conversation (it's all good...) Couple questions and comments: So i have a pretty simple web site that uses calendar, addressbook, and email notifications to generate a set of consumer services around events. It's all HTML and AJAX based, running on Tomcat. I'd really like to be able to jump into iBean's central and use the Facebook and Twitter apps (among others) to hook my service into groups and Tweets on those sites. We don't have anyone that uses ESB's, or even knows about Mule for that matter. How would we use iBeans? What added infrastructure would we need to take on in order to use iBeans? Thanks chris
  28. Re: What's new?[ Go to top ]

    I for one am getting a lot of good info out of this post, so thanks to all for stoking the conversation (it's all good...)

    Couple questions and comments:

    So i have a pretty simple web site that uses calendar, addressbook, and email notifications to generate a set of consumer services around events. It's all HTML and AJAX based, running on Tomcat. I'd really like to be able to jump into iBean's central and use the Facebook and Twitter apps (among others) to hook my service into groups and Tweets on those sites.

    We don't have anyone that uses ESB's, or even knows about Mule for that matter. How would we use iBeans? What added infrastructure would we need to take on in order to use iBeans?

    Thanks

    chris
    iBeans works on top of Tomcat, so you would just download iBeans distribution, unzip it into Tomcat directory, run a simple update tool. You are now ready to use iBeans. Navigate to your Tomcat server to see the iBeans console. For ex: http://localhost:8080/ibeans - Examples tab provides you the web-examples which might me what you want to consume. The advantage of iBeans for web developers is that you do not need to learn the intricacies of integration platforms or APIs - you just use an existing iBean. Here is more information on how to use an iBean from a java script: http://www.mulesoft.org/display/IBEANS/Using+the+JavaScript+Client Hope this helps.
  29. So what's new[ Go to top ]

    I love Mule. It's a great product. However this 'news' posting is almost useless. There's a thing that proxies for you. How is that new? What do ibeans get me that Mule doesn't? I guess the posting could've just said, 'New product go read the documentation cause that's all we're going to tell you here'. Also, marketing is a completely valid reason. Mule needs to expand their market and packaging existing tech in terms that'll reach new customers is not bad nor is it a flame. Chill a bit.
  30. Re: So what's new[ Go to top ]

    I'm glad you love Mule. I think if you love Mule you'll love iBeans too. Someone said recently that Mule is industrial-strength and there is a need for something easier for doing task-based integration, i.e. send an email, read form a JMS queue, talk to FaceBook, schedule a task. I suggest following the the Mule blog since we'll be posting lots more including when to use iBeans or Mule.
  31. Re: What's new?[ Go to top ]

    Isn't this what they've always done? Proxied services? What's the new thing here? Marketing?
    I think it's packaging more than anything else.
  32. Re: What's new?[ Go to top ]

    Not just packaging, the main difference is the usage model. Here is a quick comparison: -Mule ESB usage style is more of a server model, you configure Mule using an xml file and then start up the Mule (standalone or embedded). The services you configured listen on message channels, process/transform/route messages and send them out on other message channels if required. -With Mule iBeans there is no xml configuration file, and the way in which it is used is very different. Client iBeans are available and can be used programmatically (as service proxies) to perform simple integration tasks, the iBean encapsulating invocation and transformation etc. in a reusable way. The iBeans framework also includes @Send, @Receive, and @Schedule annotations that can be used anywhere in your application to perform task-based integration from wherever it is required using the power of mule but without the complexity or learning curve associated with using Mule ESB.
  33. Same old song and dance[ Go to top ]

    I am a technology trainer and experience this sort of confusion every day!  Great technology solutions typically pass alongside able-bodied software developers like ship in the night.  The problem is that as excellent API developers (Mule, iBeans, yada, yada, yada) the fun is gone once the jar is deployed and marketing and/or describing use cases never receives the same vigor as the design and development did!  I see excellent technolgies that are never adopted and understand why this happens.  If a salesman had written iBeans, we would probably all be using it and raving about it at the same time.  This is why I believe there is a price to pay for free software.

     

    Peace,

    Scott Stanlick

  34. Lots new...[ Go to top ]

    Isn't this what they've always done? Proxied services? What's the new thing here? Marketing?
    I think it's packaging more than anything else.
    This is like saying that JAX-WS is "just packaging" because one can write SOAP services using assembly :-) OK, well maybe not that bad, but you get my point. There's quite a few new things here Joe: * Annotations to make it easy to write proxies which consume services, schedule things, or send messages * Reusable bundles to interact with services which you can get from ibeans central (for things like flickr, gmail, etc - hopefully it'll grow over time) * easy way to integrate with services from Javascript through the AJAX capabilities No XML configuration. No lengthy code (think JAX-RS client or even Spring REST templates for that matter). Just a simple way to do data service integration from your webapp.
  35. Re: What's new?[ Go to top ]

    Isn't this what they've always done? Proxied services? What's the new thing here? Marketing?
    The new thing it offers a drastically simplified method of talking to services and performing common integration tasks. This thread provides more info, but maybe comparing to other technologies may help - Spring Templates: some similarities but iBeans provide a cleaner and simpler API. Rather than having to configure a Templates in spaghetti XML, iBeans give you a single object that encapsulates the service API you are talking to (and hides all the complexities of these APIs). This object (an IntegrationBean) is injected into your code using JSR-330 annotations. Spring Integration: More focused on trying to compete with Mule, but underestimated the job. iBeans doesn't offer Enterprise integration patterns. Instead, interactions with services are just method calls, which offers less abstraction for the developer. It means you can't do many of the EIP patterns that Mule supports but you have Mule for that stuff. Camel: very focused on EIP, has some baggage you need to get your head around. iBeans aims to be a natural extension of your webapp, not another framework you need to learn. Open ESB: It's JBI (the "integration standard" that, well was never a standard and is as good as dead) WSO2: Built on Web Services... Run for the hills :)
  36. Why only tomcat?[ Go to top ]

    I do think this is a very useful framework but limited by the fact that it requires tomcat. I would love to use such a framework in a weblogic server. Any plans to move over to other server platforms?
  37. Re: Why only tomcat?[ Go to top ]

    I do think this is a very useful framework but limited by the fact that it requires tomcat. I would love to use such a framework in a weblogic server. Any plans to move over to other server platforms?
    Hi Mathew, Right now iBeans works with Apache Tomcat and Tcat Server. Also, Mule 3.0 will be an iBeans runtime too. After that we're going to see what the demand is for other containers. Given that iBeans is already integrated with a Servlet container it would be possible for us to offer deployments on other servers, but right now we're focusing on Tcat, Tomcat and Mule. Cheers, Ross MuleSoft
  38. Re: Why only tomcat?[ Go to top ]

    I do think this is a very useful framework but limited by the fact that it requires tomcat. I would love to use such a framework in a weblogic server. Any plans to move over to other server platforms?


    Hi Mathew,

    Right now iBeans works with Apache Tomcat and Tcat Server. Also, Mule 3.0 will be an iBeans runtime too. After that we're going to see what the demand is for other containers. Given that iBeans is already integrated with a Servlet container it would be possible for us to offer deployments on other servers, but right now we're focusing on Tcat, Tomcat and Mule.

    Cheers,

    Ross
    MuleSoft
    Hey wait a minute, weren't you the guys who said that everything else than Tomcat is bad and that the best decision one can make is moving away from Jboss and to Tomcat? See http://www.theserverside.com/news/thread.tss?thread_id=57978#322491 I think we have a serious case of double agendas here when those previous posts were made...
  39. Re: Why only tomcat?[ Go to top ]

    Hey wait a minute, weren't you the guys who said that everything else than Tomcat is bad and that the best decision one can make is moving away from Jboss and to Tomcat? See http://www.theserverside.com/news/thread.tss?thread_id=57978#322491

    I think we have a serious case of double agendas here when those previous posts were made...
    Hmmm, not quite. What we advocate is using the right app server for the job. Lots of people are using WAS, WLS and JBoss purely for web apps that just don't need all the JEE baggage. Also, its quite typical for developers to build their code on Tomcat then deploy to one of the commercial app servers because the commercial vendors have the tooling that the operations guys need to manage and provision applications. If your developers and you are developing your apps on Tomcat you now have a much more compelling choice to run Tomcat in production with MuleSoft's Tcat server (Tcat is 100% vanilla Tomcat with enterprise capabilities added, including app provisioning, server management and Tomcat diagnostics). The point is stop deploying on JEE app servers when all you need is Tomcat. Cheers, Ross Mason MuleSoft
  40. JSR-311-ish?[ Go to top ]

    So would this be similar to JSR-311 (JAX-RS), but for a more generic class of services? Annotating beans to indicate how it interfaces to the outside world?
  41. Re: JSR-311-ish?[ Go to top ]

    So would this be similar to JSR-311 (JAX-RS), but for a more generic class of services? Annotating beans to indicate how it interfaces to the outside world?
    Hi Tim, JAX-RS and iBeans are complimentary (BTW I'm a big fan of JAX-RS and Jersey implmentation). JAX-RS focuses on how to expose resources as REST services. iBeans has two facets; 1) to expose services (similar to JAX-RS) 2) to offer reusable iBeans that are really clients to services. Typically a JAX-RS REST resource probably wouldn't be annotated with iBean annotations as well, but you would have other services along side JAX-RS services that might receive or send on JMS, Web Services, Email etc. Where similarity ends is with the reusable iBeans that allow developers to talk to public services such as Twitter, EC2, FaceBook, etc. If you want to expose a REST service in iBeans you would use JAX-RS annotations. This is a feature in progress, but I'm trying to get it in for the 1.0 release. Cheers, Ross
  42. iBeans[ Go to top ]

    I guess you need to compile, to understand the architecture here. Or maybe build you market literature based on the comments.
  43. iBeans[ Go to top ]

    what license is iBeans? Apache?
  44. License for iBeans[ Go to top ]

    iBeans is licensed as CPAL: http://www.mulesoft.org/display/IBEANS/License http://en.wikipedia.org/wiki/Common_Public_Attribution_License