Discussions

News: Dynamic Enterprise App Runtime Updates Using Mule Punching

  1. Hold onto your JVMs - in this article Eugene Ciurana shows how to massively reduce your enterprise application development time when deploying to the Mule Integration Platform. He takes you through a common SOA configuration which inherently incurs in massive time drain during the compile/stop/start/test/deploy/test cycle. Discover how to integrate a dynamic language on the JVM, and learn how to integrate that seamlessly in the Mule environment. He writes:
    Mule punching is a great technique for dynamic Mule code updates at runtime that can help expedite the development process while leveraging the combined APIs from a scripting language and Java. More research is needed but a refinement to this technique could be used for dynamic updates in production servers as a stopgap measure until a clean dynamic loading mechanism like OSGi is available for Mule servers. Faster development, seamless updates, and portable integration... What's not to like?
    Although a great deal of the article is Mule-centric, these techniques can be applied to implement dynamic scripting in other Java app containers and frameworks. Read the article to find out how to perform dynamic enterprise application updates using mule punching techniques.

    Threaded Messages (10)

  2. Honestly... "Mule Punching?"[ Go to top ]

    I'd like to recommend changing the name of this technique. http://www.google.com/search?q=%22mule+punch%22
  3. Re: Honestly... "Mule Punching?"[ Go to top ]

    I'd like to recommend changing the name of this technique.
    Wow - thanks for pointing that out and for the link to Urban Dictionary. We might consider another name change (we already changed it once). Next someone will apply Rule #34 to enterprise applications software. That would be... disturbing. Cheers! E http://ciurana.eu
  4. The naming...[ Go to top ]

    Hm... I thought the Urban Dictionary actually explained it rather well & accurate :) Nikita.
  5. Re: Honestly... "Mule Punching?"[ Go to top ]

    What about Donkey Punching since Mule is all about "donkey work". Isn't that where the name came from? Best Regards
  6. Re: Honestly... "Mule Punching?"[ Go to top ]

    What about Donkey Punching since Mule is all about "donkey work". Isn't that where the name came from?
    We were looking for a catchy name. Given that this technique applies to Mule in particular but could be extended to any Spring container, we thought that "mule punching" was catchier than "spring punching". The cool thing about mule punching is that we can use this in servers that lack inherent hot deployment capabilities as well as in those that do. Another thing is that it lets you apply other programming languages that might be more appropriate than Java for solving a given problem, while still leveraging your container's or the Java API. Last, which we've done some, it lets you take a component for which you have no source code and build a black box around it that changes its behaviour to do something you need, without the original code's developer participation or access to the source. That's a fun and interesting way of tackling some problems such as using legacy code from a defunct vendor, or patching a bug in a running system without service disruption until a permanent, well-tested solution is available. We mentioned in the article that some of the motivators for us were:
    • The ability to run Python code inside the Java container and in our distributed environment - compatibility requirement
    • The capability to write stable Mule (or Spring, or whatever) components in an interactive way, without having to wait for a compilation/deployment cycle to complete, and test them "on the fly".
    • Writing multi-language code is fun - there are some Java constructs that are too verbose that are just fun to write in a different language because they don't require as much explicit initialization or a verbose API call
    Scripting for the JVM is a very powerful tool, and introducing it into enterprise class app server in a safe manner required us to think of ways to both deal with how the hosting Java environment works, and how to safely introduce the scripting tools into it. Running in-line scripts on a Spring container isn't of much value if the components can't be reused outside of the script. Part of our aim was to write reusable Mule components just like the ones we write in Java that can also be used in a completely different environment. Cheers! E http://ciurana.eu http://istheserverup.com
  7. Re: Honestly... "Mule Punching?"[ Go to top ]

    That's a lot of effort to save 150 bucks :) http://jrebel.com
  8. Re: Honestly... "Mule Punching?"[ Go to top ]

    That's a lot of effort to save 150 bucks :) http://jrebel.com
    Nah... the name itself is worth more :) Nikita.
  9. Re: Honestly... "Mule Punching?"[ Go to top ]

    http://jrebel.com
    Dude! Thanks for the heads up - we should test with this as well. You rock! Cheers, E http://eugeneciurana.com http://teslatestament.com
  10. Re: Honestly... "Mule Punching?"[ Go to top ]

    Thanks for the heads up - we should test with this as well.
    Sounds good, email me if you need anything :)
  11. yes dear , Urban Dictionary actually explained it. there you can find and explain. Thanks ================= driving lessons in Birmingham driving schools in Birmingham driving instructors in Birmingham intensive driving courses in Birmingham