Mule (software)

{{Short description|Enterprise service bus software}}

{{distinguish|M.U.L.E.}}

{{Advert|article|date=January 2014}}

{{Infobox software

| name = Mule

| logo =

| screenshot =

| caption =

| author = Ross Mason

| developer = MuleSoft

| latest release version = 4.4.0

| latest release date = {{release date|2021|09|07}}

| latest preview version =

| latest preview date =

| operating system = Cross-platform (JVM)

| programming language = Java

| genre = Enterprise Service Bus

| license = CPAL license for Community Edition, Proprietary for Enterprise Edition

| website = {{url|https://www.mulesoft.com}}

}}

Mule is a lightweight enterprise service bus (ESB) and integration framework{{cite web|url=http://www.infoq.com/presentations/Enterprise-Service-Bus|title=The Role of the Enterprise Service Bus|publisher=}} provided by MuleSoft. It has a Java-based platform and can also act as broker for interactions between other platforms such as .NET using web services or sockets.

It has a scalable{{cite web|url=http://www.theserverside.com/tt/articles/article.tss?l=CaseStudyMule|title=Mule: A Case Study|publisher=}} and distributable object broker architecture that can manage interactions across legacy systems, in-house applications, and modern transports and protocols.{{cite web|url=http://today.java.net/pub/a/today/2007/07/31/exploring-esb-patterns-with-mule.html|title=Exploring ESB Patterns with Mule Blog - Oracle Community|url-status=dead|archiveurl=https://web.archive.org/web/20090308020057/http://today.java.net/pub/a/today/2007/07/31/exploring-esb-patterns-with-mule.html|archivedate=2009-03-08}}

Supporting tools

=Design and development tools=

  1. Anypoint Studio: An Eclipse-based graphical development environment for designing, testing, and running Mule flows. It consists of two types of editors for development: a visual editor and an XML editor.
  2. Anypoint Enterprise Security: A suite of security-related features for secure access and transactions to Mule applications.
  3. Mule Healthcare Toolkit: Provided to process HL7 standard messages used in healthcare organizations.
  4. Mule IDE (now deprecated): A set of Eclipse plug-ins for developing, deploying, and managing Mule projects.

=Management tools=

  1. Mule Management Console: A user interface that provides a run-time management facility for deployment to the Mule Repository and clusters.

Mule has an integration engine, but the community edition lacks support for Advanced Management interfaces. MuleSoft offers an Enterprise Edition of Mule that provides a management console, a Service registry, and higher availability.

==Cloudhub==

Cloudhub is Mulesoft's Cloud-based integration platform as a service (iPaaS) designed to connect apps, data, and devices with integration connectors (like one to Twitter, etc.).

Mule ESB and messaging

=AMQP support=

AMQP (Advanced Message Queuing Protocol) support is based on the RabbitMQ Java Client and supports AMQP up to 0.9.1.{{Cite web|url=http://www.mulesoft.org/documentation/display/current/AMQP+Connector|title = Home}}

=JMS support=

Jakarta Messaging is a Message-oriented middleware API provided by Oracle for communication between different components of an application. This provides reliable, loosely coupled, and asynchronous message-based communication, supporting two models: point-to-point (queues) and publish-subscribe (topics). Mule supports all functionality of JMS specification versions 1.0.2b and 1.1, and provides an endpoint for the same.{{Citation needed|date = October 2014|reason = Needs reliable, third-party sources to allow for verification - Not from Mule or Mule's websites}}

=WMQ support=

WMQ or Websphere MQ is an IBM Message Oriented Middleware product for communication for distributed systems. Mule also provides support for WMQ called Mule WMQ Transport which works with 7.0, 7.1, and 7.5 versions and provides an endpoint for the same.{{Citation needed|date = October 2014|reason = Needs reliable, third-party sources to allow for verification - Not from Mule or Mule's websites}}

Universal Message Object

The Universal Message Object Application Programming Interface is part of high-level design methodologies used to describe and define aspects of a data object used in conjunction with the Mule ESB. The idea is to, by staged events, wrap the work into sensible bundles and process it in stages that can conform to models of transaction-based processing that are useful in time or mission-critical applications such as financial transactions, where subsequent successful outcomes are required to permit the desired outcome. But if the user fails to supply needed data or a run-time error occurs, then the model will allow for state-full back-off, meaning "no harm done", the user may then complete a transaction without losing too much work or cancelling an entire transaction.

Universal Message Object defines the parameters that the program will use for internal messaging communications and its components to set and get variables based upon the user's needs and the program's functionality.

References

{{reflist|colwidth=30em}}

Further reading

  • Tijs Rademakers and Jos Dirksen, "Open-Source ESBs in Action" (Manning Publications: Oct 2008, {{ISBN|1-933988-21-5}}; {{ISBN|978-1-933988-21-4}})
  • Peter Delia and Antoine Borg, "Mule 2: A Developer’s Guide" (Apress: Nov 2008, {{ISBN|1-4302-0981-X}}; {{ISBN|978-1-4302-0981-2}}),
  • David Dossot and John D'Emic, "Mule in Action" (Manning Publications: Apr 2009, {{ISBN|1-933988-96-7}}; {{ISBN|978-1-933988-96-2}})
  • Getting Started with Mule Cloud Connect (O'Reilly Media: Dec 2012, Print {{ISBN|978-1-4493-3100-9}}; {{ISBN|1-4493-3100-9}}; Ebook {{ISBN|978-1-4493-3095-8}}; {{ISBN|1-4493-3095-9}})
  • David Dossot, John D'Emic and Victor Romero, "Mule in Action, Second Edition" (Manning Publications, Early Access Program)
  • {{citation |last1=Hanson |first1=Jeff |date=2005-01-31 |df=mdy |url=https://www.infoworld.com/article/2072262/event-driven-services-in-soa.html |title=Event-driven services in SOA |work=JavaWorld |accessdate=2020-07-21}}