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.
What is Mulesoft?
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.
[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?
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 is lightweight but highly scalable, allowing you to start small and connect more applications over time.
- Mule’s ESB inherently ensures that the communication between a network of applications and other components is transparent, regardless of their existence in the same VM or of the transport protocol used
- Mule has the ability to integrate and connect any type of component. You can effortlessly integrate a wide variety of components from a ‘POJO’ to a component from another framework.
- It enables the reuse of components. Unlike other frameworks, Mule lets you run your existing components without the need for a Mule-specific code.
- Mule is vendor-neutral, so a wide variety of vendor implementations can be seamlessly plugged into it. With Mule, there are no business limitations to explore other options instead of being restricted to a particular vendor.
- Multiple Topologies: Because of its lightweight characteristics, you can deploy Mule in a number of topologies apart from ESB (Enterprise Service Bus) to suit your operation needs. This can allow your business to adapt to any changes in the upcoming technologies.
Can you explain Mule ESB?
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:
- Service creation and hosting
- Service mediation
- Message routing
- Data transformation
Why Mule ESB?
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
Can you explain API?
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:
- Modern APIs adhere to standards (typically HTTP and REST), that are developer-friendly, easily accessible and understood broadly
- They are treated more like products than code. They are designed for consumption for specific audiences (e.g., mobile developers), they are documented, and they are versioned in a way that users can have certain expectations of its maintenance and lifecycle.
- Because they are much more standardized, they have a much stronger discipline for security and governance, as well as monitored and managed for performance and scale
- As any other piece of productized software, the modern API has its own software development lifecycle (SDLC) of designing, testing, building, managing, and versioning. Also, modern APIs are well documented for consumption and versioning.
What is MuleSoft’s Anypoint Platform? And explain the some tools and services?
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)
What are the features of MuleSoft's Anypoint Platform (Public Cloud)?
MuleSoft’s Anypoint Platform Features are:
- Operational control from a central web-based portal
- High availability; Ensures zero message loss reliability
- Connectivity to over 120 leading SaaS and on-premise applications
- Graphical integration custom code out of data mapping and transformation.
- Hardened with thousands of automated tests and bug fixes
- API Management and Analytics
- EDI/B2B Integration
- Real time integration and Batch Integration
- Premium Connectors for SAP, Oracle, Epic, HL7
Explain different type of messages in Mule?
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
Can you explain Transient Context?
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.
Can you explain Global Endpoint in Mule?
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.
Can you define payload in Mule?
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.
What is transport service descriptor in Mule?
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.
Define Mule Transformer?
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.
Can you define Transformer in Mule?
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.
Can you define Router in Mule?
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.
Can you define Filter in Mule?
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.
Can you define Endpoint in Mule?
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.
Can you explain Shared Context?
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.
How Message in Mule is composed?
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.
How to find when the project needs ESB?
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:
- If project needs group action three or additional applications/services. If the necessity is to communicate between 2 applications, mistreatment point-to-point integration would fulfill.
- If the project would wish to be scaled in future wherever it’d be required to interact with additional services in future. Not all projects want this as they’ll perform not that huge a task.
- If the project needs message routing capabilities such as forking and aggregating message flows. Such features are not required by all projects.
- Is the architecture of what is to be achieved clear? It’s much better to do simple POCs integrating small parts to evaluate the benefits.
- Most ESBs are a costly affair. Does the project budget allow use of ESB.
What is fileage property in file connector in Mule?
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.
Can you explain streaming property in file connector in Mule?
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.
Can you explain polling frequency property in file connector in mule?
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.
Can you explain Configuration Builders in Mule ?
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.
Can you explain auto delete property in file connector in mule?
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.
Can you explain Service Layer in Mule?
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.
Can you explain Transport Layer in Mule?
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.
What are the different types of Flow Processing Strategies?
There are six different types of Flow Processing Strategies. They are
- Asynchronous Flow Processing Strategy.
- Custom Processing Strategy.
- Thread Per Processing Strategy.
- Queued Asynchronous Flow Processing Strategy.
- Synchronous Flow Processing Strategy.
- Non-blocking Flow Processing Strategy.
- Queued Flow Processing Strategy.
What are available approaches used for modularizing configurations in mule?
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.
What is the difference between ESB and JMS?
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)