soa best practices commonwealth bank of australia – commsee son jeung min architect evangelist...

33
SOA Best Practices SOA Best Practices Commonwealth Bank of Commonwealth Bank of Australia – CommSee Australia – CommSee Son Jeung Min Son Jeung Min Architect Evangelist Architect Evangelist [email protected] [email protected] Microsoft Korea Microsoft Korea

Upload: anis-nicholson

Post on 25-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

SOA Best PracticesSOA Best PracticesCommonwealth Bank of Commonwealth Bank of Australia – CommSeeAustralia – CommSee

Son Jeung MinSon Jeung MinArchitect EvangelistArchitect [email protected]@microsoft.comMicrosoft KoreaMicrosoft Korea

Page 2: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

2

AgendaAgenda

Project OverviewProject OverviewArchitecture and DesignArchitecture and DesignLessons LearntLessons LearntSummarySummary

Page 3: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

3

CommSee BackgroundCommSee Background

Business GoalsBusiness GoalsEnhance customer service capabilitiesEnhance customer service capabilities

Single View of CustomerSingle View of CustomerBuild instead of buyBuild instead of buyEnhance Premium Financial Services CRM Enhance Premium Financial Services CRM appapp

Common client to replace/integrate Common client to replace/integrate BU appsBU apps

Consume backend services built across Consume backend services built across the bankthe bank

Architectural changes required to Architectural changes required to scale from 2000 to ~30,000 usersscale from 2000 to ~30,000 users

Page 4: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

4

CBA Objectives & ScopeCBA Objectives & Scope

ObjectivesObjectivesArchitectural and design guidanceArchitectural and design guidanceFuture Proofing: Align with future MS Future Proofing: Align with future MS technologytechnologyKnowledge and skills transferKnowledge and skills transferPerformance and scalability testing Performance and scalability testing

ScopeScope.NET Smart Client application.NET Smart Client applicationCommon Services FrameworkCommon Services Framework

Page 5: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

5

Methodology and Methodology and ApproachApproach

AgileAgileIterative, incrementalIterative, incremental

Mitigate riskMitigate risk

Test firstTest firstDifferent mindsetDifferent mindsetDrive increased qualityDrive increased quality

Pair ProgrammingPair ProgrammingNatural in co-locationNatural in co-location

Continual IntegrationContinual IntegrationReduces “it only works on my machine”Reduces “it only works on my machine”

Page 6: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

6

AgendaAgenda

Project OverviewProject OverviewArchitecture and DesignArchitecture and DesignLessons LearntLessons LearntSummarySummary

Page 7: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

7

ChangesChanges

VB 6VB 6Tab-based Tab-based navigationnavigationSingle viewSingle viewMDI styleMDI style

FromFrom ToToC#, C#, WindowsForms .NETWindowsForms .NETWeb-like navigationWeb-like navigationRole based viewsRole based viewsSmart Client “Portal”Smart Client “Portal”

Variety of comms Variety of comms mechanismsmechanismsBespoke backendBespoke backendBatch loadBatch load

Web Services as Web Services as standardstandardServices frameworkServices frameworkReal time interfacesReal time interfaces

Page 8: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

8

Changes (2)Changes (2)

Separate security for Separate security for each applicationeach applicationMaintenance Maintenance separate from biz separate from biz processprocessApps on NT 3.51 Apps on NT 3.51 etc…etc…

FromFrom ToToCommon security, Common security, centralized based on centralized based on ADADMaintenance tied in Maintenance tied in with HR processeswith HR processesApps on Windows XPApps on Windows XP

Many different Many different applicationsapplicationsALT-TAB integrationALT-TAB integrationDisparate Disparate applicationsapplications

All functions within All functions within single application single application Seamless integrationSeamless integrationContextual awarenessContextual awareness

Page 9: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

9

Client tierClient tierApplication ArchitectureApplication Architecture

Data storageData storage

Private ServicesPrivate Services

WinPart

Active Directory

Local Cache

Agent

Se

curity

Instrum

enta

tion

Oracle

Co

nfig

uration

Authn

Orchestration

Private service n

Private service

AuthzConfig

Legacy systemsLegacy systems

Mainframe n

WS Proxy

IFW Service n

SOFA

Service Helpers Data Integration

SOFA

Mainframe

IFW Service

Page 10: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

10

Data centreData centreBranch siteBranch site

Smart ClientSmart Client

SmartSmartCardCard

Local ADLocal AD

SOFA FarmSOFA FarmHIS FarmHIS Farm

AD FarmAD Farm BizTalk FarmBizTalk Farm

MainframeMainframe

Other Application Other Application Servers, Oracle Servers, Oracle

Every Service Every Service authorized authorized against ADagainst AD

Deployment OverviewDeployment Overview

Page 11: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

11

User Interface TierUser Interface Tier

Smart ClientSmart ClientSuperior user experienceSuperior user experienceLeverage power of clientLeverage power of clientBandwidth friendlyBandwidth friendlyIntegration capabilitiesIntegration capabilities

Developer modelDeveloper modelFlexible, yet simpleFlexible, yet simpleAbstract away low-level plumbingAbstract away low-level plumbingDesigners, code generators, toolsDesigners, code generators, tools

““WinParts”WinParts”Adhere to defined programming modelAdhere to defined programming modelCan also easily integrate other componentsCan also easily integrate other components

Page 12: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

12

Navigation

WinParts•Are non-blocking• Consume data from services

Workspace

Page 13: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

13

Service TierService Tier

All interactions via Web ServicesAll interactions via Web ServicesSOFASOFA

High throughput, reliability, availability High throughput, reliability, availability etc…etc…Consolidate data from many sourcesConsolidate data from many sourcesStateless Stateless Based on EDRABased on EDRA

BiztalkBiztalkComplex orchestrationsComplex orchestrationsLong running transactionsLong running transactions

Host Integration ServerHost Integration ServerOracle databaseOracle database

Page 14: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

14

Services Tier (2)Services Tier (2)

Public ServicesPublic ServicesUsing IBMs IFW banking model and Using IBMs IFW banking model and RationalRationalXSD compliant schemasXSD compliant schemasCurrently ~125Currently ~125

Private ServicesPrivate ServicesApplication specificApplication specificCurrently ~600Currently ~600

Page 15: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

15

Service DesignService Design

Based on EDRABased on EDRA1 Business Action per [WebMethod]1 Business Action per [WebMethod]

Grouped by Team and SubjectGrouped by Team and SubjectTeam maps 1:1 to vidr (eg CRM)Team maps 1:1 to vidr (eg CRM)Subject maps 1:* to asmx (eg “Customer Subject maps 1:* to asmx (eg “Customer Details”Details”

Use case centricUse case centric

Page 16: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

16

CachingCaching

Service sideService sideAsync increased loadAsync increased loadCaching handlerCaching handlerReduced load on Mainframe by 40%Reduced load on Mainframe by 40%

Client sideClient sideConfig reveals service endpoints and Config reveals service endpoints and cache-abilitycache-abilityIn-memory or diskIn-memory or disk

Page 17: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

17

Statistics (Aug 2005)Statistics (Aug 2005)

2.5 MM LOC2.5 MM LOC10K code files10K code files80 VS solutions80 VS solutions35Mb Client installer35Mb Client installer110-120Mb server installer110-120Mb server installer680 client DLLs680 client DLLs1650 server DLLs (many dupes)1650 server DLLs (many dupes)~30 backend systems~30 backend systems

Page 18: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

18

SecuritySecurity

WS-Security modelWS-Security modelServiceService

All requests authenticated and authorized All requests authenticated and authorized by SOFAby SOFATrust boundary – security perimeterTrust boundary – security perimeter

ClientClientAuthorization for usabilityAuthorization for usabilityLeverage Windows securityLeverage Windows security

Traffic encrypted using SSLTraffic encrypted using SSLCurrently using IIS, can switch to load Currently using IIS, can switch to load balancerbalancer

Page 19: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

19

Service SecurityService Security

BusinessService

Smart Client

Active Directory

WS

E

AuthenticationService

WS

E

Agent

Shared secret

Shared secret

5. Decrypt & verify token5. Decrypt & verify tokenVerify msgVerify msg

4. CBT attached4. CBT attachedto messageto message

2. IIS integrated Authn2. IIS integrated AuthnReturn: CBTReturn: CBT

6. Authorize6. Authorize

3. Get Authorization Info3. Get Authorization Info

1. Logon to Windows1. Logon to Windows

Page 20: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

20

OperationsOperations

Leverage existing operations infrastructureLeverage existing operations infrastructureMonitoringMonitoring

All services publish extensive array of countersAll services publish extensive array of countersPerfmonPerfmonBMC PatrolBMC PatrolTrans/sec, avg response times etc…Trans/sec, avg response times etc…

Load balancers can…Load balancers can…Concentrate connectionsConcentrate connectionsDirect trafficDirect trafficSSL encryptionSSL encryptionNot using these features currentlyNot using these features currently

SOFA ServersSOFA ServersIdentical software images on each serverIdentical software images on each server

Page 21: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

21

DeploymentDeployment

ClientClientSMS (previously Radia)SMS (previously Radia)Currently all or nothingCurrently all or nothing

ServerServerInitially, difficult to get configuration Initially, difficult to get configuration correctcorrectNow use Altiris – build all servers Now use Altiris – build all servers identically and quicklyidentically and quicklyOver 700 services on each server, Over 700 services on each server, multiple versionsmultiple versions

Page 22: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

22

Development toolsDevelopment tools

Visual Studio 2003, .NET 1.1Visual Studio 2003, .NET 1.1BizTalkBizTalknUnitnUnitCruise Control.NETCruise Control.NETWise InstallerWise InstallerWIXWIXXMLSpyXMLSpyRational and IFWRational and IFWScitech .NET memory profilerScitech .NET memory profilerCustom toolsCustom tools

Visual Studio plug-ins for developing Visual Studio plug-ins for developing “WinParts”“WinParts”Code GeneratorsCode GeneratorsSimplified schema generatorSimplified schema generatorDependency toolDependency tool

Page 23: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

23

Statistics (Aug 2005)Statistics (Aug 2005)

UsersUsers>10,000 total>10,000 total~7,500 concurrent (peak)~7,500 concurrent (peak)Increasing to ~30,000 by end CY05Increasing to ~30,000 by end CY05

8x dual 3Ghz CPU Intel SOFA servers8x dual 3Ghz CPU Intel SOFA servers2Gb memory2Gb memory

~40 tps/server (320 tps across farm)~40 tps/server (320 tps across farm)CPU ~40%CPU ~40%Memory ~70%Memory ~70%

Expect ~16 servers for ~30,000 usersExpect ~16 servers for ~30,000 users6x HIS Servers6x HIS Servers2x Biztalk servers2x Biztalk servers3x Solaris nodes for Oracle3x Solaris nodes for Oracle

Page 24: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

24

TimelineTimeline

Core development in Core development in RedmondRedmondClose connection with Close connection with Product GroupsProduct GroupsVirtual teamVirtual team

CBACBAMS RedmondMS RedmondMS AustraliaMS Australia

Transition to SydneyTransition to SydneyIntegrate into CBA Integrate into CBA environmentenvironmentTransfer knowledge to Transfer knowledge to dev teamdev team

Mar04

Qua

lifica

tion

and

setu

p

Apr04 Jul04

Arch

itect

ure

and

Des

ign

(Red

mon

d)

Cont

inue

d Dev

elop

men

tSep04 Dec04 Mar05 Apr05 Dec05

Prod

uctio

n re

leas

e 1

Prod

uctio

n re

leas

e 2

Nat

iona

l rol

lout

com

men

ces

*Nat

iona

l rol

lout

com

plet

e

Prod

uctio

n re

leas

e 3

...*Anticipated date

Page 25: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

25

““Public” Service Development Public” Service Development Approach (atomic or composite)Approach (atomic or composite)

Identify Service Identify Service RequirementsRequirements Business AnalystBusiness Analyst

Identify existing Identify existing transaction(s) transaction(s)

requiredrequiredBusiness AnalystBusiness Analyst

Deploy service and Deploy service and documentationdocumentation Release ManagerRelease Manager

Define XSLTDefine XSLTDeveloperDeveloper

Model in BOMModel in BOM Develop lightweight Develop lightweight XML representation XML representation

of mainframe of mainframe transactiontransaction

DeveloperDeveloperInformation ArchitectInformation Architect

Implement business Implement business rules and servicerules and service DeveloperDeveloper

Model in IDM and Model in IDM and auto-generate XML auto-generate XML

schemaschemaInformation ArchitectInformation Architect

Document Service Document Service RulesRulesInformation ArchitectInformation Architect

Page 26: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

26

Highlights Highlights CommSeeCommSee

Windows Forms .NET Smart ClientWindows Forms .NET Smart ClientASP.NET Web ServicesASP.NET Web Services~30,000 users, 1000+ branches~30,000 users, 1000+ branches

On time, on budgetOn time, on budgetGreat user feedback, pressGreat user feedback, pressIncremental deliveryIncremental delivery

PracticalPracticalAug2005: 10,000+ users, 600 branches, all call Aug2005: 10,000+ users, 600 branches, all call centerscentersOn target to decommission legacy platforms by On target to decommission legacy platforms by end 2005end 2005

ReuseReuseMainframe and legacy systemsMainframe and legacy systemsVB6, Win32 front end assetsVB6, Win32 front end assets

Page 27: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

27

AgendaAgenda

Project OverviewProject OverviewArchitecture and DesignArchitecture and DesignLessons LearntLessons LearntSummarySummary

Page 28: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

28

Lessons LearntLessons LearntDevelopmentDevelopment

Memory leaks initially happen!Memory leaks initially happen!Scitech Scitech http://www.scitech.se/http://www.scitech.se/

Asynchronous UIAsynchronous UIHard to buildHard to buildUnexpected backend consequencesUnexpected backend consequences

Caching is criticalCaching is criticalVS Designers = black magicVS Designers = black magicConfigConfig

Needs to be centrally controlledNeeds to be centrally controlled

Frameworks need to be shrink-Frameworks need to be shrink-wrappedwrapped

Page 29: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

29

Lessons LearntLessons LearntProcessProcess

Agile processAgile processContinuous Build and unit testsContinuous Build and unit testsTime consuming to setupTime consuming to setupPays offPays offAbility to put new code into test Ability to put new code into test environment dailyenvironment daily

Incremental delivery keyIncremental delivery key

Page 30: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

30

Lessons LearntLessons LearntOperations and deploymentOperations and deployment

All or nothing not a good modelAll or nothing not a good modelBuild in auto-update features earlyBuild in auto-update features early

Configuration management hardConfiguration management hardUse a toolUse a tool

Instrument, Instrument, Instrument!Instrument, Instrument, Instrument!

Page 31: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

31

AgendaAgenda

Project OverviewProject OverviewArchitecture and DesignArchitecture and DesignLessons LearntLessons LearntSummarySummary

Page 32: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

32

SummarySummaryCommSeeCommSee

Windows Forms .NET Smart ClientWindows Forms .NET Smart ClientASP.NET Web ServicesASP.NET Web Services~30,000 users, 1000+ branches~30,000 users, 1000+ branches

On time, on budgetOn time, on budgetGreat user feedback, pressGreat user feedback, pressIncremental deliveryIncremental delivery

PracticalPracticalCurrently: 10,000+ users, 600 branches, all call Currently: 10,000+ users, 600 branches, all call centerscentersOn target to decommission legacy platforms by On target to decommission legacy platforms by end 2005end 2005

ReuseReuseMainframe and legacy systemsMainframe and legacy systemsVB6, Win32 front end assetsVB6, Win32 front end assets

Page 33: SOA Best Practices Commonwealth Bank of Australia – CommSee Son Jeung Min Architect Evangelist jeungms@microsoft.com Microsoft Korea

33

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.