49
ae nv/sa Interleuvenlaan 27b, B3001 - Heverlee T +32 16 39 30 60 F +32 16 39 30 70 www.ae.be SOA INTEGRATION ARCHITECTURE API MANAGEMENT AE Foyer 30/09/2015

AE Foyer: Soa Integration Architecture and Api Management

Embed Size (px)

Citation preview

aenv/saInterleuvenlaan27b,B3001- Heverlee

T+3216393060F+3216393070www.ae.be

SOA INTEGRATION ARCHITECTURE

API MANAGEMENTAE Foyer 30/09/2015

WHO ARE WE?

RoosUwaerts JohanLuyts WimParedis

2

SETTING THE SCENE

We live in the age of the customer3

SETTING THE SCENEBuilding the digital enterprise for the age of the customer

4

IntegrationMiddleware

Transformation,routing,validation,mediation,enrichment,…

OUR FUTURE DIGITAL ENTERPRISE

ClientTier

InteractionTier

SystemsofRecordTier

EngagementTier

MobileApplications

Native iOS,Android,Windows

WebSiteandContentManagement

Api Management

Gateway&portal, throttling,versioning,discovery,billing,…

Security

Federatedauthentication,singlesign-on,adaptiveaccesscontrol,digitalidentity

DataCaptureClick-streaming,sensordata,socialmedia

Customer-OrientedAPIInnovative, fasterpace,a/btesting,personalisation,agile

EnterpriseDataHubRelational-,non-relational-,in-memorystorage technologiesBigdataStreamingeventprocessingSearch

AnalyticsEmbeddedAnalytics,DWH-BIintegration

EnterpriseApplicationsandServices– SystemsofRecord

Back-endsystemslikeSAP,Peoplesoft,Oracle, custom-builtJavaor.NETapplications,andSaas solutionslikeSalesForce.com

Channels&Media ExternalDevelopersPartners

SecurityandIntegrationLayers

5

OUR FUTURE DIGITAL ENTERPRISES

tabilityFlexibility

Core Enterprise

DigitalEcosystem B

imodalIT

Designed

forD

esignedfor

6

Stability

FlexibilityOUR FUTURE DIGITAL ENTERPRISE

Internal or topartners

Reduce IT Costs

Project Driver Integration Goal

External, oftento customers

GenerateBusiness Revenues

Reliability EnterpriseLong-Term

SupportingGoal

Agility Small and NewShort-Term B

imodalIT

Designed

forD

esignedfor

7

GROWINGPRESSURE

Company boundaries

Internal

External

8

GROWING INTERNALPRESSURE

Company boundaries

Internal

External

Package Implementation

Core Enterprise

MDM (360° view)

Cloud or on-premise

Efficieny and standardisation

9

GROWING INTERNAL AND EXTERNALPRESSURE

Internal

External

Package Implementation

Core Enterprise

MDM (360° view)

Cloud or on-premise

Efficieny and standardisation

Omni-channelServices Offerings

Suppliers and Partners

FEE Architecturerequiring API’s

Company boundaries

10

API management is no alternative for SOA

SOA, INTEGRATION ARCHITECTUREAND API MANAGEMENT

11

API Management

TACKLING YOUR CHALLENGES

External services

Internal services

New application

Legacy application

Legacy application

12

API Management

DIGITAL TRANSFORMATION

13

Core Enterprise

DigitalEcosystem

API Management

Reference Architecture Get Control

Service Categories

Canonical data and behaviour model

Governance

Organization

REFERENCE ARCHITECTURE

class MedicalDecisionActiv ityServ ice - Specification Information Model

ObjectInformation Model::Policy

::Object- objectId: identifier- objectIdExtension: Extension- objectType: Set(Object)

«Release B»- versionID: NonNegativeInteger

Information Model::PolicyCov erage

- coverId: NonNegativeInteger

Cov erAcceptanceDecision

- additionalInfo: String- coverAccDecision: coverDecision- declineReason: DeclineReason- isAutomatic: Boolean- postponedUntil: date- postponeReason: PostponeReason- sumAssured: Money

Decision

- decision: Decision- decisionDate: Date- postponedUntil: Date- Reason: DecisionReason

«nc»- notificationId: NonNegativeInteger

Surloading

- additionalInfo: String- amount: Money- duration: Duration- isAutomatic: Boolean- isTemporary: boolean- surloading: Decimal- surloadingBase: SurloadingBase- surloadingID: NonNegativeInteger- surloadingReason: SurloadingReason- surloadingSubType: SurloadingSubType- surloadingUnit: SurloadingUnit

Cov erAcceptanceClause

- additionalInfo: String- coverAccClauseID: NonNegativeInteger- coverAccClauseReason: CoverAccClauseReason- coverAccClauseText: Multi languageString- isAutomatic: Boolean- scopeOfCoverage: ScopeOfCoverage

MedicalDecisionRegisterActivityService

PolicyDataService

PartyDataService

Legend

PaymentObjectMedicalFolder

- medicalFolderId: Identifier

Information Model::Insured Person

- dateLastRejected: Date- dateLastUpdated: Date- disabilityEffStartDate: Date- disabilityEffStopDate: Date- existingInsuranceIndicator: boolean- heightInCentimeter: Integer- IsActiveAtWork: boolean- replacementIndicator: boolean- smokerState: SmokerState- weight: Integer

+ smoker(Date): SmokerState

Master Data::Party

- partyId: Identifier

Master Data::Party Role

- beginDate: Date- endDate: Date- partyRole: PartyRole

Master Data::Person

1

1..*

+party

1

+party roles

0..*

1

0..1

0..*

1

+person

1{subsets party}

0..*1

1

1

0..11

0..*

1

14

LAYERED MODEL

External services

Internal services

New application

Legacy application

Legacy application

15

LAYERED MODEL

Internal services

New application

Legacy application

Legacy application

16

SEVERAL KINDS OF INTERNAL

17

Internal services

New application

Legacy application

Legacy application

Private API Inner Services

Cloud Services

SEVERAL KINDS OF INTERNAL

PrivateAPI’s Innerservices Cloudservices

Who Employees oftheorganization

Applications

Why Internalinnovation,channelconsistency,short termagility

Stability,Robustness,Standardization,longtermstrategicsolutions

Control

18

LAYERED MODEL

External services

Internal services

New application

Legacy application

Legacy application

19

SEVERAL KINDS OF EXTERNAL

External services

Public API Partner API B2B services

Internal services

20

SEVERAL KINDS OF EXTERNAL

PublicAPI PartnerAPI B2BservicesWho Appdevelopers,

CustomersBusiness Partners Tailoredfor specific

Business Partner

Why ExternalinnovationQuickly enternewcustomerfacingecosystems

Automate processesExchangedataAccelerate partneronboarding

Buildlongstandingpartnership

Control

21

API MANAGEMENTExternal Internal

PublicAPI PartnerAPI PrivateAPI’sWho Appdevelopers,

CustomersBusiness Partners Employees ofthe

organization

Why ExternalinnovationQuickly enternewcustomerfacingecosystems

Automate processesExchangedataAccelerate partneronboarding

Internalinnovation,channelconsistency,short termagility

Control

22

A DIFFERENT VIEW

External services

Internal services

New application

Legacy application

Legacy application

API management

Service landscape

23

API MANAGEMENT

DeveloperManagement

Health Tracking

Workflow

Performance Global Staging Developer Enrollment

API Docs

Forums

API Explorer

RankingsQuotas

Plans

AnalyticsReporting

Config Migration

Patch Management Policy Migration

OperationsManagement

Throttling Prioritization Caching

Routing Traffic ControlTransformation

Security

InterfaceManagement

Composition Authentication Single Sign OnAPI KeysEntitlements

OAuth 1.x OAuth 2.0 OpenIDConnect

IdentityManagement

TYPICAL FEATURES OF API MANAGEMENT

Token Service

Source:CATechnologies

24

External services

Internal services

New application

Legacy application

Legacy application

SERVICE CATEGORIES

25

Internalservices

ExternalservicesInteractionservices

Businessservices

Supportingservices

ServiceConsumers

Providingapplications

SOA TARGET MODEL – EXAMPLE

26

InternalServices

ExternalServices

TechnicalAdapters

TechnicalAdapters

Businessservices

Supportingservices

Interactionservices

ServiceConsumers

Providingapplications

Confidential

SERVICE CATEGORIES - EXAMPLE

27

SERVICE

28

Service

Service

Information Functionality

Providing application 1

Providing application 2

Providing Datastore

CANONICAL DATA MODEL

29

Service

Information Functionality

CANONICAL DATA MODEL

30

Exampleclass PolicyDataServ ice - Specification Information Model

Master Data::Party Role

- beginDate: Date- endDate: Date- partyRole: PartyRole

Information Model::Intermediary

- intermediaryId: Identifier«nc»

- isPrivileged: boolean

Information Model::InsuranceTaker

Information Model::Insured Person

- dateLastRejected: Date- dateLastUpdated: Date- disabilityEffStartDate: Date- disabilityEffStopDate: Date- existingInsuranceIndicator: boolean- heightInCentimeter: Integer- IsActiveAtWork: boolean- replacementIndicator: boolean- smokerState: SmokerState- weight: Integer

+ smoker(Date): SmokerState

PolicyDataService

ContractDataService

IntermediaryDataService

PartyDataService

Legend

General ContractObject

Contract

- adminSystem: TechnicalSystem- adminType: Admin- beginDate: Date- collectionType: Collection- commercialProduct: CommercialProduct- contractState: ContractState- contractStateDate: Date- contractType: Insurance- currency: CurrencyCode- effectiveDate: Date- endDate: Date- fiscalSystem: FiscalSystem- investType: Invest- isReIns: boolean::Object- objectId: identifier- objectIdExtension: Extension- objectType: Set(Object)

Information Model::Indiv idualContract

- technicalProduct: TechnicalProduct

Information Model::Indiv idualPolicy

ObjectPolicy

- amendmentId: NonNegativeInteger- annualNetPremium: Money- annualPremium: Money- bankingLoanType: BankingLoan- beginDate: Date- countryLaw: Country- effectiveDate: Date- endDate: Date- isBankingLoan: boolean- isPackageProposal: boolean- isPawn: boolean- isTransferExt: boolean- isTransferInt: boolean- language: LanguageType- lastConvContractId: Identifier- lastConvPolId: Identifier- policyQualification: PolicyQualification- policyState: PolicyState- policyStateDate: Date- policyType: Insurance- proposalId: Identifier- proposalIdExtension: Extension- proposalQualification: ProposalQualification- recievedDate: Date- renewalDate: Date- reserve: Money- surrenderNetValue: Money- surrenderValue: Money- term: Term- totalAdditionalPremium: Money- totalInitialPremium: Money- totalNetPartialSurrender: Money- totalNetPremium: Money- totalPartialSurrender: Money- totalPendingAllocation: Money- totalPremium: Money- totalPremiumByDeduction: Money- valuationDate: Date- yNetPremium: Money- yTotPremium: Money::Object- objectId: identifier- objectIdExtension: Extension- objectType: Set(Object)

«Release B»- lastConvPolIdExtension: Extension- lastConvPolReason: ConvPolicyReason- versionID: NonNegativeInteger

«nc»- motiveState: MotiveState- notificationId: Identifier- proposalState: ProposalState

Contract::GroupContract

- beginDateJuridical: Date- countryLaw: Country- dscACntr: Multi languageString- numberAffCovered: int

«Release B»- numberParticipantCoveredByClient: int

Contract::GroupPolicy

- affi l iationState: Affi l iationState- beginDateDefEmployment: Date- beginDateEmployment: Date- beginDateNotice: Date- endDateEmployment: Date- entryDatePlan: Date- exitDatePlan: Date- isDisabledGroupLeaver: boolean- isFrontierWorker: boolean- isGroupLeaver: boolean- isPlanLeaver: boolean- nbrChildren: int- nbrChildrenCharge: int- nbrOtherPeopleCharge: int- pensionableSalaryBase: Money- retirementDate: Date

Contract::GroupPlan

- beginDate: Date- choicePlan: ChoicePlan- comPlan: String- dscPlan: Multi languageString- dscReference: String- endDate: Date- fiscalState: FiscalState- groupPlanId: NonNegativeInteger- isCoIns: boolean- numberAffCovered: int- planType: Plan- renewalMonth: Month

Contract::PolicyPromise

- annuityType: Annuity- beginDate: Date- benefit: Money- benefitGoal: Money- benefitInsured: Money- carenzPeriod: CarenzPeriod- character: Character- disabilityNature: DisabilityNature- disabilityType: Disability- dscPromise: String- effectiveDate: Date- endDate: Date- fctEndowmentDeath: Decimal- fctEndowmentDeathProf: Decimal- fctEndowmentLife: Decimal- fctEndowmentLifeProf: Decimal- financeType: Finance- incrDecrBORate: Decimal- incrDecrBORateAfterClaim: Decimal- incrDecrPORate: Decimal- indexRateBO: Decimal- indexRatePO: Decimal- indexType: Index- isCarenzPeriod: boolean- isDoubleFullOrphan: boolean- isIncrDecrBO: boolean- IsIncrDecrBOafterClaim: boolean- isIncrDecrPO: boolean- isIndexBO: boolean- isIndexPO: boolean- isPermanentDisabled: boolean- isProfitIncl: boolean- isSurrenderWaitingPeriodDis: boolean- isWaitingPeriod: boolean- isWaiverOfPremDisIns: boolean- originReferenceType: OriginReference- premium: Money- promiseId: NonNegativeInteger- promiseProfile: PolicyPromiseProfile- promiseQualification: PolicyPromiseQualification- promiseRisk: PolicyPromiseRisk- promiseState: PolicyPromiseState- promiseType: PolicyPromise- ratePayment: Decimal- waitingPeriod: WaitingPeriod

«ReleaseB»- isSurrenderCarenzPeriod: Boolean

PolicyCov erage

- beginDateBO: Date- beginDateIncrDecrBO: Date- beginDateIncrDecrPaymentPO: Date- beginDatePaymentPO: Date- benefitInsured: Money- benefitInsuredInv: Money- benefitToInsure: Money- capitalConstitutif: Money- commercialCoverName: String- coverId: NonNegativeInteger- coverQualification: PolicyCoverQualification- coverRisk: PolicyCoverRisk- coverState: PolicyCoverState- coverStateDate: Date- coverType: PolicyCover- durGuaranteedTerm: Duration- durPostponedBO: Duration- durPostponedIncrDecrBO: Duration- effectiveDate: Date- endDateBO: Date- endDateGuaranteedTerm: Date- endDateIncrDecrBO: Date- endDateIncrDecrPaymentPO: Date- endDatePaymentPO: Date- endDatePostponedBO: Date- exemption: Money- exemptionAboveGoal: Money- isInGoalsIns: boolean- isLeadingInsCov: boolean- isPayAsLumpSum: boolean- lumpSumGross: Money- lumpSumGrossInv: Money- lumpSumNet: Money- lumpSumNetInv: Money- practSurrValueIns: Money- practSurrValueInsInv: Money- premGross: Money- premGrossInv: Money- premiumNet: Money- premiumNetInv: Money- ProfitSharingCond: Money- rateTransferable: Decimal- refIncDecr: Money- reserve: Money- reserveAboveGoal: Money- reserveInv: Money- riskBonus: Money- riskLumpSumGross: Money- riskLumpSumNet: Money- riskPremGross: Money- riskPremiumNet: Money- startAgeCoIns: int- startAgeIns: int- valuationDate: Date

«nc»- originCoverType: OriginCover

Contract::GroupPolicyPromise

- durServiceBuild: Duration- durServiceBuildInPlan: Decimal- durServiceTotal: Duration- durServiceTotalInPlan: Decimal- isChoiceMixLifeDeath: boolean- maxSalary: Money- nbrMaxChild: int- pensionableSalary: Money

«Release B»- choiceLevel: ChoiceLevel- isSignificantStandard: boolean

Information Model::Indiv idualPolicyPromise

Master Data::Party

- partyId: Identifier

ContractPartyRoleObjectInsuranceTaker

ContractInsuranceTaker

::ObjectPartyRole- beginDate: Date- endDate: Date

ContractPartyRoleObjectIntermediary

ContractIntermediary

::ObjectPartyRole- beginDate: Date- endDate: Date

ObjectInsuredPersonPolicyPartyRole

PolicyInsuredPerson

::ObjectInsuredPerson- birthDate: Date- IsAbleFulltimeWork: boolean- occRiskClass: OccRiskClass- smokerState: SmokerState::ObjectPartyRole- beginDate: Date- endDate: Date

«Release B»::ObjectInsuredPerson- socialState: SocialState

Master Data::Person

Contract::Salary

- amount: Money- bonus: Money- partTime: Fraction- periodicity: SalaryPeriodicity- type: TypeSalary

1

1..*

+party

1+party roles

0..*

1 1..*

1..*

1

11..*

1

1..*

1

1

1

1..*

0..*

1

+person 1{subsets party}

1

1..*

1

1..*

1

0..*

1

Information Functionality

Service

Confidential

Service

ServiceConsumers

BusinessServices

ProvidingApplications

CANONICAL BEHAVIOUR MODEL

31

Application2

ConsumerA ConsumerB ConsumerC

Service

Application1

Information Functionality

TACKLING YOUR CHALLENGES

32

Key success factors for reference architecture:- Layered architecture- Service categories- Canonical model

SOA is mandatory, it’s no longer an option!

SOA is the foundation for API management.

External services

Internal services

New application

Legacy application

Legacy application

TACKLING YOUR CHALLENGES

33

External services

Internal services

New application

Legacy application

Legacy application

Time

SOA Governance

“ Ensuring and validating that assets and artifacts within the architecture are acting as expected and maintaining a certain level of qualityGartner, Magic Quadrant for SOA Governance, 2007

34

SERVICE LIFECYCLE

35

Deprecated

Analysis

Design

Implementation

Testing

Ready for production

Planning

Operational

Retired

SERVICE PORTFOLIO

36

Service Portfolio

Service Catalog

API CatalogService Candidates

TACKLING YOUR CHALLENGES

37

Time

External services

Internal services

New application

Legacy application

Legacy application

Key success factors for SOA governance:- Service lifecycle management- Service catalog

Start small, think big

Align your governance processes with your way of working

TACKLING YOUR CHALLENGES

38

External services

Internal services

New application

Legacy application

Legacy application

Organization

ProjectManagement

KeyResponsibilitiesofIntegration

Communication

ORGANIZATION

39

PROJECT MANAGEMENT

Integration is part of every project charter !• Planning

• Creation of new services• Changes to existing services• Retiring “old” services• Reuse of existing services

• Budget• Project team• Middleware team• Application teams

40

OperationalBudget!

KEY RESPONSIBILITIES OF INTEGRATION

Support & Advise

Projects

Introduce Guidelines & Best Practices

Technology recommendati

ons

Maintain theCanonical

Model

Review Integration Deliverables

Align Project & Middleware

team

Maintain theSOA target

Model

41

KEY RESPONSIBILITIES OF INTEGRATION

42

Support & Advise

Projects

Introduce Guidelines & Best Practices

Technology recommendati

ons

Maintain theCanonical

Model

Review Integration Deliverables

Align Project & Middleware

team

Maintain theSOA target

Model

KEY RESPONSIBILITIES OF INTEGRATION

43

Support & Advise

Projects

Introduce Guidelines & Best Practices

Technology recommendati

ons

Maintain theCanonical

Model

Review Integration Deliverables

Align Project & Middleware

team

Maintain theSOA target

Model

KEY RESPONSIBILITIES OF INTEGRATION

44

Support & Advise

Projects

Introduce Guidelines & Best Practices

Technology recommendati

ons

Maintain theCanonical

Model

Review Integration Deliverables

Align Project & Middleware

team

Maintain theSOA target

Model

KEY RESPONSIBILITIES OF INTEGRATION

45

Support & Advise

Projects

Introduce Guidelines & Best Practices

Technology recommendati

ons

Maintain theCanonical

Model

Review Integration Deliverables

Align Project & Middleware

team

Maintain theSOA target

Model

COMMUNICATION

46

CommunicationPlan

BasicInformation

Awareness

ValueRelatedInformation

Comprehension

ReinforcementandValidation

Conviction

TACKLING YOUR CHALLENGES

External services

Internal services

New application

Legacy application

Legacy application

Integration is part of every project

Clearly define the integration responsibilities and their owners

Adoption won’t work without a good communication strategy

47

TAKE AWAYS

API management is no alternative for SOASOA is no longer a nice to have, it is a mandatory architectural approachDon’t forget your service catalog, everybody is your stakeholderIntegration is part of every project charter

API

SOA Int Arch

48

ae.be