ndc oslo 2014: the integrations we fear and how we can manage them

Post on 28-Nov-2014

99 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides from NDC Oslo 2014: http://ndcoslo.com/ View a video of the presentation here: http://vimeo.com/97349265 Have you ever received an API or a set of webservices that just weren't good enough? This happens more often than we'd like, and when it happens it's important to know what you can do to make sure your project isn't infected with the lack of quality from third party vendors. I'll talk you through the different stages in your project, highlighting the steps you can take to minimize the risks of integrating your system with another, while making sure it will be maintainable in the future.

TRANSCRIPT

The integrations we fear and how we can manage

themKaroline Klever

@karolikl

I fear badly written APIs

New_GetChanges()

New2_GetChanges()

Old_GetChanges()

Old_New_GetChanges()

Test_GetChanges()

I fear heavy payloads

I fear uneccessary complexity

I fear third party vendors who are unwilling to cooperate

«We’d rather you didn’t use our APIs as they require about 200 hours of

training»

Quote - Head of Account and Sales

The phases of integration projects

Setup

Implementation

The Setup phase

Find out who to talk to

Communicating the hard way

You

Project ManagerAccount Manager

Tech guy

Project Manager

Reducing the complexity of communication

You Tech guy

The Setup phase

Find out who to talk to

Ask for documentation

The Setup phase

Find out who to talk to

Ask for documentation

Agree on jurisdiction and specification

The Setup phase

Find out who to talk to

Ask for documentation

Agree on jurisdiction and specification

Get access to everything you need

The Setup phase

Find out who to talk to

Ask for documentation

Agree on jurisdiction and specification

Get access to everything you need

Demand a test environment

Start setting up as soon as possible

Current task Integration Something else

Deadline

Start setting up as soon as possible

Current task Integration Something else

Setup Implementation Something else

Deadline

Current task

Start setting up as soon as possible

Current task Integration Something else

Setup Implementation Something else

Deadline

Setup

Implementation Something else

Current task

Current task

Time consuming communication

Time consuming communication

22 emails

15 days

The phases of integration projects

Setup

Implementation

The Implementation phase

Badly written APIs

Heavy payloads

Uneccessary complexity

Third-party vendors unwilling to cooperate

Hard to maintain

The Implementation phase

Facade pattern

Integration tests

Logging

One facade, one API

ProductFacade.cs

Product API

One facade, several APIs

ProductInventoryFacade.cs

Product API Inventory API

Helper facades

InventoryFacade.cs

Product API ProductFacade.cs

Example: Without facades

Example: With facades

How does the facade look?

The Implementation phase

Facade pattern

Integration tests

Logging

What do I test?

Internal classes/subsystems

External components

Application Service Layer

Example: System under test

Example: Integration test

The Implementation phase

Facade pattern

Integration tests

Logging

Minimal logging

Lots of logging

Logging with PostSharp

OnMethodBoundaryAspect

Injecting code

Decompiled

PostSharp attribute

@karolikl

karoline.klever@epinova.no

top related