MuleSoft is a software company headquartered in San Francisco, California that provides integration software for connecting applications, data and devices. Started in 2006, the company’s Any point Platform of integration products is designed to tie together software as a service (SaaS) and on-premises software. The company originally provided middleware and messaging, and later expanded to provide an integration platform as a service (iPaaS) approach for companies.
Ross Mason and Dave Rosenberg founded MuleSource in 2006. The company changed the name to MuleSoft in 2009.
MuleSoft is a one of the vendor that has an integration platform to attach applications, data and APIs across on-premises and cloud computing environments. To provide agility both on-premises and in the cloud, MuleSoft’s Anypoint Platform integrates or connects SaaS applications and existing legacy applications through application programming interfaces (APIs). In addition, the platform integrates service-oriented architectures (SOA). MuleSoft gained Programmable Web, a site utilized by engineers to enable form to web, portable and other associated applications.
Mulesoft, an exceptional Enterprise Service Bus (ESB) solution focuses on resolving such a significant problem. At the core, Mulesoft enables businesses to integrate applications and other IT components with ease. In addition to integration, Mulesoft ensures that the communication between disparate systems is consistent and managed.
Mule, the runtime engine of Anypoint Platform, is a light-weight Java-based enterprise service bus (ESB) and integration platform. It allows developers to connect applications together quickly and easily, enabling them to exchange data. It enables easy integration of existing systems, regardless of the different technologies that the applications use, including JMS, Web Services, JDBC, HTTP, and more. The ESB can be deployed anywhere, can integrate and orchestrate events in real time or in batch, and has universal connectivity. Mule has powerful capabilities that include:
Mule ESB is lightweight but highly scalable, allowing you to start small and connect more applications over time. Mule manages all the interactions between applications and components transparently, regardless of whether they exist in the same virtual machine or over the Internet, and regardless of the underlying transport protocol used. There are currently several commercial ESB implementations on the market. However, many of these provide limited functionality or are built on top of an existing application server or messaging server, locking you into that specific vendor. Mule is vendor-neutral, so different vendor implementations can plug in to it. You are never locked in to a specific vendor when you use Mule
API (Application Programming Interface) is a software intermediary that allows two applications to talk to each other. Each time you use an app like Facebook, send an instant message, or check the weather on your phone, you’re using an API. The modern API has taken on some characteristics that make them extraordinarily valuable and useful:
MuleSoft’s Anypoint Platform helps companies connect applications, data and devices by building a robust, secure and highly scalable application network that allows reuse and self-service. This hybrid integration platform includes iPaaS, ESB, and a unified solution for API management, design and publishing. MuleSoft’s Anypoint Platform offers a number of tools and services, including: Anypoint Design Center; API Designer: a web-based tool for creating APIs that also includes a console and a JavaScript scripting notebook. It also allows users to share their API design to receive feedback from other users. Anypoint Design Center; Anypoint Studio: a graphical design environment for building, editing and debugging integrations. Anypoint Management Center; API Manager: an API management tool that allows organizations to manage users, traffic, service-level agreements (SLAs) and API security. The API Manager also includes API Gateway — an API security service that runs on-premises or in the cloud — along with the API Policy Manager and API Contract Manager. Anypoint Management Center; API Analytics: an analytics tool that allows users to track API metrics, such as performance and usage. The API Analytics service also includes visualization tools, such as API Dashboards and API Charts. Anypoint Exchange; API Portal: a developer portal offering interactive documents, tutorials and code snippets. Also included in the API Portal are MuleSoft’s Portal Designer, Developer Onramp and Access Controller tools. Runtime services; MQ: Perform asynchronous messaging scenarios such as queueing and pub/sub with hosted and managed cloud message queues and exchanges. A runtime service of Anypoint Platform, Anypoint MQ also supports environments and multi-tenanted role-based access control. Anypoint Connectors: Robust integration solutions for connecting applications, data and devices for cloud and on-premises systems. Connect using out-of-the-box connectors. Dynamic connectivity to SOAP and RESTful interfaces, or by building reusable connectors with Anypoint Connector DevKit Mule runtime engine; Mule ESB: a platform that allows developers to connect SaaS and on-premises applications using pre-built connectors, integration templates and drag-and-drop tools. Mule Enterprise Management: a management tool for servers, workflows and endpoints. Hybrid Cloud; CloudHub: a multi-tenant integration platform as a service (iPaaS) that connects SaaS applications and on-premises applications. The iPaaS includes a hybrid deployment option, disaster recovery and high availability. (More about see Mulesoft doc)
MuleSoft’s Anypoint Platform Features are:
Bridge messages: Pass messages from inbound to outbound routers. Echo and log messages: Log messages and move them from inbound to outbound routers. Build messages: Create messages from fixed or dynamic values
It is used for passing values between Mediation primitives within the current flow — either the request flow or the responses flow. The transient context cannot link requests and responses and hence cannot be used across. Used when you want to save an input message before a service invokes call (within a request or response flow). After the services invoke call, the next primitive can create another message by combining the service invoke response and the original message stored in the transient context.
An endpoint destination that is shared by several routers, it is worth creating a global endpoint. A global endpoint is not typified for inbound or outbound routing, making it usable in many different places in a configuration file. It must be named so it can actually be used in a service, which will reference the global endpoint by its name. A global endpoint can also help clarify the usage of a particular destination.
It is wrapped in an instance of org.mule.api.MuleMessage, which provides different means of accessing the payload under different forms. A Mule Message also contains properties, much like the header of a SOAP envelope or the properties of a JMS message, and can also have multiple named attachments. The content of a message, also known as payload.
The connector has a technical configuration known as the Transport Service Descriptor (TSD). This hidden configuration is automatically used for each instance of the connector. It defines technical parameters such as what classes to use for the message receivers, requesters, and dispatchers; or the default transformers to use in inbound, outbound, and response routers. Knowing these default values is essential to grasping the behavior of a transport.
It is an event, more specifically an instance of org.mule.api.MuleEvent. This object carries not only the actual content of the message but also the context of the event.
In Mule, a transformer takes care of translating the content of a message from one form to another. It is possible to chain transformers to cumulate their effects. Transformers can kick in at different stages while a message transits through a service.
In Mule, routers play a crucial role in controlling the trajectory a message will follow when it transits in Mule. They are the gatekeepers of the endpoints of a service, taking care of keeping messages on the right succession of tracks so they can reach their intended destinations. Certain routers act like the big classification yards: they can split, sort, or regroup messages based on certain conditions.
In Mule, filters are a powerful complement to the routers. Filters provide the brains routers need to make smart decisions about what to do with messages in transit. Some filters go as far as deeply analyzing the content of a message for a particular value on which their outcome will be based.
In Mule, an endpoint represents the specific usage of a protocol, whether it is for listening/polling, reading from, or writing to a particular target destination. Hence it controls what underlying entities will be used with the connector they depend on. The target destination itself is defined as a URI. Depending on the connector, the URI will bear a different meaning; for example, it can represent a URL or a JMS destination.
Context is a temporary area which is created along with Service Message Object (SMO) in the Mediation Flows. Shared Context is a type of context which is present in the SMO. Shared Context is mainly used when we are using Aggregation process where we need to iterate the BO for Certain times. Shared Context maintains Aggregation data between Aggregation (FanOut and FanIn) primitives. The Content (data) which is present in the shared context BO does not persist across Request and Response flows i.e The Data in the Shared Context which is used in Request flow cannot be used again in Response flow.
A Mule message is composed of different parts: The payload, which is the main data content carried by the message. The properties, which contain the Meta information much like the header of a SOAP envelope or the properties of a JMS message. Optionally, multiple named attachments, to support the notion of multipart messages. Optionally, an exception payload, which holds any error that occurred during the processing of the event.
ESB implementation is not suitable for all projects. Proper analysis should be done if the use of ESB will really benefit the project. Some of the points to be considered while analyzing the need of ESB are as follows:
The file Age property specifies how long the endpoint should wait before reading the file again. For instance, a file Age of 60000 indicates Mule should wait a minute before processing the file again.
The value of this streaming property can be either true or false. If it is set to true then we are actually working on stream of file data otherwise we are working with file itself.
When we want file inbound endpoints to poll their source directories for new content. This is accomplished by setting the polling Frequency to some milliseconds value.
Mule uses configuration builders that can translate a human-authored configuration file into the complex graph of objects that constitutes a running node of this ESB. The main builders are of two kinds: a Spring-driven builder, which works with XML files, and a script builder, which can accept scripting language files.
The default value of auto Delete is true. Therefore, a file inbound endpoint will, by default, remove the file from the source directory once it is read by the inbound endpoint. If you do not want to delete file automatically then you can set auto Delete property to false.
A Mule service is composed of all the Mule entities involved in processing particular requests in predefined manners. A service is defined by a specific configuration. This configuration determines the different elements, from the different layers of responsibility that will be mobilized to process the requests that it will be open to receive. Depending on the type of input channel it uses, a service may or may not be publicly accessible outside of the ESB.
In Mule, the transport layer is in charge of receiving or sending messages. This is why it is involved with both inbound and outbound communications. A transport manifests itself in the configuration by the following elements: connectors, endpoints and transformers. A transport also defines one message adapter. A message adapter is responsible for extracting all the information available in a particular request (data, Meta information, attachments, and so on) and storing them in transport-agnostic fashion in a Mule message.
There are six different types of Flow Processing Strategies. They are
There are different following approaches that can be used when modularizing a configuration. Independent configurations: a Mule instance can load several independent configuration files side by side. Inherited configurations: main idea is to express a formal parent-child dependency between two configurations. By strongly expressing this dependency, you will have the guarantee at boot time that no configuration file has been omitted. Simply by using the same name for the parent and child models and by flagging the child as being an heir, as shown here: <model name=”myConfig”>,<model name=”myConfig” inherit=”true”> Imported configurations: You can easily import external spring application context files into your Mule configuration files. The following illustrates how instance.xml would import its Spring context file: <spring:beans>,<spring:import resource=”instance-beans.xml” /> </spring:beans> Heterogeneous configurations: It is possible to mix several styles of Mule configuration in an instance. An instance can be configured with a Groovy script and Spring XML configuration builders.
ESB provides the middleware and interfaces that allow businesses to connect their applications without writing code. Otherwise, JMS provides messaging capability and facilitates communication between the modules/applications. (Source :Mulesoft doc and wiki and other)
What is Mulesoft?
[dt_sc_button type=”type1″ link=”http://www.interviewgig.com/discussion-room/post-a-question/” size=”large” bgcolor=”#7ed640″ textcolor=”#ffffff” target=”_blank” timeline_button=”no”]Post a Question[/dt_sc_button]
Why Mule?
Can you explain Mule ESB?
Why Mule ESB?
Can you explain API?
What is MuleSoft’s Anypoint Platform? And explain the some tools and services?
What are the features of MuleSoft's Anypoint Platform (Public Cloud)?
Explain different type of messages in Mule?
Can you explain Transient Context?
Can you explain Global Endpoint in Mule?
Can you define payload in Mule?
What is transport service descriptor in Mule?
Define Mule Transformer?
Can you define Transformer in Mule?
Can you define Router in Mule?
Can you define Filter in Mule?
Can you define Endpoint in Mule?
Can you explain Shared Context?
How Message in Mule is composed?
How to find when the project needs ESB?
What is fileage property in file connector in Mule?
Can you explain streaming property in file connector in Mule?
Can you explain polling frequency property in file connector in mule?
Can you explain Configuration Builders in Mule ?
Can you explain auto delete property in file connector in mule?
Can you explain Service Layer in Mule?
Can you explain Transport Layer in Mule?
What are the different types of Flow Processing Strategies?
What are available approaches used for modularizing configurations in mule?
What is the difference between ESB and JMS?