Spring framework combined with other open source software

The Spring framework is an open source framework for the Java platform. The purpose of the Spring framework (often referred to simply as Spring) is to simplify development with Java/JavaEE and to promote good programming practice. Spring has a wide range of functionality and offers an end-to-end solution for developing applications and business logic. The focus is on decoupling individual framework components and on the interaction of a variety of platforms and tools, ranging from J2EE servers and persistence tools, to web integration.

The Spring Integration and Spring Batch subprojects, and other components in the open source environment that can easily be combined with the Spring Universe, enable the Spring framework to be used for integration solutions.

The following diagram shows the components of the Spring framework and other open source software in the integration blueprint:

Spring framework combined with other open source software

The following table holds a description of the components of the Spring frameworkand other open source software, as shown in the preceding diagram:

Component

Description

Apache Camel

Apache Camel is a powerful open source integration framework, which supports and implements most of the patterns/building blocks described in Chapter 2, Base Technologies. Camel allows for the creation of the Enterprise Integration Patterns to implement routing and mediation rules in either a Java-based domain-specific language (or Fluent API), through Spring-based XML Configuration files, or through the Scala DSL.

Apache Commons SCXML

State Chart XML (SCXML) is currently a Working Draft published by the World Wide Web Consortium (W3C). SCXML provides a generic state-machine-based execution environment based on Harel State Tables.

Apache Commons SCXML is a candidate for the control language within multiple markup languages coming out of the W3C (see Working Draft for details). Commons SCXML is an implementation aimed at creating and maintaining a Java SCXML engine that is capable of executing a state machine defined using a SCXML document, while abstracting out the environment interfaces.

Apache Hadoop

Apache Hadoop is a Java software framework that supports data-intensive distributed applications. It enables applications to work with thousands of nodes and petabytes of data. Hadoop was inspired by Google's MapReduce and Google File System (GFS) papers.

Apache ODE

Apache ODE was developed by Apache Software Foundation and stands for Orchestration Director Engine. It can execute business processes that follow the WS-BPEL standard.

Atomikos

Atomikos provides a transaction management solution for XTP, SOA, and open source environments offering basic support for JDBC/XA pools, JMS/XA pools, and JTA/XA to enable functional testing of transaction processes outside of the application server.

Esper

Esper is an open source event processor for CEP and ESP applications. Esper simplifies and speeds up the development of applications with a large number of incoming events or messages. This enables events to be analyzed, filtered, and consumed in different ways, and in real time.

Because it is a pure CEP engine, Esper must be embedded in an application in such a way that the events can be passed to the engine, and the corresponding actions carried out. Therefore, Esper is also ideally suited to integration in the Spring platform.

Esper has its own query language called Event Processing Language (EPL), which has many similarities with SQL.

Hibernate

Hibernate is an open source persistence framework for Java. The framework allows the status of an object in a relational database to be stored, and objects to be created from the corresponding records. This functionality is referred to as Object-Relational Mapping (ORM), and it means that developers do not need to program SQL queries. It ensures that the application is independent of the SQL dialect of the database. The objects are standard objects with attributes and methods (referred to in Java as POJOs, or plain old Java objects). The relationships between the objects are mapped to the corresponding database relationships.

JBoss Rules

JBoss Rules is an open source rule engine. It takes the form of a library and is available free of charge with an Apache license. At the heart of the rule engine is an inference engine. Its job is to match facts and rules (pattern matching) in order to make conclusions that trigger corresponding actions.

jBPM

jBPM is a framework developed by JBoss for the purpose of implementing workflows for the Java EE platform. The Java Process Definition Language (jPDL) is used to define the processes. The jPDL is a format based on XML that is only used in the jBPM. A graphical editor is also available for the jPDL.

Mule

Mule is a set of components that allows independent applications to communicate with one other simply (often in a purely declarative form) through a virtualized transport layer. In principle, Mule is an implementation of the Enterprise Integration Patterns, presented in (Hohpe, Wolf 2004).

Nagios

Nagios is a popular open source computer system and network-monitoring software application. It watches hosts and services, alerting users when things go wrong, and again when the errors have been fixed.

OS Workflow

OS Workflow from OpenSymphony is a basic implementation of a workflow engine, which is highly flexible. It uses its own dialect of XML to describe the workflows, and a rudimentary GUI editor is available for the XML dialect.

OSGi

The specification of the Open Service Gateway initiative service platform is a Java-based runtime environment above the level of JVMs and their basic services. One of the main features of the service platform is its ability to execute dynamic, controlled service applications (referred to as bundles) at runtime and, most importantly, to update and then remove them. The model of the OSGi service platform therefore makes it possible to run different, largely independent, modular applications in parallel on the same virtual machine, and to manage and update them remotely throughout the entire lifecycle of the applications. Dependencies between bundles are automatically resolved and an intelligent version management system is available.

Quartz Scheduler

Quartz Scheduler is an open source job scheduling system that can be integrated with any J2EE or J2SE application, or used as a standalone solution. Quartz can be used to create simple or complex workflow plans with just a few hundred or several thousand jobs, where a job is a standard component such as an EJB or a Spring bean (POJO). Quartz supports distributed transactions and clustering.

Spring Batch

Spring Batch is a light-weight, comprehensive batch framework designed to enable the development of robust batch applications that are vital for the daily operations of enterprise systems.

Spring Batch provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. It also provides technical services that enable extremely high-volume and high-performance batch jobs to be created through the use of optimization and partitioning techniques.

Spring Integration

Spring Integration provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns (Hohpe, Wolf 2004), while building on the Spring Framework's existing integration mechanisms.

It enables messaging within Spring-based applications and integrates with external systems through adapters. These adapters provide a higher level of abstraction than the Spring framework support for remoting, messaging, and scheduling.

Spring ORM and DAO

The Spring ORM module is an integration of the most popular ORM framework. However, it does not provide its own ORM solution, but instead integrates Hibernate, Oracle TopLink, JDO, and iBATIS SQL Maps in a standardized form.

The Spring DAO module is an abstraction of JDBC, which significantly simplifies programming for the JDBC API.

Spring Security

Spring Security provides comprehensive security services for J2EE-based enterprise software applications. There is a particular emphasis on supporting projects built using The Spring framework, which is the leading J2EE solution for enterprise software development. If you're not using Spring for developing enterprise applications, we warmly encourage you to take a closer look at it. Some familiarity with Spring—and in particular, dependency injection principles—will help you get up to speed with Spring Security more easily.

SpringSource Application Platform

The SpringSource Application Platform is a completely modular Java application server designed to run enterprise Java applications and Spring-powered applications. The platform is based on the new SpringSource Dynamic Module Kernel, and provides a module-based server, which uses the power of Spring, Apache Tomcat, and OSGi.

WSO2 BAM

The WSO2 Business Activity Monitor serves the needs of both business and IT domain experts to monitor and understand business activities within an SOA deployment. While specifically designed to monitor SOA deployments, it can be extended to cater to other general monitoring requirements as well.

WSO2 BAM supports both zero latency, as well as straight through processing. Data is collected through push or pull models, automatically, and processed in real time, to be made available for business and IT users.

WSO2 Data Services Server

The WSO2 Data Services Server augments SOA development efforts by providing an easy-use platform for creating and hosting data services. Data services are essentially web services that provide unprecedented access to data stored in heterogeneous data stores, thus enabling easy integration of data into business processes, mashups, gadgets, BI applications, and any service in general.

WSO2 Governance Registry

WSO2 Governance Registry addresses both design-time and runtime governance scenarios, to ensure compliance with corporate standards. It allows enterprise architects and developers to always keep track of the services being created and used within an SOA. The WSO2 Governance Registry connects SOA infrastructure with the people, processes, and policies essential to an effective SOA.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset