Application development has seen many changes over the years. New development strategies, emerging tools and techniques, and architectural patterns are changing how applications are developed now. This session will introduce you to how the application development has changed over time and what are the current trends with regard to developing scalable and business friendly applications.
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Evolution of Application Development
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