Middleware is essential for application development which increases the productivity of full-stack developers by bringing battle hardened functional capabilities covering the majority of a digital-driven project. However, with the adoption to Microservices and cloud-native application architecture middleware cannot use like used in the past, this is a solution for the above problem.
Complexity created by distributed computing encapsulated by the middleware for over two decades and made application developers productive by letting them focus on business logic relevant to their domain. Modern architecture and technology drift, such as Microservices, Cloud-native, and Serverless do not have room to embed middleware into the application development while the need is still there.
In this talk, Asanka is going to deep-dive into an API-centric, decentralized, and code-first approach to fill the void of middleware and make the application developer productive again.
1. INTEGRATION SUMMIT 2019
The Reconstitution of Middleware with APIs
Story of a Middleware Developer
Asanka Abeysinghe
Deputy CTO & VP, Architecture - CTO Office
WSO2, Inc
3. First day at work
picture credit: https://www.richard-banks.org
4. First weeke at work
ISAM
DCom INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS rec-key1
ALTERNATE RECORD KEY IS rec-key2
10. Middleware is computer software that provides services
to software applications beyond those available from the operating
system. It can be described as "software glue”.
Middleware makes it easier for software developers to implement
communication and input/output, so they can focus on the
specific purpose of their application.
11. Type of Middleware
Message Oriented Object Oriented
Remote Procedure Call Database
Transaction Portals
Embedded Content-centric
12. Same power in different forms
picture credit: https://www.thetimes.co.uk/article/asterix-exhibition-the-indomitable-gaul-who-restored-frances-postwar-pride-wpfcfqv2s
16. 2019
1997 2003
Architect
2012
VP Solutions
Architecture
2001 2008
Director
Solutions
Architecture
Deputy CTO
Open Source
Distributed Computing
Programmer
COBOL
OLE, OLE2
COM, COM+
DCOM
CORBA
Java Developer
J2EE
MMS
286-DX4
Eventing
FIX
HL7
Committer
CONNECT-health
Global architecture team
500+ customers
Champions program
Chief
Architect2005
QSP
AR
Trusted advocate
Game hacker
C++ programmer
Age-16
Hedge fund tools
Ref. Architecture
Ref. Methodology
Evangelize
2018
Middleware Developer
17. In the long run
Middleware is disappearing
- in to code (simpler constructs, more power)
- in to infrastructure (scaling, management,
observability)
22. Step 1 Step 1
Step 1
Step 2 Step 2
Step 2
… …
…
Step n Step p
Step q
SGMM
SOA
Governance
Planning
Assessment
SOA
Governance
Capabilities
Heat Map
SOA
Governance
Transition
Plan
SOA
Governance
Assets Techniques, Checklist,
Guidance, Examples
Governance Process
Models
Complex processes
inturupt flow
23. App Logic
. . .
Scaling HA Resilience Observability
Scaling HA Resilience Observability
HA Resilience Observability
Compute Network Storage
Ops Infrastructure
Centralized
Dev Org
Middleware
& Integration
CoE Teams
Ops
Team
HA Resilience ObservabilityScaling
INTEGRATION
HA Resilience ObservabilityScaling
MESSAGING
HA Resilience ObservabilityScaling
DATA
HA Resilience ObservabilityScaling
SECURITY
App LogicApp Logic
App 1 App 2 App (n)
Fast Waterfall
“Wagile”
29. COMPOSABLE ENTERPRISE WITH CLOUD NATIVE
Autonomous releases, CI/CD, self-organization, change-control authority
App (n)
App
Microservice
INTEGRATION
MESSAGING
DATA
SECURITY
App 1
INTEGRATION
MESSAGING
DATA
SECURITY
Microservices
App 2
App
Miniservices
INTEGRATION
MESSAGING
DATA
SECURITY
APIs
Self-
Organizing
Dev Teams
. . .
Ops
Team
Event-Based Hybrid Integration Platform
Scaling | HA | Resilience | Observability
Orchestration & High-Performance Data Store
Ops Infrastructure
Architecture Blocks Enable the Composable Enterprise
App Logic
. . .
Scaling HA Resilience Observability
Scaling HA Resilience Observability
HA Resilience Observability
Compute Network Storage
Ops Infrastructure
Centralized
Dev Org
Middleware
& Integration
CoE Teams
Ops
Team
LAYERED ENTERPRISE WITH CENTER OF EXCELLENCE
Coordinated releases, organizational rigor, centralized change control
HA Resilience ObservabilityScaling
INTEGRATION
HA Resilience ObservabilityScaling
MESSAGING
HA Resilience ObservabilityScaling
DATA
HA Resilience ObservabilityScaling
SECURITY
App LogicApp Logic
App 1 App 2 App (n)
DevOps
30. Control Plane:
- Signaling of the network
- Makes decisions about the traffic flow
Data Plane:
- Forwards traffic between hops
- Takes data packets
picture credit: https://www.flickr.com/photos/teflon/
Management Plane:
- Configure
- Observeabiltty, Monitor
31. Intra and Inter communication
Architecture Blocks Architecture Blocks
32. Intra and Inter communication
Local-mesh
Global-mesh
Architecture Blocks Architecture Blocks
35. In the long run
Middleware is disappearing
- in to code
- in to infrastructure
36. Pragmatic Approach
Ballerina: middleware embedded into the code
Cellery: middleware embedded into the infrastructure
Cell-based Architecture: decentralized architecture
Agile Methodology: increase the flow efficiency
37. A cloud-native programming language for microservices and APIs
- A compiled, transactional, statically and
strongly typed programming language with
textual and graphical syntaxes.
- Incorporates fundamental concepts of
distributed system integration
- Offers a type safe, concurrent environment
to implement microservices with
distributed transactions, reliable
messaging, stream processing, and
workflows
- Compiles into container images for
deployment on Kubernetes and Docker
https://ballerina.io/
42. Cell: Units of Enterprise Architecture
A cell is a collection of
components, grouped from
design and implementation
into deployment. A cell is
independently deployable,
manageable, and observable.
43.
44. Cell Types
Cell Type Components
Logic Microservices, Functions, MicroGateways, lightweight storages
Integration MicroESB or other integration microservices, lightweight storage and/or cache
Legacy Existing systems, legacy services
External SaaS and partner systems
Data RDBMS, NoSQL, File, Message Broker*
Identity IDP, user stores
Channel Web Apps, IoT, mobile apps