View
754
Download
0
Embed Size (px)
Citation preview
aenv/saInterleuvenlaan27b,B3001- Heverlee
T+3216393060F+3216393070www.ae.be
SOA INTEGRATION ARCHITECTURE
API MANAGEMENTAE Foyer 30/09/2015
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
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
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
28
Service
Service
Information Functionality
Providing application 1
Providing application 2
Providing Datastore
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
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
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