Top Banner
EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005
58
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

EMEAEMEAMicrosoft PAKISTAN DEVELOPER CONFERENCEJune 13-15, 2005

2005

Page 2: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

22

Arvindra SehmiHead of Enterprise & ArchitectureDeveloper & Platform GroupMicrosoft EMEA [email protected]/asehmi

Architecting for HighArchitecting for HighPerformance, Decentralized, Agent-Performance, Decentralized, Agent-Oriented, Connected ApplicationsOriented, Connected Applications

Page 3: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

33

TopicsTopics

Performance-Challenged ApplicationsMessaging Network Architecture"Agile Machine" Agent ArchitectureConclusion

Page 4: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

44

TopicsTopics

Performance-Challenged ApplicationsMessaging Network Architecture"Agile Machine" Agent ArchitectureConclusion

Page 5: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

55

Performance-Challenged ApplicationsPerformance-Challenged Applications

App scalability is hard to plan forApp performance is hard to design forProcessing latency depends on the

aboveProcessing often needs to proceed

with incomplete information Flight reservations Financial trading

Page 6: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

66

CAPCOCAPCO

A global financial technology solutions & business strategy company

Page 7: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

77

CAPCOCAPCO

Requirements of their customers are:A consistent system & application

architectureSystems integration capabilityPredictable & controllable high

performance

Page 8: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

88

SGX OpportunitySGX Opportunity

Capco commissioned by the Singapore Exchange Limited (SGX) to provide business assessment & technical architecture advice

Required to implement a centralised processing utility that will provide matching services for Post Trade, Pre-Settlement interactions for equities & fixed income trading in the Singapore market

Initial prototype built in C++/Unix

Page 9: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

99

Benchmark –Benchmark –High Performance ScenarioHigh Performance ScenarioFinancial Trade LifecycleFinancial Trade Lifecycle

InvestmentInvestmentManagerManager

Broker/DealerBroker/Dealer

ExchangeExchange(e.g. NYSE)(e.g. NYSE)CSDCSD

(e.g. DTCC)(e.g. DTCC)

CustodianCustodian

1.1. The Investment Manager sends the Block Trade to the

Broker/Dealer.

2.2. The Broker/Dealer send the Block Trade to the Specialist on

the Exchange.

3.3. The Specialist executes all the

individual blocks and sends the result to

the Dealer.

4.4. The Broker/Dealer send the Investment Manager an average

Price.

5.5. The Investment Manager tells the

Broker/Dealer how to allocate the Trade to

individual clients.

6.6. The Broker/Dealer allocates the Trades

according to the Invest Manager’s instructions

and books them into individual client accounts.

7.7. The Broker/Dealer sends the Trade

information to the CSD for confirmation

and settlement.

8.8. The CSD sends confirms to the

Investment Manager and the Custody

Bank.

9.9. The Custodian or the Investment

Manager affirms that the Trade is good.

10.10. On settlement date, deliveries of shares and money are moved between

the Client’s Custodian and the Broker/Dealer accounts at the CSD.

Adapted from Sungard Inc. – Case of the Bungled Trade

Page 10: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1010

The Simple Queuing ModelThe Simple Queuing Model

In-bound MQ & In-bound MQ & message routing message routing processorsprocessors

Message Handling MQs & Business Message Handling MQs & Business Logic Processors (per message type Logic Processors (per message type state management & message matching)state management & message matching)

Confirms & out-Confirms & out-bound MQs & bound MQs & processorsprocessors

MessageProcessor

MessageQueue

Page 11: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1111

System Execution ModelSystem Execution Model

Page 12: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1212

Performance MetricsPerformance Metrics Metric Symbol Definition

Length of Observation

T Total number of time units over which the observation has been made.

Arrivals N Total number of Arrivals over the length of observation. Completions C Total number of Completions over the length of the

observation. Busy Time B The number of time units where the number of messages in

the system exceeds zero. Utilisation U

The calculated value: T

BU

Throughput X

The calculated value: T

CX

Mean Service Time S

The calculated value: C

BS

Execution Distribution

A

The calculated value:

T

ttMessagesA

0

)(

Mean Queue Length N

The calculated value: T

AN

Residence Time RT

The calculated value: C

ART

Queuing Time Q The calculated value: RT – S

Page 13: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1313

ComputeComputeServerServer

ComputeComputeServerServer

Processing Per Compute ServerProcessing Per Compute Server

ComputeComputeServerServer

ComputeComputeServerServer Alloc Q ALCAlloc Q ALC

Noe Q NOENoe Q NOE

Settle Q SETSettle Q SET

Nett Q NETNett Q NET

CFM Q CFMCFM Q CFMTrade Q PAMTrade Q PAM CLS Q CLSCLS Q CLS

PAM Trade QPAM Trade Q

x4x4

x2x2

x4x4

x4x4

x1x1 x1x1x2x2

x2x2

Page 14: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1414

Scalable Transaction EngineScalable Transaction EngineCore processing pipelineCore processing pipeline

DatabaseDatabaseServer Server

DatabaseDatabaseServer Server DatabaseDatabase

MessageMessageDriverDriver

MessageMessageDriverDriver

Compute Compute ServerServer

Compute Compute ServerServer

MessageMessageSinkSink

MessageMessageSinkSink

Core ProcessingPipeline

Pipeline is replicated as required on new machines

Page 15: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1515

Measuring performanceMeasuring performance

Tool Function

Message Generator • Generates domain-specific messages (e.g. for Straight Through Processing or Exchange business-processing models)

• Allows a number of different business scenarios or cases to be generated

Message Driver • Provides a programmable message rate & variability

• Acts as the input source to the queuing model

• Takes the output of the message generator

Message Sink • A component which provides a means of reading messages from a nominated message queue

• Allows the input rate to be balanced against the output rate (a criteria of the Buzen & Denning performance measurement model)

Performance Monitor • Provides the required statistics for the performance calculation as required by the execution model

• Statistics are used to calculate the performance metrics

Page 16: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1616

Redmond ISV Labs Benchmark (1/2)Redmond ISV Labs Benchmark (1/2) Focused early efforts on optimizing

performance of system on a single dual processor IBM x330 server accessing a SQL 2000 SP2 database on 8 processor IBM x370 server

App CPU utilization ~100% SQL CPU utilization less than 50% Network cards saturated The 3 key inhibitors performance were:

1. SQL log bound (disk I/O)2. Use of dynamic SQL statements rather than

sprocs3. Original process configuration was not correctly

“balanced”

Page 17: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1717

Redmond ISV Labs Benchmark (2/2)Redmond ISV Labs Benchmark (2/2)All servers used Windows Server 2003SQL performance team recommended:

Move audit log to local disk store Hash data between N compute servers & N

database instances spreading disk load over multiple striped Raid 1+0 arrays

Change to clustered index on match table Use multiple disk controllers

MSMQ performance team recommended MSMQ v3.0, overcoming 4MB memory buffer limits & context switching issues

Use ICECAP & built-in WS2K3 performance counters

Page 18: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1818

Scale-out performance resultsScale-out performance results

Scale-out over 8 Application Servers & 1 SQL Server achieved a performance of 7734 msg/sec

12

34

56

78

1 SQL DB

2 SQL DB

4 SQL DB0

1000

2000

3000

4000

5000

6000

7000

8000

MSG/SEC

Capco STE App Servers

SQL Database Servers

1 SQL DB 1337 2618

2 SQL DB 3570

4 SQL DB 5096 7734

1 2 3 4 5 6 7 8

Page 19: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

1919

RaidRaid

ArrayArray

[x4][x4]

DatabaseDatabaseServerServer

[x1][x1] 4

ComputeCompute

ServerServer

[x8][x8]

7734 msg/sec = 668,217,600 msg/day7734 msg/sec = 668,217,600 msg/day= ~65 Million Trades per Day= ~65 Million Trades per Day

PAMPAM NOENOE ALCALC NPRNPR SETSET Throughput (msg/sec)Throughput (msg/sec)

               Node 1Node 1 Node 2Node 2 Node 3Node 3 Node 4Node 4 Node 5Node 5 Node 6Node 6 Node 7Node 7 Node 8Node 8 AverageAverage TotalTotal

22 22 44 44 44 10751075 818818 10061006 976976 970970 970970 918918 10011001 967967 77347734

• 8 x 1-way Win2K PC• Each running 1 x Message Driver• Each Message Driver populates a remote input trade queue on the target compute server• Seven million messages are delivered in total per test• Each “Trade” transaction consists of 1 Noe, 2 Allocs, 2 Net Proceeds, & 2 Settlement Instructions

• 8 x 1-way Win2K PC• Each running 1 x Message Driver• Each Message Driver populates a remote input trade queue on the target compute server• Seven million messages are delivered in total per test• Each “Trade” transaction consists of 1 Noe, 2 Allocs, 2 Net Proceeds, & 2 Settlement Instructions

• 8 x 2-way WinServer-2K3 PC• Each running 2 Pam, 2 Noe, 4 Allocs, 4 Net Proceeds, & 4 Settlement Instructions processing components• All processing components read off queues & write to queues. All queues, except the trade input queue are local, express message queues• Database updates have affinity to one of the available databases through the use of a multi-key hashing algorithm computed over the trade match fields

• 8 x 2-way WinServer-2K3 PC• Each running 2 Pam, 2 Noe, 4 Allocs, 4 Net Proceeds, & 4 Settlement Instructions processing components• All processing components read off queues & write to queues. All queues, except the trade input queue are local, express message queues• Database updates have affinity to one of the available databases through the use of a multi-key hashing algorithm computed over the trade match fields

• 1 x 8-way WinServer-2K3 PC• Running 1 x SQL Server 2000 with 4 instances of the STE Database • 4 x Raid 1+0 Disk Arrays• Using a clustered index on the match table with date-time ordering was a natural fit to the real data’s arrival time heuristics• Data grew gracefully at the end of the clustered index table• Disk queues on the Raid arrays maxed despite only 50% SQL Server CPU utilization• This implied we could increase performance even more by increasing the number of spindles on the Raid Arrays• The 100 GB network cards also saturated

• 1 x 8-way WinServer-2K3 PC• Running 1 x SQL Server 2000 with 4 instances of the STE Database • 4 x Raid 1+0 Disk Arrays• Using a clustered index on the match table with date-time ordering was a natural fit to the real data’s arrival time heuristics• Data grew gracefully at the end of the clustered index table• Disk queues on the Raid arrays maxed despite only 50% SQL Server CPU utilization• This implied we could increase performance even more by increasing the number of spindles on the Raid Arrays• The 100 GB network cards also saturated

MessageMessageDriverDriver

[x8][x8] 1

Page 20: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2020

Page 21: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2121

London Stock ExchangeLondon Stock Exchange

[ 2002/2003 ]

Largest most international equity exchange in Europe Has $6.8 trillion of UK and international companies market capitalisation on its markets Has transacted $9.2 trillion of business over the year One third of the world’s liquidity!

Page 22: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2222

Historic Variation in Daily Order Volumes

0

500000

1000000

1500000Ju

l-00

Aug

-00

Sep

-00

Oct

-00

Nov

-00

Dec

-00

Jan-

01

Feb

-01

Mar

-01

Apr

-01

May

-01

Jun-

01

Jul-0

1

Aug

-01

Sep

-01

Oct

-01

Nov

-01

Dec

-01

Jan-

02

Feb

-02

Mar

-02

Apr

-02

May

-02

Jun-

02

Jul-0

2

Aug

-02

Sep

-02

Oct

-02

Nov

-02

Dec

-02

Jan-

03

Date

Tota

l Dai

ly O

rder

Ad

diti

on

s an

d D

elet

ion

s

Peak 2003

Peak 2002

Peak 2001

Peak 2000

Peak 1999

Peak 1998

Orders

30 per. Mov.Avg. (Orders)

Peak 2002

Peak 2001

Peak 2000

Peak 2003

5x increase in peak order volumes in 2 years (2000-02)

The first Tuesday of February 2003 saw order message volumes increase over the 1,500,000 level due to The first Tuesday of February 2003 saw order message volumes increase over the 1,500,000 level due to current stock market volatility. These messages form the key input to LSE’s market data systems. current stock market volatility. These messages form the key input to LSE’s market data systems.

Scalability is therefore KEY to success.Scalability is therefore KEY to success.

2x increase in peak order

volumes in 1 year (2001-02)

The Scalability ChallengeThe Scalability Challenge

Scalabilityis a KEY Criterion

Page 23: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2323

Example:Example:

• Half of the LSE’s revenuesHalf of the LSE’s revenues come from information sales. come from information sales.

• Timely and accurate information Timely and accurate information is critical for the market to is critical for the market to operate correctly. operate correctly.

• Information “degrades” rapidly Information “degrades” rapidly over time as shown below. over time as shown below.

Annual Annual RevenueRevenue

45% of 45% of RevenueRevenue

1 1 SecondSecond

15 15 MinutesMinutes

1 1 MonthMonth

6 6 MonthsMonths

Age of Age of InformationInformation

The Performance ChallengeThe Performance Challenge

Performance& Latency

are KEY Criteria

Page 24: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2424

Real Time ProcessingGeneration of new messages, based on RTP of existing LSE message types

Real time messages must be processed in order of receipt

Data WarehousingArchiving of all LSE sourced messages

BatchEOD activity reports, warehouse query execution etc.

Inputs Outputs

Real Time Processing Operational Data Store

Data Warehouse Batch Processing

LSE System

LMILTrading In

LMIL

LSE System Functional OverviewLSE System Functional OverviewA System Built by Accenture (UK)A System Built by Accenture (UK)

Page 25: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2525

Real-Time Processing ExamplesReal-Time Processing Examples

Trade High-Low: Trade prices come from ‘Trade Report’ message System must disseminate new message for each new Highest Price for each stock System must disseminate new message for each new Lowest Price for each stock Trade Reports can be cancelled, reported late, delayed, never publicised !! Trade Reports (applies to every message) must be processed in order (per stock) !! !! All processing on a trade report must be done transactionally !!

Opening Price Opening prices come from ‘Trade Reports’ and / or ‘Best Price’ messages If price is ‘first of the day’, system must disseminate new message for each stock Rules for ‘first of the day’ are complex !! All processing on a trade report / best price must be done transactionally !!

Trades VWAP (Volume Weighted Average Price) VWAP is Σ(Price * Volume) / Σ(Volume) New VWAP disseminated every 15 seconds if volume has changed by a threshold

amount Trade cancellations and contras must be taken into account !! All processing on a trade report must be done transactionally !!

Page 26: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2626

LSE “Agents”LSE “Agents”

AgentAgent

ProcessingComponent

ListenerComponent

InternalQueues

QueueReader

Checkpoint

AuditDB

ProcessingDB

In-memoryStore

RecoveryMessage Store

For RecoveryLogic

AgentRouter

HashBalancer

• Listener components listen to external interfaces, or other Agents• Hash balancer distributes messages across internal queues, maintaining order of processing• Internal queues exploit multiprocessing capabilities of a machine (1 thread per queue) and allow

for fast input• Processing components execute processing in one transaction, using ‘fat’ SPs• Agent router routes and sends messages to other Agents via .NET Remoting (TCP/IP)• All components checkpoint for recovery

Page 27: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2727

LSE “Agents”LSE “Agents”

AgentAgent

ProcessingComponent

ListenerComponent

InternalQueues

QueueReader

Checkpoint

AuditDB

ProcessingDB

In-memoryStore

RecoveryMessage Store

For RecoveryLogic

AgentRouter

HashBalancer

AgentAgent

ProcessingComponent

ListenerComponent

InternalQueues

QueueReader

Checkpoint

AuditDB

ProcessingDB

In-memoryStore

RecoveryMessage Store

For RecoveryLogic

AgentRouter

HashBalancer

AgentAgent

ProcessingComponent

ListenerComponent

InternalQueues

QueueReader

Checkpoint

AuditDB

ProcessingDB

In-memoryStore

RecoveryMessage Store

For RecoveryLogic

AgentRouter

HashBalancer

Scale Out

Page 28: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2828

Architecture Overview - Key PointsArchitecture Overview - Key Points.NET Infrastructure

C#, .NET Remoting, ADO.NET, ASP.NET (UI + Web Services)

Application Logic C# code wraps ‘thin’ data access layer Functionally Stored Procedures (64 bit SQL 2000)

Packaging System Agents contain all message processors Database configures each Agent’s roles (processors) Agents are spread amongst all application servers

(scalability) Agents have several internal queues (parallelism) Agents communicate via Remoting (TCP/IP)

Page 29: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

2929

Architecture Overview - Key PointsArchitecture Overview - Key Points

Resilience / Reliability System is hosted on Windows Server 2003 Agents run under MS Cluster Services All communication is checkpointed and fully

recoverable

Scalability / Load Balancing Hash Balancing (order of processing) Internal (Agent queues) and External (amongst

Agents) NOTE: In-memory queues, NOT MSMQ queues

Page 30: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3030

Redmond Enterprise Engineering Center Redmond Enterprise Engineering Center Benchmark – Technical ScopeBenchmark – Technical Scope

Real Time Processing only No data warehousing, no batch processing 1000 messages per second

(200 per second on day 1!) Latency < 1 second

Focus on new technologies Clustering on Windows Server 2003 .NET CLR Performance ( esp. Remoting & v1.1 ) 64 bit SQL Server

Test, Measure, Enhance Availability Reliability Performance

Page 31: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3131

TopicsTopics

Performance-Challenged ApplicationsMessaging Network Architecture"Agile Machine" Agent ArchitectureConclusion

Page 32: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3232

Architecture Requirements Architecture Requirements Be able to scale up quickly

Minimum turnaround time – matter of minutes Easy deployment, reappropriation of resources

Break complex tasks into smaller steps Distribute work across machines Use specialized resources for certain work

Crypto Hardware, Fast Disk, Large Memory

Maximize Total System Throughput Allow parallelization of work

Must work on expectation of stuff happening Ambiguity is the rule not the exception

Page 33: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3333

Queuing Networks – Re-Invented!Queuing Networks – Re-Invented!Sets of Primitive handlers, or technical

operations Generic: Route, Map, Transform, Log, Encrypt Specific: Inference Rules

Composition of primitives into Processing Units Map and Route based on Inference Rule Store and Forward, Synchronize, Split Correlate, Validate, Locate State, Match State

Composition of Processing Units into Networks Combine tasks into workflows Enlist external activities

Page 34: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3434

Benefits this architecture?Benefits this architecture?PrimitivesPrimitives

ReusablePerform common tasksCan be easily adjusted by configurationAct only on well-known message

headers

Page 35: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3535

Benefits of this architecture?Benefits of this architecture?Processing UnitsProcessing Units

ReusablePerform steps in dynamic business

processesHave no co-location assumptions

Good for scale out and fail over

Autonomous services in their own right Good for autonomous computing Good for agents

Page 36: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3636

Queuing Networks: Queuing Networks: Processing UnitsProcessing Units

A processing unit composes primitives Primitives are sequentially aligned in a

"pipeline" Messages pass through the pipeline Primitives modify, split, create or consume

msgs

/net/node1

Head TailPrimitivePrimitive Primitive

Page 37: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3737

Queuing Networks: Queuing Networks: NetworksNetworksA "network" is a set of connected pipelines

Each message travels along a path in the network Path is determined dynamically by routing rules A path is a pipeline made from processing units

Processing units in a network are called "nodes"

Network

GatewayGateway

Transform/net/node1Transform/net/node1

Preproc.Balance

/net/node2

Preproc.Balance

/net/node2

Match/net/node3

Match/net/node3

Augment/net/node4Augment

/net/node4

Match/net/node3

Match/net/node3

Page 38: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3838

Inside a Inside a SingleSingle Node Node

/net/node1

Head TailHandlerHandler

Pipeline

Gate-keeper

RouterSender

PortQueue

Listener

Checks Security

Checks Security Selects

Route

Selects Route Sends via

Transport

Sends via Transport

Page 39: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

3939

ConfigManager

MSMQListener

Hosting Nodes to Create a NetworkHosting Nodes to Create a Network

/net/node1

Head TailHandlerHandler

Pipeline

Gate-keeper

RouterSender

Port

AppDomainAppDomainAppDomainAppDomain

Enterprise Services Runtime (dllhost.exe)

Process Initializer / Process Controller

TCPListener

Enterprise Services Port

/net/node2

Head TailHandlerHandler

Pipeline

Gate-keeper

RouterSender

Port

AppDomainAppDomainAppDomainAppDomain

Thread Pool

Request Queue

ProcessProcessProcessProcess

Listeners

Page 40: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4040

Queuing Network Architecture Queuing Network Architecture (FABRIQ)(FABRIQ)

Configuration

Page 41: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4141

TopicsTopics

Performance-Challenged ApplicationsMessaging Network Architecture"Agile Machine" Agent ArchitectureConclusion

Page 42: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4242

AgentsAgentsA powerful architectural abstraction

used to manage the inherent complexity of software

An agent is a self-contained, problem-solving system capable of autonomous, reactive, pro-active, internally motivated, social behaviour

Exist in changing, uncertain worlds in which they perceive and act

Manage mental states for beliefs, desires, intentions and commitments

Page 43: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4343

Agent-Oriented Architecture PatternAgent-Oriented Architecture Pattern

Update Update IntentionsIntentions

Update Update IntentionsIntentions

Pursue Pursue DesiresDesires

(Exec Plans)(Exec Plans)

Pursue Pursue DesiresDesires

(Exec Plans)(Exec Plans)

BeliefsBeliefsBeliefsBeliefs CommitmentsCommitmentsCommitmentsCommitments

Update Update BeliefsBeliefs

Update Update BeliefsBeliefs

ReactReactReactReact

Accept Accept MessagesMessages

Accept Accept MessagesMessages

OtherOtherDataData

Messages fromMessages fromInput QueueInput Queue

Messages forMessages forOutput QueueOutput Queue

Messages forMessages forBack-end ProcessesBack-end Processes

Execute Execute CommitmentsCommitments

Execute Execute CommitmentsCommitments

ControlControlDataData

Page 44: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4444

Update Update IntentionsIntentions

Update Update IntentionsIntentions

Pursue Pursue DesiresDesires

(Exec Plans)(Exec Plans)

Pursue Pursue DesiresDesires

(Exec Plans)(Exec Plans)

BeliefsBeliefsBeliefsBeliefs CommitmentsCommitmentsCommitmentsCommitments

Update Update BeliefsBeliefs

Update Update BeliefsBeliefs

ReactReactReactReact

Accept Accept MessagesMessages

Accept Accept MessagesMessages

OtherOtherDataData

Messages fromMessages fromInput QueueInput Queue

Messages forMessages forOutput QueueOutput Queue

Messages forMessages forBack-end ProcessesBack-end Processes

Execute Execute CommitmentsCommitments

Execute Execute CommitmentsCommitments

ControlControlDataData

IllocutionIllocution

BeliefBeliefUpdateUpdate

Desire / GoalDesire / GoalPursuitPursuit

Intention /Intention /CommitmentCommitment

UpdateUpdate

Agent-Oriented Architecture PatternAgent-Oriented Architecture PatternThe BDI processing loopThe BDI processing loop

Page 45: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4545

Update Action Update Action ScheduleSchedule

Update Action Update Action ScheduleSchedule

Match State Match State & Execute & Execute WorkflowWorkflow

Match State Match State & Execute & Execute WorkflowWorkflow

PermanentPermanent& Message& Message

StateState

PermanentPermanent& Message& Message

StateState

ProcessProcessStateState

ProcessProcessStateState

Correlate Correlate & Update & Update

StateState

Correlate Correlate & Update & Update

StateState Perform Perform Immediate Immediate

ActionsActions

Perform Perform Immediate Immediate

ActionsActions

P-N-VP-N-VA&AA&A

P-N-VP-N-VA&AA&A

OtherOtherDataData

Messages fromMessages fromInput QueueInput Queue

Messages forMessages forOutput QueueOutput Queue

Messages forMessages forBack-end ProcessesBack-end Processes

Perform Perform Current Current ActionsActions

Perform Perform Current Current ActionsActions

ControlControlDataData

A-O Architecture Pattern RealizationA-O Architecture Pattern RealizationThe different kinds of processingThe different kinds of processing

CommunicationCommunication

DataDataManagementManagement

ProcessProcessManagementManagement

ActionActionManagementManagement

Page 46: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4646

Update Action Update Action ScheduleSchedule

Update Action Update Action ScheduleSchedule

Match State Match State & Execute & Execute WorkflowWorkflow

Match State Match State & Execute & Execute WorkflowWorkflow

PermanentPermanent& Message& Message

StateState

PermanentPermanent& Message& Message

StateState

ProcessProcessStateState

ProcessProcessStateState

Correlate Correlate & Update & Update

StateState

Correlate Correlate & Update & Update

StateState Perform Perform Immediate Immediate

ActionsActions

Perform Perform Immediate Immediate

ActionsActions

P-N-VP-N-VA&AA&A

P-N-VP-N-VA&AA&A

OtherOtherDataData

Messages fromMessages fromInput QueueInput Queue

Messages forMessages forOutput QueueOutput Queue

Messages forMessages forBack-end ProcessesBack-end Processes

Perform Perform Current Current ActionsActions

Perform Perform Current Current ActionsActions

ControlControlDataData

A-O Architecture Pattern Realization A-O Architecture Pattern Realization

Page 47: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4747

Queuing Network Agent - ‘Agile Machine’ Queuing Network Agent - ‘Agile Machine’ Network of processing unit nodesNetwork of processing unit nodes

Network

GatewayGateway

Validate/net/node1Validate

/net/node1

Enrich & Route

/net/node2

Enrich & Route

/net/node2

Correlate X/net/node3Correlate X/net/node3

CheckIntegrity

/net/node5

CheckIntegrity

/net/node5

Correlate Y/net/node4Correlate Y/net/node4

MatchState

/net/node6

MatchState

/net/node6

ApplyL/C Rules

/net/node7

ApplyL/C Rules

/net/node7

SetCommitment

s/net/node8

SetCommitment

s/net/node8

Database

DoCommitment

s/net/node9

DoCommitment

s/net/node9

SendNotifications/net/node10

SendNotifications/net/node10

Page 48: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4848

Queuing Network Agent - ‘Agile Machine’ Queuing Network Agent - ‘Agile Machine’ Network of processing unit nodesNetwork of processing unit nodes

Network

GatewayGateway

Validate/net/node1Validate

/net/node1

Enrich & Route

/net/node2

Enrich & Route

/net/node2

Correlate X/net/node3Correlate X/net/node3

CheckIntegrity

/net/node5

CheckIntegrity

/net/node5

Correlate Y/net/node4Correlate Y/net/node4

MatchState

/net/node6

MatchState

/net/node6

ApplyL/C Rules

/net/node7

ApplyL/C Rules

/net/node7

SetCommitment

s/net/node8

SetCommitment

s/net/node8

Database

DoCommitment

s/net/node9

DoCommitment

s/net/node9

SendNotifications/net/node10

SendNotifications/net/node10

DataDataManagementManagement

ReactiveReactiveProcessingProcessing

ActionActionManagementManagement

ProcessProcessManagementManagement

CommunicationCommunication

Page 49: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

4949

Agent ImplementationAgent Implementation

TMX – Trade Matching Exchange

Page 50: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

5050

Agent Logic

Match(Correlation)

Engine

Bucket4713

DEMO – TMX Beliefs and State MatchingDEMO – TMX Beliefs and State Matching

Agent/net/agent

Agent/net/agent

X: Sell

Y: Buy

Y: Alloc

Time t1

Time t2

Time t3

Commitment

[X, Sell][Y, Buy]

[Y, Alloc]

Time t3+d

Intention[X, Sell][Y, Buy]

Time t2+d

Intention[X, Sell]

Time t1+d

Bucket4712

xBucket4713

c

Bucket4711

n m

Match on content

Buckets hold knowledge

Knowledge forms belief

Belief support intention

UpdateUpdateBELIEFSBELIEFSUpdateUpdateBELIEFSBELIEFS

UpdateUpdateINTENTIONSINTENTIONS

UpdateUpdateINTENTIONSINTENTIONS

UpdateUpdateCOMMITMENTSCOMMITMENTS

UpdateUpdateCOMMITMENTSCOMMITMENTS

Page 51: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

5151

TopicsTopics

Performance-Challenged ApplicationsMessaging Network Architecture"Agile Machine" Agent ArchitectureConclusion

Page 52: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

5252

ConclusionConclusionTune for percentages & (re)-architect for

orders of magnitude in performanceAsynchronous message-oriented computing

is a business imperative- Think Flexibility & Scalability

Queuing networks – they fit well in the autonomous computing model- Think “Agile Machines” 100% compatible with Service Orientation

Indigo is coming and will enable easy construction of these kinds of architectures- Think About It!

Page 53: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

5353

Get The Book! And Read It…Get The Book! And Read It…

Build performance, scalability and security into every phase of application development

Use performance modeling as a key part of your process

Performance becomes part of your design

Evaluate trade-offs before you build the solution

You avoid performance surprises when you go into production

2. Identify Performance Objectives

Performance Modeling Process

1. Identify Key Use Cases

3. Identify Processing Steps

4. Allocate Execution Time

6. Evaluate

5. Identify Resource Utilization Req.

7. Validate

Iterate

Page 54: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

5454

Questions?Questions?

Page 55: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

5555

Resources - Resources - websiteswebsitesArchitecture Guidance Architecture Resource Center: http://www.microsoft.com/architecture Microsoft Patterns & Practices: http://msdn.microsoft.com/practices JOURNAL: http://msdn.microsoft.com/architecture/journalTools Visual Studio .NET 2003: http://msdn.microsoft.com/vstudioPlatform http://www.microsoft.com/windows http://www.microsoft.com/appserverExtra Info GotDotNet Workspace: http://workspaces.gotdotnet.com/fabriq Clemens’ Blog: http://staff.newtelligence.net/clemensv Arvindra’s Blog: http://www.thearchitectexchange.com/asehmi EMEA Architect Forum Tour 2004 Webcast on FABRIQ:

http://www.dotnetmaailma.com/dotnetmaailma/seminaarit/online/EmeaArchitectForum2004.htm

Pat Helland, Architect (Microsoft Corp.), Architects Symposium Keynote,http://www.microsoft.com/pdc, October 2003

Page 56: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

5656

Resources - Resources - publicationspublications Yariv Aridor and Danny B. Lange, “Agent Design Patterns: Elements of

Agent Application Design”, ACM, 1998. Yoav Shoham, “Agent-Oriented Programming”, Artificial Intelligence,

60(1):51-92, 1993. Iyad Rahwan, Ryszard Kowalczyk, and Yun Yang, “Virtual Enterprise

Design - BDI Agents vs. Objects”, In Proceedings of the PRICAI 2000 Workshop on AI in E-Commerce – Advances in Artificial Intelligence, Lecture Notes in Artificial Intelligence, Vol 2112, pp 147-157, Springer-Verlag, 2000.

Gregor Hohpe and Bobby Woolf, “Enterprise Integration Patterns”, ISBN 0321200683, Addison-Wesley, 2004.

Pat Helland, “Metropolis”, Microsoft Architects Journal, JOURNAL2, April 2004.

Richard Drayton and Arvindra Sehmi, “Benchmarking a High Performance Transaction Engine Design”, Microsoft Architects Journal, JOURNAL4, October 2004.

Connie U. Smith & Lloyd G. Williams, “Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software”,Addison-Wesley, ISBN 0-201-72229-1, 2002.

J.P. Buzen & P.J. Denning, “The Operational Analysis of Queuing Network Models”, ACM Computing Surveys, 10(3):225-261, 1978.

J.D.C. Little, “A Proof of the Queuing Formula”, Operations Research, Vol. 9, 1961.

Page 57: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

5757

Community ResourcesCommunity Resources Microsoft Community Resources

http://www.microsoft.com/communities/default.mspx Non-Microsoft Community Resources

http://www.microsoft.com/communities/related/default.mspx Newsgroups

Converse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

Attend a free chathttp://www.microsoft.com/communities/chats/default.mspx

Attend a free web casthttp://www.microsoft.com/usa/webcasts/default.asp

Most Valuable Professional (MVP)http://mvp.support.microsoft.com/

Page 58: EMEA Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005 2005.

THANK YOUTHANK YOU

20052005 Microsoft PAKISTAN DEVELOPER CONFERENCEJune 13-15, 2005