Tuesday 26 April 2016

MuleSoft

Mule is Has Advanced Technologies:


SEDA
–Staged Event-Driven Architecture
•Java NIO
–Java New Input/Output
SEDA:
•SEDA decomposes a complex, event-driven software application into a set of stages connected by queues
•This design avoids the high overhead associated with thread-based concurrency models, and decouples event and thread scheduling from application logic
•By performing admission control on each event queue, the service can be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity
•SEDA employs dynamic control to automatically tune runtime parameters (such as the scheduling parameters of each stage) as well as to manage load, for example, by performing adaptive load shedding
•Decomposing services into a set of stages also enables modularity and code reuse, as well as the development of debugging tools for complex event-driven applications

Java NIO:
•NIO is a collection of Java programming language APIs that offer advanced features for intensive I/O operations
•NIO facilitates an implementations that can directly use the most efficient operations of the underlying platform
•NIO includes:
–Buffers for data of primitive types
–Character set encoders and decoders
–A pattern-matching facility based on Perl-style regular expressions (in package java.util.regex)
–Channels, a new primitive I/O abstraction
–A file interface that supports locks and memory mapping
–A multiplexed, non-blocking I/O facility for writing scalable servers

Mule’s “Moves Things Around
•Folder to folder
•Queue to queue
•Shared memory to shared memory
•Using different types of transports
•In a flexible way

XML Pipeline
•An XML pipeline is a series of operation that are performed on one or more XML files
•Examples include:
–validate
–transform
–prune (remove nodes)
–split (break a single XML file into many files)
–merge (join two or more files together)

Universal Message Object (UMO)
•A UMO is a type of Java object that can
–receive events "from anywhere"
–send events
•UMO Components are usually your business objects. They are components that execute business logic on an incoming event
•UMO are standard JavaBeans (containers)
•There is no Mule-specific code in your components
•Mule handles all routing and transformation of events to and from your objects based on the configuration of your component.