1. Evolution of Application Development
From apps, services and APIs to microservices
Kishanthan Thangarajah Afkham Azeez
Tech Lead Snr. Director, Platform Architecture
May 24, 2017
2. Agenda
We will talk about;
● Network connected programs
● Web Applications
● Services
● APIs
● Microservices
2
5. What are the problems in this approach?
● Concurrency handling
● Scaling
● Efficient management of resources
● Everything you need has to be written from scratch every time
● No server environment
● No standards
5
10. ● Developer only need to focus on the business logic
● All complexities are now handled at the application server layer
○ Concurrency
○ Standards (HTTP)
○ Resource management (memory)
● Easy to port applications from one server to another
Advantages of Applications over Standalone
Programs
10
12. What is a Service?
A software functionality or a set of software
functionalities (such as the retrieval of specified
information or the execution of a set of operations)
with a purpose that can be reused by different clients
for different purposes
13. ● Services are well-defined, self-contained.
● Serve as a contract between the service consumer and service
provider.
● Ability to discover and consume services is the fundamental of
SOA (Service Oriented Architecture) level.
Why do we need services?
13
16. ● Standard way to secure and manage API endpoints.
● External consumers / developers interact with your system using
the API’s exposed.
● Mainly we need security, analytics and monetization with API’s
● Other requirements such as throttling, caching, etc are also
needed.
Why do we need APIs?
16
17. Echo API
● Demo - Expose the previously created service as an API in WSO2
API Manager
17
19. What is MSA?
A method of developing software applications as a
suite of independently deployable, small, modular
services in which each service runs a unique
process and communicates through a
well-defined, lightweight mechanism to serve a
business goal.
19
24. Componentization via Services
● Micro services will use libraries, but their primary
way of componentizing their own software is by
breaking down into services.
● Use explicit component interface during
communication.
24
30. What is MSF4J?
A lightweight, high performance
framework for building microservices
in Java
30
31. What does it provide?
● Lightweight & fast runtime
● Uses Java annotations as a way of defining microservices
APIs as well as metrics
● Supports well known & widely used methods such as JAXRS
annotations
● Provides simple ways to develop & deploy microservices
31
33. Try it out
● Get the latest release from
https://github.com/wso2/msf4j/releases
● Start with the “Getting started guide”
● A good place to start is the samples
https://github.com/wso2/msf4j/tree/master/sampl
es
33