# Presentation: 124164

## Using the JNET Messaging Infrastructure (MI) and planned SOA functionality to provide cross agency business needs.

- JNET – A Case Study

## JNET – A Case Study

- Agenda
- Welcome and Introductions
- An Introduction to JNET
- Case Study
- Improvements with SOA
- Questions and Answers

## JNET – A Case Study

- Welcome and Introductions
- James Dyche – JNET IS Manager
- Mark Fontana – JNET Data Architect
- Ancil McBarnett – JNET Architecture Manager
- Q/A - Others from Courts and State Police

## JNET – A Case Study

- An Introduction to JNET
- What is JNET?
- Who Participates in JNET?
- What are JNET Service Offerings?
- Usage of JNET Services
- Service Migration

## JNET – A Case Study

- JNET’s Vision

- “Through the full commitment of its member agencies, leadership and staff resources, the Pennsylvania Justice Network will promote safer communities throughout the Commonwealth of Pennsylvania by providing the complete and secure integrated justice system to all of Pennsylvania’s public safety partners.

-   public safety
-   integration (different from information sharing)
-   timely and appropriate access to information”

## JNET – A Case Study

- What is the Pennsylvania Justice Network (JNET)?
- JNET is a set of integrated justice tools that provide its users with a single one stop shop for information
- JNET is an integrated justice initiative that provides its users;
- Connectivity
- Security
- A set of web offerings
- A set of message offerings
- Notifications

## JNET – A Case Study

- Who Participates in JNET?
- Over 22,000 end users:
- 32 Commonwealth Organizations
- 11 Federal Agencies (FBI, US Probation, IRS CID, DEA, US Marshall)
- 67 Counties
- 555 District Justice Offices
- Over 750 Police Depts.

## Commonwealth of Pennsylvania Justice Network

**Commonwealth of Pennsylvania Justice Network**
**Integration, Identification, & Notification System**

- 476

- 99

- ERIE

- CRAWFORD

- WARREN

- FOREST

- McKEAN

- POTTER

- CAMERON

- ELK

- VENANGO

- MERCER

- BEDFORD

- BLAIR

- SOMERSET

- CAMBRIA

- INDIANA

- ARMSTRONG

- BUTLER

- LAWRENCE

- BEAVER

- ALLEGHENY

- WASHINGTON

- GREENE

- FAYETTE

- WESTMORELAND

- JEFFERSON

- CLINTON

- LYCOMING

- SULLIVAN

- TIOGA

- BRADFORD

- WAYNE

- WYOMING

- PIKE

- LUZERNE

- MONROE

- SCHUYLKILL

- CARBON

- LEHIGH

- COLUMBIA

- BUCKS

- BERKS

- CHESTER

- LANCASTER

- YORK

- LEBANON

- PERRY

- DAUPHIN

- JUNIATA

- UNION

- SNYDER

- CENTRE

- ADAMS

- FRANKLIN

- FULTON

- HUNTINGDON

- CLEARFIELD

- CLARION

- LACKAWANNA

- MONTOUR

- NORTHUMBERLAND

- NORTHAMPTON

- PHILADELPHIA

- DELAWARE

- CUMBERLAND

- SUSQUEHANNA

- MONTGOMERY

**JNET Server Placement**
**Notifications**
**Electronic Reporting**
**Municipal Police Connectivity**

- MIFFLIN

**Local Police**
**PSP**
**Parole & Prison**
**SCI**

- 05/31/2005

_**CPIN / Livescan**_

**22,496 Registered Users**

## JNET – A Case Study

- Current Services

- JNET
- Homepage

- PennDOT
- Web App

- AOPC
- Secured
- Web

- JNET
- Metro

- Court Data –
- Docket Info

- Search by SID

- Web CPIN

- Rap Sheet

- Drivers
- Photo

- Constable Info

- SID/OTN
- Look-up

- Warrants

- Master Name

- Juvenile Inquiry

- Secured
- Dockets

- County
- Probation Data

- Learning
- Management Sys

- Officer
- Look-up

- Notifications

- County
- Corrections Data

- E-Mail

- State Corrections
- Data

- Justice News

- Deputy Sheriffs

- Canadian Dr

- Documentation

- Master Charge
- Codes

- Court Forms
- and Info

- Justice Flexible
- Search

- JNET Messaging
- Infrastructure

- Drivers History

- Drivers
- Signature

- Driver
- Demographics

- PennDOT
- Audit

- PennDOT
- Audit Reports

- Vehicle

- Protection Orders

- Certified
- History

- Gang

- Boat

- OOS Dr History

- Gun

- ORI

- Wanted

- Court
- Dispositions

- Arrest

- Driver Photo
- /Demo R/R

- Parole
- Violations

- Court
- Disposition R/R

- Driver
- Demographics

- Driver Address
- History *

- Victim
- Payment

- Contact Info

- ER - Probation

- ER- Jail

- Wants

- Inmate
- Misconduct

- Driver History
- R/R*

## JNET – A Case Study

- Usage of JNET Services - Web

## JNET – A Case Study

- Usage of JNET Services - Messaging

*A Total of Over 9 Million Messages Per Month*

- 5 Million Notification Web Deliveries

## JNET – A Case Study

- Current Services

- JNET
- Homepage

- PennDOT
- Web App

- AOPC
- Secured
- Web

- JNET
- Metro

- Court Data –
- Docket Info

- Search by SID

- Web CPIN

- Rap Sheet

- Drivers
- Photo

- Constable Info

- SID/OTN
- Look-up

- Warrants

- Master Name

- Juvenile Inquiry

- Secured
- Dockets

- County
- Probation Data

- Learning
- Management Sys

- Officer
- Look-up

- Notifications

- County
- Corrections Data

- E-Mail

- State Corrections
- Data

- Justice News

- Deputy Sheriffs

- Canadian Dr

- Documentation

- Master Charge
- Codes

- Court Forms
- and Info

- Justice Flexible
- Search

- JNET Messaging
- Infrastructure

- Court
- Dispositions

- Arrest

- Driver Photo
- /Demo R/R

- Parole
- Violations

- Court
- Disposition R/R

- Driver
- Demographics

- Driver Address
- History *

- Victim
- Payment

- Contact Info

- ER - Probation

- ER- Jail

- Wants

- Inmate
- Misconduct

- Driver History
- R/R*

- Drivers History

- Drivers
- Signature

- Driver
- Demographics

- PennDOT
- Audit

- PennDOT
- Audit Reports

- Vehicle

- Protection Orders

- Certified
- History

- Gang

- Boat

- OOS Dr History

- Gun

- ORI

- Wanted

## JNET – A Case Study

- Content/Search

- Justice Applications

- Collaboration/Personalization

- Current Services (Planned Portal)

- JNET Homepage

- PennDOT

- AOPC

- JNET Metro

- JNET Messaging
- Infrastructure

- JNET Portal

- JNET Homepage

- Court
- Dispositions

- Arrest

- Driver Photo
- /Demo R/R

- Parole
- Violations

- Court
- Disposition R/R

- Driver
- Demographics

- Driver Address
- History *

- Victim
- Payment

- Contact Info

- Driver History
- R/R*

- ER - Probation

- ER- Jail

- Wants

- Inmate
- Misconduct

## JNET – A Case Study

- Content/Search

- Justice Applications

- Collaboration/Personalization

- Current Services (Migration)

- PennDOT

- AOPC

- JNET Metro

- JNET Messaging
- Infrastructure

- JNET Portal

- JNET Homepage

- Court
- Dispositions

- Arrest

- Driver Photo
- /Demo R/R

- Parole
- Violations

- Court
- Disposition R/R

- Driver
- Demographics

- Driver Address
- History *

- Victim
- Payment

- Contact Info

- Driver History
- R/R*

- ER - Probation

- ER- Jail

- Wants

- Inmate
- Misconduct

## JNET – A Case Study

- Content/Search

- Justice Applications

- Collaboration/Personalization

- Current Services (Migration)

- PennDOT

- AOPC

- JNET Metro

- JNET Messaging
- Infrastructure

- JNET Portal

- JNET Homepage

- JNET
- Homepage

- Web CPIN

- Constable Info

- Juvenile Inquiry

- County
- Probation Data

- Learning
- Management Sys

- Notifications

- County
- Corrections Data

- E-Mail

- State Corrections
- Data

- Justice News

- Deputy Sheriffs

- Documentation

- Master Charge
- Codes

- Justice Flexible
- Search

- Court
- Dispositions

- Arrest

- Driver Photo
- /Demo R/R

- Parole
- Violations

- Court
- Disposition R/R

- Driver
- Demographics

- Driver Address
- History *

- Victim
- Payment

- Contact Info

- Driver History
- R/R*

- ER - Probation

- ER- Jail

- Wants

- Inmate
- Misconduct

## JNET – A Case Study

- Content/Search

- Justice Applications

- Collaboration/Personalization

- Current Services Migrated

- JNET Homepage

- PennDOT

- AOPC

- JNET Metro

- JNET Messaging
- Infrastructure

- JNET Portal

- Court Data –
- Docket Info

- Web CPIN

- Drivers
- Photo

- Constable Info

- SID/OTN
- Look-up

- County
- Corrections

- Juvenile Inquiry

- Learning
- Management Sys

- Officer
- Look-up

- Notifications

- E-Mail

- State Corrections
- Data

- Justice News

- Deputy Sheriffs

- Documentation

- Master Charge
- Codes

- Court Forms
- and Info

- White Pages

- County Probation

- Driver
- Demographics

- PennDOT
- Audit

- PennDOT
- Audit Reports

- User Info

- Justice Flexible
- Search

- Court
- Dispositions

- Arrest

- Driver Photo
- /Demo R/R

- Parole
- Violations

- Court
- Disposition R/R

- Driver
- Demographics

- Driver Address
- History *

- Victim
- Payment

- Contact Info

- Driver History
- R/R*

- ER - Probation

- ER- Jail

- Wants

- Inmate
- Misconduct

## JNET – A Case Study

- Current Services – New Court Case Event

- JNET
- Homepage

- PennDOT
- Web App

- AOPC
- Secured
- Web

- JNET
- Metro

- Court Data –
- Docket Info

- Search by SID

- CPIN

- Rap Sheet

- Drivers
- Photo

- Constable Info

- SID/OTN
- Look-up

- Warrants

- Master Name

- Juvenile Inquiry

- Secured
- Dockets

- County
- Probation Data

- Learning
- Management Sys

- Officer
- Look-up

- Notifications

- County
- Corrections Data

- E-Mail

- State Corrections
- Data

- Justice News

- Deputy Sheriffs

- Canadian Dr

- Documentation

- Master Charge
- Codes

- Court Forms
- and Info

- Justice Flexible
- Search

- JNET Messaging
- Infrastructure

- Court
- Dispositions

- Arrest

- Driver Photo
- /Demo R/R

- Parole
- Violations

- Court
- Disposition R/R

- Driver
- Demographics

- Driver Address
- History *

- Victim Payment

- Contact Info

- Driver History
- R/R*

- Drivers History

- Drivers
- Signature

- Driver
- Demographics

- PennDOT
- Audit

- PennDOT
- Audit Reports

- Vehicle

- Protection Orders

- Certified
- History

- Gang

- Boat

- OOS Dr History

- Gun

- ORI

- Wanted

- New Service?

- Existing Services

- Messages

- ER - Probation

- ER- Jail

- Wants

- Inmate
- Misconduct

- Court Case
- Event

## JNET – A Case Study

- Agenda for Case Study
- Overview of Court Case Event
- Court Event/Trigger Based Processing
- Court Case Event GJXDM Message
- Current JNET Messaging Architecture
- Planned Consumers
- Court Case Event Messages better fit to SOA
- Challenges/Limitations

## JNET – A Case Study

- Business Drivers
- Global Training on Justice Information Exchange Model (JIEM)
- 40-60% of all state based exchanges studied by Global are initiated by Courts as the sending agency
- Multiple requests for the same court case information
- Multiple constituents
- Various events
- Different formats
- Different protocols

## JNET – A Case Study

- Overview Court Case Event
- Published by court case management systems at various court events.
- These events will published a message to JNET based upon “live updates” to the court case management systems
- Courts only want to publish the message once per event and not per requestor
- Publish/Subscribe Paradigm
- Courts want to provide governance and specifically define and approve subscribers for each event
- Application logic should be only concerned with publishing
- No logic for filtering or routing of message to subscribers

## JNET – A Case Study

- GJXDM Court Case Event Message (body)
- 		<CourtCaseEvent j:sourceIDText="CPCMS1000034">
- 			<j:ActivityTypeText>WARRANT ISSUE 09-03-0720</j:ActivityTypeText>
- 			<j:ActivityDate>2003-01-08</j:ActivityDate>
- 			<j:ActivityTime>13:03:00.0</j:ActivityTime>
- 			<j:ActivityInitiatingInstrument>
- 				<j:DocumentFiledDate>2002-11-13</j:DocumentFiledDate>
- 			</j:ActivityInitiatingInstrument>
- 			<j:CaseTitleText>Commonwealth of Pennsylvania  v.  Chad Michael Bohn</j:CaseTitleText>
- 			<j:CaseDocketID>
- 				<j:ID>CP-21-CR-0000034-2003</j:ID>
- 			</j:CaseDocketID>
- 			<j:CaseCourt>
- 				<j:OrganizationName>Cumberland County Courthouse</j:OrganizationName>
- 				<j:OrganizationLocation>

## JNET – A Case Study

- GJXDM Court Case Event Message (EBXML-like header)
- <MessageHeader>
- 	<From>
- 		<PartyId type="modified email">@AOPC</PartyId>
- 	</From>
- 	<To>
- 		<PartyId type="modified email">@GENERAL DELIVERY</PartyId>
- 	</To>
- 	<CPAId>AOPC Case Notification 1.0</CPAId>
- 	<ConversationId>CaseNotification@jnet.aopc|CaseNotification@jnet.aopc</ConversationId>
- 	<Service type="MESSAGE-XML">WARRANT PUBLISH</Service>
- 	<Action>WARRANT ISSUE</Action>
- 	<MessageData>
- 		<MessageId>998ede5bcdfc11d99dbba959eecf59dd</MessageId>
- 		<Timestamp>2005-05-26T11:44:57.575-05:00</Timestamp>
- 	</MessageData>
- </MessageHeader>

## JNET – A Case Study

- Court Case Event/Trigger Based Processing
- Initiate GJXDM Court Case Event message at;
- Case Initiation
- Warrant Issue
- Bill of Information Acceptance
- Sentence/Disposition
- Others as needed/required

| Event | Next Event | JNET Action Tag | JNET Topic |
| --- | --- | --- | --- |
| Case Initiation | Information Filed | “Case Init” | Court Case Event  |
| Information Filed | Formal Arraignment Scheduled | “Bill of Information Acceptance” | Court Case Event |
| Bench Warrant Issued | Bench Warrant Served | “Warrant Issued” | Warrant  |
| Sentencing | Penalty Assessed | “Sentence” | Court Case Event  |

## JNET – A Case Study

- Current JNET Messaging Architecture
- Supported Design Patterns
- Publish/Subscribe Mechanism
- Request/Reply Mechanism
- Current Technology
- Java Messaging Service (JMS)
- MQ Series Provider
- Routing based on publishing to specific topics
- AOPC\CourtCaseEvent, AOPC/Warrant
- Each new event means a new topic (current paradigm)
- Gross Level Filters available using JAVA Messaging Service (JMS) Selectors
- Based on text/string comparisons rather than XML structure (XPath)
- Search for string “<Action>WARRANT ISSUE</Action>”

## JNET – A Case Study

**State Police**

**PCCD**

**C o m m o n w e a l t h **
**M A N**

- CCH

**Courts**

- JNET Messaging
- Infrastructure (MI)

**Other approved**
** ****Case Event Notice**
**Topic**
** ****subscriber**
**agencies/counties**

- Victims Compensation

-  JNET
- Hub

- Event Process Flow

- IIMS

**Counties**

- County Bus/
- County Broker

-  Node

-  Node

-  Node

-  Node

-  Node

- 1 Case Init

- 3 Warrant

- 2 Bill of Info

- 4 Sentence

## JNET – A Case Study

- Planned Consumers

| JNET Subscriber | Event | Supported by current architecture |
| --- | --- | --- |
| Criminal History | Sentence/Disposition | Yes |
| Wanted Persons File | Warrant Issue | No |
| Incident Information Management System | Case Initiation
Sentence/Disposition | Yes |
| County Justice Information Exchange | All | No |
| Probation / Parole | Case Initiation
Warrant Issue | Yes |
| PA Commission on Crime and Delinquency – Victims Compensation | Case Initiation | Yes |
| Local Police – Crime Net | Case Initiation | Yes |

## JNET – A Case Study

- County Integration
- Planned Process
- Follow Justice Information Exchange Model (JIEM)
- Want JIEM routing in MI rather than AOPC application
- JIEM process information will be driven from AOPC processes
- Counties only want their information
- Want fine grained filters e.g. specific charges
- Challenges
- Sophisticated content based routing using JIEM prevailing process, triggering event and conditions
- More fine grained filters

## JNET – A Case Study

- PA/NCIC Wanted Person File
- Current Process
- Warrants and wants entered separately
- Because of manual interaction and paper based processes, warrants may not be entered into wanted persons file in a timely fashion
- New Process
- Courts publish warrant Court Case Event
- JNET MI transforms Court Case Event XML into NCIC format and sends to PA Message switch
- Challenges
- Want record must be entered with multiple (supplement) submissions
- Courts do not capture all information required for want
- Supplemental queries to PennDOT and CPIN

## JNET – A Case Study

- Challenges/Limitations
- No Data Caching Capability
- AOPC must accept all the want entry data and send it back in the published warrant message
- No Workflow Capability
- The warrant message must be split into an NCIC entry message and multiple supplemental messages
- Coordination of want entry and supplemental records must be hard coded in a JNET application
- Limited Filtering Capability
- Messages are filtered using text comparisons rather than XPath
- No Intelligent Routing
- Message broadcast to all subscribers and filtered at the receiving end

## JNET – A Case Study

- Planned SOA Implementation
- Opportunities to improve court case event information exchange
- JNET Architecture Limitations
- Service Oriented Concepts
- Service Oriented Architecture
- “To-Be” PA Court Case Event Process with SOA
- Challenges with SOA
- Benefits of SOA in Justice Integration

## JNET – A Case Study

- Opportunities to Improve PA Court Case Event Information Exchange
- Intelligent Routing Services
- One topic for all messages (requires envelop/routing information)
- Topics would be exchange/ work load based rather than event/ content based
- Can we intelligently filter and  route this event to appropriate subscribers?
- Service endpoint invocation services
- Can we facilitate each consumer nuances for consumption of event rather than just be satisfied with guaranteed delivery? i.e. DB, .Net app, MQ bridge
- Legacy Services
- Can we facilitate FTP process with receipt of Billing Information in one send?
- Transformation and Translation Services
- Can we change the file format from XML to ASCI or EBCDIC?
- Workflow, Orchestration and Message Enhancement Services
- Can we include additional demographics such as scars, marks and tattoos onto the warrant?  Can we add a photo to the warrant?
- Can we add business logic to retrieve photos from 2 sources but make a decision on which one to use (ie. The most recent photo taken)
- Can we split the warrant message into an NCIC entry message and multiple supplemental messages, and coordinate its entry?

## JNET – A Case Study

**JNET Architecture Limitations**
- Web applications not easily exposable as services
- MI nicely exposed but not web app.
- Better to get demographics from MI
- Where is the routing logic?
- Who is orchestrating this?
- Where is the business logic?
- Would love to have this reusable for other processes.
- Who will combine responses to GJXDM message?
- Is it publisher’s (AOPC’s) problem?
- Is it JNET’s responsibility?
**Need a Service Oriented Approach with supporting Architecture**

- JNET Messaging
- Infrastructure

- CPIN

- Drivers
- Photo

- SID/OTN
- Look-up

- Driver
- Demographics

- Driver Photo
- /Demo R/R

- Driver
- Demographics

- Wants/ Warrants

- Driver History
- R/R*

- JNET Secure
- Web Site

- ?

## JNET – A Case Study

- Service Oriented Concepts
- What is a Service?
- A service is core piece of business logic that is protocol independent, location agnostic, and contains no user state.
- Services don't contain presentation logic, nor do they contain logic to integrate with data-tier resources, such as a database.
- Service Oriented Approach
- A Service Oriented Approach is about **creating services** with well defined interfaces (inputs and outputs) and behavior either from scratch or by wrapping existing application code.
- There is the notion of liberating functionality and management functions from monolithic applications and defining once as a service.
- The art of being able to encapsulate a service as a black box, only being aware of inputs into and outputs from that service.
- Does not necessarily involve web services, whose contract is a WSDL.
- These services are then combined into **composite services, applications** and business processes, by a mixture of modeling, configuration and parameterization and hopefully no coding.
- In the spirit, of **loose coupling**, inputs and outputs of a service should be described as XML, without any thought of presentation, routing etc.
- Services should have **expanded reach** – can be accessed on the web or via messaging or otherwise.

**Notes:**
The final principle of SOA is that you can build new services out of existing ones. This really is the “holy grail” of integration. When companies look at their past integration projects they see islands of integration – different technical solutions were used to solve different integration problems. There was little re-use between integration projects and ever increasing maintenance costs. The whole SOA approach is a response to this: you define all your services in one way, as Web services. This means they have at least a potential to be reused. SOA goes further however, enabling you to build new services by composing together existing services. This is new. Previously new services were built by integrating with existing databases and servers. SOA says that you should also be able to build new services from services you've already integrated.
The JNET Next Generation Architecture was conceived with a specific goal in mind – “to provide a highly reliable, scalable, flexible, expandable, and secure service-oriented platform for justice and public safety information sharing, application integration, and business process execution.” 

## JNET – A Case Study

- Service Oriented Architecture
- Union of services, processes and policies into a framework.

**Notes:**
An architecture that  implements business functionality as a set of shared reusable services.
A set of principles that define an architecture that is loosely coupled and comprised of service providers and service consumers that interact according a negotiated contract or interface.

## JNET – A Case Study

- “To-Be” PA Court Case Event Process with SOA

## JNET – A Case Study

- Challenges with SOA
- Monitoring – Operations have many more items to control, monitor and respond to when something goes wrong.  Abstraction layer increased.
- SLA and Performance – The business is interested in the performance of a composite service or process, not the individual services, and therefore should have service level agreements at that level.
- Security – With processes running across multiple services, security and privacy reach new levels of complexity. How do we ensure that a service is only used by permitted users?
- Mediation – traditional SOA does not specify how to accommodate for much needed mediation services such as transformations, translations, validations, exception handling etc.
- Vaporware and Misnomer – It is unfortunate that SOA is discussed with only web services in mind.  A Service Oriented Approach is paramount.

## JNET – A Case Study

- Benefits of SOA in Justice Integration
- Flexibility – New processes can be defined and implemented much more quickly than traditional approaches
- Services can be mixed and matched independently of their technological origins
- Concept of services combining into a justice process is much closer to reality within an event driven paradigm
- GJXDM used as a canonical model to define inputs and outputs to a service, leaving routing details to infrastructure
- It is possible to implement applications using a service –oriented approach, without a service-oriented architecture, but this requires much effort of the developers with resulting accidental and spaghetti architecture

## Questions and Answers – Panel

- Questions and Answers – Panel

- JNET – A Case Study