Looks like no one added any tags here yet for you.
Software Architecture
a set of statements that describe software components and assigns the functionality of the system to these components.
Booch, Rumbaugh, and Jacobson
"An architecture is the set of significant decisions about the organization of a software system . . ."
Brass, Clements, and Kazman
"The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them."
IEEE Standard 610.12-1990
"Architecture is the organizational structure of a system."
Fowler
"'Architecture' is a term that lots of people try to define, with little agreement. There are two common elements: One is the highest-level breakdown of a system into its parts; the other, decisions that are hard to change."
Service Oriented Architecture (SOA)
a software architecture that is based on the key concepts of an application frontend, service, service repository, and service bus.
Contract
Interface
Implementation
Business logic
Data
Elements of SOA
Services
consists of a contract, one or more interfaces, and an implementation.
Application Front-ends
initiate and control all activity of the enterprise systems.
Middleware heterogeneity
Protocol heterogeneity
Synchrony heterogeneity
Diversity of data formats
Diversity of interface declarations
No common place for service lookup
Technological heterogeneity
Middleware heterogeneity
more than one type of middleware is being used. The two most common types are application servers and message-oriented middleware (MOM).
Protocol heterogeneity
refers to the different transport protocols being used to access the services offered by various applications. Examples of such protocols include IIOP, JRMP, HTTP, and HTTPS.
Synchrony heterogeneity
support both synchronous and asynchronous interactions between applications.
Diversity of data formats
most of the time the data is dependent on the middleware being used. This diversity of data can cause a problem if two applications that wish to interact support different data formats.
Diversity of interface declarations
large differences in the way service interfaces are declared and used to invoke a service. For example, the way interfaces are declared in CORBA and Java RMI are different.
No common place for service lookup
no common place to look up services to deal with the diversity of services in a large enterprise.
Web Services
a software system that supports interoperable machine-to-machine interaction over a network.
XML
SOAP
WSDL
UDDI
Standards that have been developed to partly deal with heterogeneity problems:
XML
is a common data communication language that is independent of different middleware technologies.
SOAP
defines a common format for messages between applications.
WSDL
is language- and platform-independent standard that defines the interface for a service offered by a given application.
UDDI
provides a common way to publish and discover a service.
Apache Camel
is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.
Spring Boot
It has a support for ________________ to provide auto-configuration of the Camel context by auto- detecting Camel routes available in the Spring context and registers the key Camel utilities as beans. It also provides starters for the Camel components.
template.requestBody("direct:example" , "<foobar xmlns=\"http://foo.com\"><msg>test message</msg></foobar>");
sent a message: