NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB....

32
NJIN 2.0 Kate Silhol, Lead Software Engineer

Transcript of NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB....

Page 1: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

NJIN 2.0Kate Silhol, Lead Software Engineer

Page 2: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

NJIN 2.0 Design

Page 3: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Background

■ XML Message Router (XMR) installed 12

years ago

– Advanced Technology Systems product

– First foray into XML, web services

■ XMR converted to Nlets Justice Information

Network (NJIN)

– Majority of code re-written, now considered in-

house product

Page 4: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Overview

■ Current NJIN is approaching capacity

– Scalability limitations inherent to the 12 year old design

– Volume has increased by 209% in last 10 years

– Manageable but recurring system issues (slowness)

– Low risk mitigating changes made to sustain current NJIN

■ Design work for new system commenced end of 2015

Page 5: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Design Overview and Principles

■ Distributed architecture

■ Three primary components which guide

each transaction through the system

■ Specific processes located in distinct

modules – true SOA

Page 6: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

High Level Design

Input/Output Layer

Validation and ESB Initiation Layer (VEIL)

Enterprise Service Bus

Modules

SBG Customized

PMB

Completely

separate code;

“black boxes”

mostly based on

existing code

Initial validation,

broker to the ESB

Page 7: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Input-Output Layer

■ Provides communication between the NJIN

2.0 and the users

■ Leverages SBG’s Plexus Message Broker

Code

■ Communication between Input-Output Layer

and the VEIL is via queues (one queue for

each user/line)

Page 8: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Enterprise Service Bus

■ Backbone of the NJIN 2.0

■ Provides communication between the

system components

■ Dynamic and static metadata will dictate

the actions taken for each transaction

Page 9: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

ESB Selection ProcessProduct Open Source/COTS Pros Cons

WSO2

Open SourceCostGreat reputation

Java-based open source –significant ramp-up for Nlets staff

NServiceBus

Open Source .NET based platform

Performance may not be adequateFunctionality specifics limit outside contractor helpUnclear roadmap

Neuron ESBCOTS .NET based, local

Prior experience with toolPoor reputation

MuleSoftCOTS (Open Source also available but inadequate)

Good reputationFunctionality appears to be adequate

Company is focusing on cloud-oriented architecture.Requires on-going support costs

TIBCO

COTS

Reputation/functionality/performance – best in classSupport availabilityAbility to involve contractors

Cost

Home Grown N/A Ability to control functionality Time to implement

Page 10: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Processing Queues

■ Between the ESB implementations and

connected layers and modules,

communication will be via queueing

■ Message durability, prioritization,

guaranteed delivery, etc.

Page 11: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Pipelines

■ The VEIL will apply a Pipeline to the transaction before sending to the ESB

– Set of instructions based upon configurable rules

■ Different Pipelines based on message type, destination, etc.

■ Pipeline may be updated along the way – error conditions, etc.

■ Provide for better configurability and enhanced diagnostics

Page 12: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Sample Catalog of Pipeline Components

Rules ValidationRules Validation

Parsing

Logging

Conversion

Sub Route

Message Header Change

Alerting (PAL/ Graham Scrape )

Federation

Image Resizing

Image Stripping

Special Instructions

Send Message

Caveating

Sample Pipeline Configuration

Rules Validation

Parsing

Conversion

Image Resizing

Send Message

Page 13: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Transactional Objects

■ Each message traversing the NJIN 2.0 will

be wrapped in a Transactional Object

■ Metadata about the transaction and its

processing that will follow the message

through the process

■ Pipeline will be maintained within the

Transactional Object

Page 14: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

<NletsTransactionalWrapper>

<NletsTransactionalObject>

<OriginalUniqueID>111111111111</OriginalUniqueID>

<UniqueID>111111111120</UniqueID>

<IPAddress>10.10.10.10</IPAddress>

<InboundHeaderData>

<MessageKey>DR</MessageKey>

<OriginatingORI>AZMVD0000</OriginatingORI>

<DestinationORI>AZNLETS23</DestinationORI>

<ControlField>CONTROLFLD</ControlField>

</InboundHeaderData>

<OutboundHeaderData/>

<MessagePriority>3</MessagePriority>

<InputHeaderFormat>Text</InputHeaderFormat>

<InputBodyFormat>Text</InputBodyFormat>

<OriginalMessage>DR.AZMVD0000.AZNLETS23.CONTROLFLD.TXTDRIVER STATUS

DATA</OriginalMessage>

<ErrorCondition/>

<PrimaryIndicator>true</PrimaryIndicator>

</NletsTransactionalObject>

<TransactionalPipeline>

<PipelineStep>

<StartDateTime/>

<EndDateTime/>

<Service>GetDestinationInfo</Service>

</PipelineStep>

<PipelineStep>

<StartDateTime/>

<EndDateTime/>

<Service>Validation</Service>

</PipelineStep>

</TransactionalPipeline>

<OutboundMessage/>

</NletsTransactionalWrapper>

Page 15: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Enhancements to NJIN

■ Better performance

■ Scalability

■ More detailed and usable logging

■ Improved diagnostics

■ Easier configurability

■ Correlation of inbound message with outbound

■ Spill queues

– Side by side queues allowing new traffic to flow alongside queued traffic following a state outage

■ Schema validation as an option (test system)

■ Statistics

■ Dashboard/console improvements

Page 16: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Monitoring Improvements

Page 17: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Monitoring Possibilities

0

200

400

600

800

1000

1200

1400

1600

0:0

0

1:0

0

2:0

0

3:0

0

4:0

0

5:0

0

6:0

0

7:0

0

8:0

0

9:0

0

10

:00

11

:00

12

:00

13

:00

14

:00

15

:00

16

:00

17

:00

18

:00

19

:00

20

:00

21

:00

22

:00

23

:00

Overall Message Volume

SUM

0

100

200

300

400

500

600

700

800

900

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Volume by Message Key

Message Key AM CR

DQ DR FQ

FR RQ RR

0

500

1000

1500

2000

2500

0:0

0

1:0

0

2:0

0

3:0

0

4:0

0

5:0

0

6:0

0

7:0

0

8:0

0

9:0

0

10

:00

11

:00

12

:00

13

:00

14

:00

15

:00

16

:00

17

:00

18

:00

19

:00

20

:00

21

:00

22

:00

23

:00

0

200

400

600

800

1000

1200

1400

1600

0:0

0

1:0

0

2:0

0

3:0

0

4:0

0

5:0

0

6:0

0

7:0

0

8:0

0

9:0

0

10

:00

11

:00

12

:00

13

:00

14

:00

15

:00

16

:00

17

:00

18

:00

19

:00

20

:00

21

:00

22

:00

23

:00

Overall Message Volume

Page 18: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Total Traffic Volume (Past Hour)

Monitoring Possibilities

Page 19: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Future Possibilities

■ Analytics

■ Proactive scaling and load balancing

■ Proactive alerting functionality

■ Reuse of modules

■ Executive Dashboard

Page 20: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

NJIN 2.0 Implementation Plan

Page 21: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Addition of QA/Dev System

■ Current test system doing double duty – we

need a true test system!

■ First implementation of NJIN 2.0 will be in

new QA/Development system

■ No external users – sandbox

■ Then followed by implementations in test

and production

Page 22: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Production

NJIN

Test

NJIN

Production

NJIN 2.0

Test

NJIN 2.0

Development

NJIN 2.0

Page 23: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Phased Approach

■ Same phased approach will be used on the

Test System and Production System

■ Incremental process to minimize risk

■ All steps may be iterated for each individual

state/user in a category

■ All phases have clear roll-back plans

Page 24: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Nlets Users

NJIN 1.0PMB

Nlets Users

Current NJIN

Page 25: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Nlets Users

NJIN 1.0

Input Layer

Output Layer

NJIN 2.0PMB

Nlets Users

Current NJIN

Page 26: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Nlets Users

NJIN 1.0

Input Layer

Output Layer

NJIN 2.0PMB

Nlets Users

Native MQ (PMB)

users sending via

new Input Layer

Page 27: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Nlets Users

NJIN 1.0

Input Layer

Output Layer

NJIN 2.0PMB

Nlets Users

Native MQ (PMB)

users sending and

receiving via new

Input and Output

Layers

Page 28: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Nlets Users

NJIN 1.0

Input Layer

Output Layer

NJIN 2.0PMB

Nlets Users

All users sending and

receiving via new

Input and Output

Layers

Page 29: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Nlets Users

NJIN 1.0

Input Layer

Output Layer

NJIN 2.0PMB

Nlets Users

NJIN 2.0 processes in

parallel (no messages

outbound) to allow

testing and review of

logs

Logging

Page 30: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Nlets Users

NJIN 1.0

Input Layer

Output Layer

NJIN 2.0PMB

Nlets Users

Parallel processing

turned off to prepare

for cutover

Logging

Page 31: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Nlets Users

NJIN 1.0

Input Layer

Output Layer

NJIN 2.0PMB

Nlets Users

Logging

NJIN 2.0 now

performs all

processing

Page 32: NJIN 2 - Amazon S3 · Overview Current NJIN is approaching capacity ... broker to the ESB. Input-Output Layer Provides communication between the NJIN 2.0 and the users Leverages SBG’s

Status

■ Finalizing ESB selection and procurement

process

■ Development work to begin immediately

– Input-Output layers and modules first

■ Timeline: Plan to implement in

approximately one year