As different independent software systems appear to tackle with an increasingly complex business logic, the need for decomposing the logic of a single monolithic application and / or to intercept new software solutions to legacy systems is constantly gaining ground as the appropriate (and most convenient) solution. Under this situation, the smooth integration of software systems via well-defined exposed APIs becomes particularly important. However, the real evolution to cooperative software systems is held back essentially because legacy applications were never originally designed to interoperate and hence are not ready to co-exist and serve within an ecosystem.
To bridge this emerging gap, a set of empirical Enterprise Integration Patterns have been acknowledged as an attempt to aid the smooth and the seamless integration of independent and often heterogeneous applications. Towards this direction, Apache Camel has been revealed as a framework that collects well-known integration patterns and provides them as ready-to-use solutions to integration problems. As such, Apache Camel introduces a new way of doing and thinking about system integration that results in much cleaner, easier to understand architecture and maintainable code. In other words, Apache Camel is a framework whose main goal is to make integration easier, while taking care of (almost) all the underlying details under the wood. It has become very popular and today has an ever-growing community. It is not an exaggeration to claim that Apache Camel since its release in 2007 has disrupted the integration market much like the Spring Framework disrupted the Java EE market in 2003.
Additionally, in the context of System Integration particular attention should be paid to Asynchronous messaging, which is of key-importance and after all is expected to play even the most crucial role in enterprise software development. Indeed, messaging is the key technology that carries the greatest promise to efficiently integrate heterogeneous applications and systems that inherently are independent of each other. The importance of asynchronous messaging is such that recently has been also considered successfully in applications beyond the strict scope of communication between independent software systems. Indeed, messaging has been elevated to a communication infrastructure that offers high throughput, reliable communication and much more advanced features. Therefore, a messaging component that originally falls within the family of integration patterns, can be also viewed as touching the area of streaming applications (i.e. the big data era) in such a way that eventually it constitutes an independent architectural entity.
- This specific Code.Learn program lasts 3 days (Thursday, Friday & Saturday) with 16 hours of lectures and hands-on exercise on a real life project.
This training deals with a modern and continuously growing topic: System (or API) Integration principles with the aid of messaging. The training reviews the key approaches and common practices for efficient integration patterns among heterogeneous and independent systems, while it emphasizes in two directions:
- Apache Camel that is the most representative and robust Framework that promises to offer seamless integration solutions while hiding from the engineer all unnecessary complexity.
- Asynchronous messaging systems as a communication means between different systems and as a streaming solution.
Indicative hands on examples follow the theory and focus on the smooth combination of these two modern trends: Apache Camel and asynchronous messaging architectures, managed by Spring application infrastructure.
Computer scientists, software engineers and developers that want to boost their career are welcome to participate to this code.learn program and unlock the full potentiality of the topics taught by upskilling their future career.