#META_LECTURE#: #TITLE#

Modified: #LAST_MODIFIED#
Humla v#HUMLA_VERSION#
Service Definition

Service Views

Interface, Description and Implementation

Service Interface

Public Process

Service Characteristics

Integrating Applications

Integration and Interoperability

Service Oriented Architecture

One-to-One Service Integration

Many-to-Many Service Integration

Integration Approaches Overview

Data-oriented Integration

Service-oriented Integration

Integration and Types of Data

Enterprise Service Bus

Integration Patterns
Synchronous and Asynchronous Integration

Synchronous and Asynchronous Integration

  • Synchronous
    • one socket, |treq – tres| is small
    • easy to implement and deploy, only standard firewall config
    • only the server defines endpoint
  • Asynchronous
    • request, response each has socket, client and server define endpoints
    • |treq – tres| can be large (hours, even days)
    • harder to do across network elements (private/public networks issue)

Asynchronous via Intermediary

  • Intermediary
    • A component that decouples a client-server communication
    • It increases reliability and performance
      • The server may not be available when a client sends a request
      • There can be multiple servers that can handle the request
  • Further Concepts
    • Message Queues (MQ) – queue-based communication
    • Publish/Subscribe (P/S) – event-driven communication

Asynchronous via Polling

  • Polling – only clients open sockets
    • A client performs multiple request-response interactions
      • The first interaction initiates a process on the server
      • Subsequent interactions check for the processing status
      • The last interaction retrieves the processing result
  • Properties of environments
    • A server cannot open a socket with the client (network restrictions)
    • Typically on the Web (a client runs in a browser)
Microservices Architecture

The Scale Cube

  • Three-dimensional scalability model
    • X-Axis scaling requests across multiple instances
    • Y-Axis scaling decomposes an application into micro-services
    • Z-Axis scaling requests across "data partitioned" instances

Overview

  • Emerging software architecture
    • monolithic vs. decoupled applications
    • applications as independenly deployable services

Major Characteristics

  • Loosely coupled
    • Integrated using well-defined interfaces
  • Technology-agnostic protocols
    • HTTP, they use REST architecture
  • Independently deployable and easy to replace
    • A change in small part requires to redeploy only that part
  • Organized around capabilities
    • such as accounting, billing, recommendation, etc.
  • Impplemented using different technologies
    • polyglot – programming languages, databases
  • Owned by a small team