Download Reference Architecture

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
NOT PROTECTIVELY MARKED
Enterprise Architecture 2009
Reference Architecture
Enterprise Service Bus
June 2010
Version:
1.0
Editor Mike Williams
Status: Issued
Date: 16 June 2010
HA Reference Architecture
________________________________________________________________________
Document Control
Reference Architecture – Enterprise Service Bus (ESB)
Mike Williams
Ivan Wells
General – SHARE and PartnerNET
Issued
Document Title
Author
Owner
Distribution
Document Status
Revision History
Version
0.1
1.0
Date
20th October 2009
16th June 2010
Description
First draft.
Baseline issue.
Author
Mike Williams
Mike Williams
Forecast Changes
Version
Date
Description
Reviewer List
Name
Role
Ivan Wells
Reviewer
Various
External peer review
Approvals
Name
Title
Ivan Wells
Strategy and Architecture
Date
Version
Document References
Document Title
Document Links
_________________________________________________________________________
11/05/2017 v1.0
Page 2 of 13
HA Reference Architecture
________________________________________________________________________
CONTENTS
1
INTRODUCTION ........................................................................................................... 4
1.1
PREAMBLE ................................................................................................................... 4
1.2
RELATIONSHIP TO TECHNICAL REFERENCE MODEL (TRM) ............................................. 4
2
PLATFORM INDEPENDENT MODEL (PIM) ................................................................. 6
2.1
SUMMARY DESCRIPTION AND OVERVIEW ....................................................................... 6
2.2
JAVA BUSINESS INTEGRATION ....................................................................................... 6
2.3
WEB SERVICES INVOCATION FRAMEWORK ..................................................................... 7
2.4
JAVA CONNECTOR ARCHITECTURE (JCA) ...................................................................... 7
2.5
JAVA MANAGEMENT EXTENSIONS (JMX) ....................................................................... 9
3
PLATFORM SPECIFIC MODEL .................................................................................. 11
3.1
OVERVIEW ................................................................................................................. 11
3.2
FUSE ESB................................................................................................................ 11
3.3
FUSE MESSAGE BROKER .......................................................................................... 12
3.4
FUSE SERVICES FRAMEWORK ................................................................................... 12
3.5
FUSE MEDIATION ROUTER ......................................................................................... 13
3.6
FUSE INTEGRATION DESIGNER .................................................................................. 13
3.7
FUSE HQ ................................................................................................................. 13
_________________________________________________________________________
11/05/2017 v1.0
Page 3 of 13
HA Reference Architecture
________________________________________________________________________
1
INTRODUCTION
1.1 Preamble
Reference architectures describe one or more Architecture Building Blocks for architectures
in a particular domain. They also provide a common vocabulary with which to discuss
implementations, often with the aim of stressing commonality. In Model-Driven Architecture
(MDA) terms, they equate to Platform Independent Models (PIM’s).
These represent (potentially re-usable) components of business, ICT, or architectural capability
that can be combined with other building blocks to deliver architectures and solutions. Building
blocks can be defined at various levels of detail, depending on which stage of architecture
development has been reached. For instance, at an early stage, a building block can simply
consist of a name, or an outline description, in architecture models which represent a
placeholder for subsequent specifications. Later on, a building block may be decomposed into
multiple supporting building blocks that may then be accompanied by full specifications.
Reference Implementations are examples of software specifications. These are intended as a
guide for Service Providers to develop concrete Solution Building Blocks (SBB’s). In ModelDriven Architecture (MDA) terms, they equate to Platform Specific Models (PSM’s).
These PSM’s are described as either Commercial-Off-The-Shelf (COTS) or Open Source
Software (OSS). In this respect, the HA Technology Policies are aligned with CrossGovernment Enterprise Architecture (xGEA) Technical Policies. These specify that OSS
components should be considered as viable building blocks wherever they can be shown to
meet the business requirements and offer Value for Money (VfM). Therefore, actual product
selections will generally be determined through procurements and their evaluations of the Most
Economically Advantageous Tenders (MEAT).
Where such selections have already been made, the Reference Implementations will be
superseded by Level 2 (Physical) Technology Policies which reinforce the use of those
components. Some of these components will stem from a build out, through re-use, of the HA’s
more recently acquired, existing infrastructure assets and investments, such as in Business
Intelligence. In all other cases, the PSM’s will be based on OSS projects which implement the
relevant Open Standards.
1.2 Relationship to Technical Reference Model (TRM)
This reference architecture refers to the Enterprise Service Bus (ESB) which is a sub-set of the
SOA Service Fabric.
_________________________________________________________________________
11/05/2017 v1.0
Page 4 of 13
HA Reference Architecture
________________________________________________________________________
Figure 1 - TRM Context
_________________________________________________________________________
11/05/2017 v1.0
Page 5 of 13
HA Reference Architecture
________________________________________________________________________
2 PLATFORM INDEPENDENT MODEL (PIM)
2.1 Summary Description and Overview
The reference architecture for the ESB is comprised of the following Open Systems, Javabased specifications:

Java Business Integration (JBI): A specification developed under the Java Community
Process (JCP) that describes the way that integration components can be plugged
together in a vendor-neutral and portable manner.

Web Services Invocation Framework (WSIF): An open-ended framework for invoking
Web Services Description Language (WSDL) described services.

J2EE Connector Architecture (JCA): A specification that defines the use of a standard
set of interface contracts to inter-connect enterprise applications.

Java Management eXtensions (JMX): A specification for remote management of
applications and services through standard management consoles which includes:
o
Configuration data,
o
Commands for controlling service lifecycles,
o
Runtime alerts and event notifications,
o
Health monitoring, and
o
Statistics gathering.
2.2 Java Business Integration
JBI is a Java-based standard (JSR208) to build integrations by using plug-in components which
interoperate through mediated normalised message exchanges. The message exchange model
is based on the Web Services Description Language (WSDL).
Figure 2 below illustrates the high-level conceptual model for JBI’s plug-in framework which
facilitates the loose-coupling required for a Service Oriented Architecture (SOA). The JBI
environment provides interfaces to be used by a number of plug-in components. The
component plug-ins do not interact with each other directly. Instead, the JBI environment acts
as an intermediary to route messages between components. This separation is the key to
loose-coupling between service providers and consumers, which is one of the primary goals of
SOA’s. In addition, it provides a key point for message processing and monitoring.
Figure 2 - JBI Plug-in Model
_________________________________________________________________________
11/05/2017 v1.0
Page 6 of 13
HA Reference Architecture
________________________________________________________________________
2.3 Web Services Invocation Framework
Information systems often consist of many different software components, such as legacy
applications which were developed on different platforms. To integrate all these components,
integrators have to deal with numerous, disparate protocols. For example, if software migrates
to a different server or has been upgraded to use a new technology, then any integrations need
to be re-engineered. However, it has become more common practice to expose all of these
applications and their legacy API’s as SOAP-based Web Services.
The Web Services Invocation Framework (WSIF) enables many of these legacy services to be
invoked by service consumers as if they were Web Services without them actually having been
implemented as such. By defining, in an extended WSDL document, what the service looks like
in functional terms and how it can be invoked in terms of protocol and physical location, the
WSIF framework can translate a simple service call from the service consumer into the required
native protocol call. It also transforms the service response back into a generic response
format. As a result, the service consumer needs no knowledge of the actual implementation of
the service - that is all abstracted by WSIF and its protocol-specific providers. This is illustrated
in Figure 3 below.
Figure 3 - The Web Services Invocation Framework
2.4 Java Connector Architecture (JCA)
Prior to the advent of the J2EE Connector Architecture, integrating a J2EE application and an
Enterprise Information System (EIS) was complex and problematic, as there were no existing
standards for such integrations. Each EIS vendor supplied their own proprietary solution to the
problem and usually didn't support all J2EE application server platforms. This made it very
difficult to develop truly portable applications that integrated with enterprise information systems
- a custom effort was needed to integrate each application server and EIS combination.
Figure 4 below illustrates the J2EE application and EIS integration complexity.
_________________________________________________________________________
11/05/2017 v1.0
Page 7 of 13
HA Reference Architecture
________________________________________________________________________
Figure 4 - Integration before and after JCA
JCA is composed of three primary elements:
2.4.1

System contracts.

Client API.

Resource adapter module.
System contracts
System contracts define the interfaces between the application servers and the EIS’s. The EIS
side of the system contract is implemented by a resource adapter – a system-level software
driver specific to a particular EIS. The application server and the resource adapter collaborate
by means of the system contract to provide secure, robust, scalable access to the EIS.
Three types of system contracts are defined:
•
•
•
The connection management contract enables physical connections to the EIS and
provides a mechanism for the application server to pool those connections.
The transaction management contract supports access to an EIS in a transactional
context. Transactions can be managed by the application server, providing
transactions that incorporate other resources besides the EIS, or they can be internal
to the EIS resource manager, in which case no transaction manager is required.
The security contract supports secure access to the EIS.
How system contracts are implemented on each side (application server and resource adapter)
is not specified by JCA; they can be implemented as each vendor sees fit.
2.4.2
Client API
The second element of JCA is the client API. The API can be specific to the resource adapter
or it can be the standard Common Client Interface (CCI) as defined by JCA. The CCI is
intended to be used by vendors to provide integration tools and frameworks, making it easier
for developers to access enterprise systems. It is recommended (but not mandated) that the
resource adapter make use of the CCI.
_________________________________________________________________________
11/05/2017 v1.0
Page 8 of 13
HA Reference Architecture
________________________________________________________________________
2.4.3
Resource adapter module
The resource adapter module contains all of the elements necessary to provide EIS
connectivity to applications. Specifically, the resource adapter module includes the following
components:
•
•
•
•
The Java classes and interfaces that implement the resource adapter.
Any utility Java classes required by the resource adapter.
Any EIS-specific platform-dependent, native libraries.
The deployment descriptor.
Application servers make use of the deployment descriptor supplied with a resource adapter to
configure it to a specific operational environment.
2.5
Java Management eXtensions (JMX)
The Java Management Extensions (JMX) API is a standard, developed through the Java
Community Process (JCP) as JSR 3, for managing and monitoring applications and services. It
defines a management architecture, design patterns, API’s, and services for building webbased, distributed, dynamic, and modular solutions to manage Java-enabled resources. The
JMX API’s make it possible to add manageability to Java-enabled equipment, from web phones
to set-top boxes to network devices and servers. Using JMX technology to manage services
increases their added-value by making applications easier to install, configure, and maintain.
JMX technology provides a tiered architecture where managed resources and management
applications can be integrated in the plug-and-play approach as shown in Figure 5. A given
resource is instrumented at the Probe Level by one or more Java objects known as Managed
Beans (or MBeans), which are registered in a core managed object server known as the
MBean server. This server acts as a management agent and can run on most Java-enabled
devices.
Figure 5 - JMX Architecture
_________________________________________________________________________
11/05/2017 v1.0
Page 9 of 13
HA Reference Architecture
________________________________________________________________________
There are three tiers or levels in this architecture:
• Instrumentation (or Probe);
• Agent; and
• Remote Management.
2.5.1
Instrumentation (Probe) Level
This level contains MBeans and their manageable resources. It provides a specification for
implementing JMX technology-manageable resources, which can be an application, service,
device, or user. A resource is manageable if it is developed in Java (or provides a Java
wrapper) and has been instrumented so that it can be managed by JMX-compliant applications.
A resource is instrumented by one or more MBeans that are either standard or dynamic.
Standard MBeans are Java objects that conform to certain design patterns (for example, they
must have a constructor and setter/getter methods). A dynamic MBean conforms to a specific
interface that offers more flexibility at runtime. The instrumentation of a resource allows it to be
manageable at the agent level; however, MBeans do not require knowledge of the JMX agent
with which they operate. In other words, any JMX-manageable resource can use any JMX
agent that offers the services it requires.
2.5.2
Agent Level
This level contains the JMX agents used to expose the MBeans. It provides a specification for
implementing agents, which control the resources and make them available to remote
management applications. Agents are usually located on the same device as the resources
they manage, but this is not a necessary pre-requisite. The JMX agent consists of an MBean
server and a set of services for handling MBeans. Managers access an agent's MBeans and
use the provided services through a protocol adaptor or connector. However, JMX agents do
not require any knowledge of the remote management applications that use them.
2.5.3
Remote Management Level
This level contains the components that enable management applications to communicate with
JMX agents. It provides the interfaces for implementing JMX managers, and defines the
management interfaces and components that operate on agents. Such components provide an
interface for a management application to interact with an agent and its JMX manageable
resources through a connector, and also expose a management view of a JMX agent and its
MBeans by mapping their semantic meaning into the constructs of a data-rich protocol (such as
XML).
_________________________________________________________________________
11/05/2017 v1.0
Page 10 of 13
HA Reference Architecture
________________________________________________________________________
3 PLATFORM SPECIFIC MODEL
3.1 Overview
The chosen reference implementation for the ESB is FUSE. This is based on the fact that the
HA is a “greenfield site” for ESB’s coupled with the fact that it’s Open Source Software (OSS),
which is in line with Government policy.
FUSE, is a distribution of open source SOA tools (much like “Red Hat” is a distribution of the
Linux operating system). It’s a set of standards-based enterprise integration products based on
popular Apache SOA projects. The FUSE Team includes the 4 Project Management Committee
(PMC) chairs, 4 Apache Members, and over 20 active Apache committers on the projects. The
FUSE Architecture is shown in Figure 6 below.
Figure 6 - FUSE Architecture
The main components are described in outline in the following sections.
3.2 FUSE ESB
FUSE ESB a fully standards-based and open source integration platform based on Apache
ServiceMix. It is a robust application integration infrastructure that supports flexible deployment
configurations ranging from embedded, Java J2EE, and standalone OSGi containers.
FUSE ESB has a pluggable architecture that allows organisations to implement their preferred
service solutions in a standards-based SOA. Any standard JBI service engine or binding
component or OSGi-compliant bundle, including BPEL, XSLT or JMX engines, may be
_________________________________________________________________________
11/05/2017 v1.0
Page 11 of 13
HA Reference Architecture
________________________________________________________________________
deployed to a FUSE ESB container, and FUSE ESB components may be deployed to other
ESB’s.
SUPPORTED STANDARDS: FUSE ESB strictly adheres to industry standards beyond OSGi
and JBI, and supports JMS 1.1; AJAX, REST, HTTP, TCP, SSL, UDP and multicast transport
protocols; Web services standards SOAP, WSDL, JAX-WS, JAX-RS, WS-Security and WSReliableMessaging; dependent specifications such as JTA and JNDI; email and FTP; Through
its internal JBI-based API’s, FUSE ESB supports WS-BPEL 2.0 for orchestration, XSLT,
XQuery, Smooks frameworks, and JMX-compliant solutions for systems management.
Further details can be found at: http://fusesource.com/products/enterprise-servicemix4/.
3.3 FUSE Message Broker
FUSE Message Broker is an open source JMS message broker that is based on Apache
ActiveMQ. It is a JMS platform for scalable, high-performance infrastructure to connect
processes across heterogeneous systems.
Figure 7 ActiveMQ Architecture
Further details can be found at: http://fusesource.com/products/enterprise-activemq/.
3.4 FUSE Services Framework
FUSE Services Framework is a flexible open source SOAP and REST web services platform
based on Apache CXF. It is lightweight and easily service-enables existing systems to leverage
new and legacy applications in an enterprise infrastructure.
_________________________________________________________________________
11/05/2017 v1.0
Page 12 of 13
HA Reference Architecture
________________________________________________________________________
Figure 8 - FUSE Services Framework Architecture
Further details can be found at: http://fusesource.com/products/enterprise-cxf/.
3.5 FUSE Mediation Router
FUSE Mediation Router is an open source tool for integrating services, applications, and
transport protocols using Enterprise Integration Patterns based on Apache Camel. It uses a
standard method of notation to go from diagram to implementation without coding.
Further details can be found at: http://fusesource.com/products/enterprise-camel/.
3.6 FUSE Integration Designer
FUSE Integration Designer is an Eclipse-based tool for creating and integrating Web services
using Enterprise Integration Patterns (EIP’s) as a standard method of notation for integration 1.
The Designer includes a canvas for visualising, creating and debugging EIP’s and wizards for
generating and deploying services.
Further details can be found at: http://fusesource.com/products/fuse-integration-designer/.
3.7 FUSE HQ
FUSE HQ is a management and monitoring system available as a part of a FUSE support
subscription. It is integrated with the FUSE product family for real-time administration and
control of FUSE-based infrastructures.
Further details can be found at: http://fusesource.com/products/fuse-hq/.
1
See http://www.eaipatterns.com/.
_________________________________________________________________________
11/05/2017 v1.0
Page 13 of 13