Transcript Document
PESC + SOA
A flexible and distributed
SOA architecture to
implement the PESC
Standard
Jam Hamidi
[email protected]
Saturday, April 2, 2016
Higher Education in BC
4 research universities
6 teaching universities
11 colleges
4 institutes
25 public post-secondaries
BCcampus | connect. collaborate. innovate.
Page |
BCcampus Role
Connect
Collaborate
Innovate
BCcampus | connect. collaborate. innovate.
Page |
Student Services: PASBC
BCcampus | connect. collaborate. innovate.
Page |
Collaboratives & Shared Services
Applied Business Technology
Northern Collaborative for
Information Technology
Aboriginal Early Childhood
Education
BCcampus | connect. collaborate. innovate.
Page |
BCcampus
PESC+SOA
Enterprise Integration Patterns
Science of Enterprise Integration
Common patterns – Body of knowledge and
vocabulary: Hohpe & Woolf good introduction.
Service as unit of processing
Many small Services connected together to
become concurrent Applications.
Enterprise Service Bus as messaging glue
Highways and ramps and capillaries
Synchronous and Asynchronous messages
Webservice interfaces
Security is built-in.
BCcampus | connect. collaborate. innovate.
Page | 6
BCcampus
PESC+SOA
BCcampus Connectors
Connectivity
Communication
Transformation
Portability
Security
Standards
BCcampus | connect. collaborate. innovate.
Page | 7
BCcampus
PESC+SOA
BCcampus Requirements
Flexibility
Reusability
Commonality
Low man-hours
Quick turn-around
Short Cycle
Coexistence
BCcampus | connect. collaborate. innovate.
Page | 8
BCcampus
PESC+SOA
How do we?
Deal with various data formats?
Get to the data in other places?
Push data to other places?
Deal with the changeable nature of systems outside of our control?
Standardize our processes?
Implement our services?
Make sure we’re secure?
Make the Octopus manageable?
BCcampus | connect. collaborate. innovate.
Page | 9
BCcampus
PESC+SOA
First Steps
Data Driven
Don’t invent Data Types: Import Data Models and become good at it: PESC Standards,
Institution Schemas, Government templates. Everything becomes an XML Schema.
Accept the fact that the Data Models will change
Historic Data may be fixed, but Standards evolve, Implementation schedules vary.
Will have to handle multiple versions simultaneously.
Everything is automatically generated from the Schemas
• Communication layers
• Java programs that access or marshal data types
• Presentation layer code, javascript, SOAP, WebServices.
• Datastore layers: Can’t be dealing with manual mapping in code to Database columns
anymore, too many types, too time consuming.
BCcampus | connect. collaborate. innovate.
Page | 10
BCcampus
PESC+SOA
Service Oriented
Divide up Large Scale programs into Services
Use Integration patterns:
Messaging Bus (Asynchronous, Many to one, one to Many, Idempotent, etc..)
Message Routers (Based on topic, or load, or message data)
Wire tap (Management and Monitoring)
Splitters / Aggregators
Many Simple Services that can be wired up with Spring
Reuse (for example DB Storage Service)
BCcampus | connect. collaborate. innovate.
Page | 11
BCcampus
PESC+SOA
A Service
Runnable
Inbound Endpoint
Body (processing)
Outbound Endpoint
Transformers on Endpoints
Patterns (Routers, Splitters, etc..)
BCcampus | connect. collaborate. innovate.
Page | 12
BCcampus
PESC+SOA
PESC Schemas
Post Secondary Electronic Standards Council
Schemas for most BCcampus Data Models
Data alignment across disparate Systems/Institutions/Countries
Standards setting and Maintenance body
Open XML schemas readily available to participating institutions
http://www.pesc.org
BCcampus | connect. collaborate. innovate.
Page | 13
BCcampus
PESC+SOA
PESC Implementation Challenges
Comprehensive hence complex
Challenge of keeping up with revisions
Changes pushed to Institutions
Institutions with different timetables
Need for multiple version coexistence during upgrade periods
Need to Roadmap upcoming changes
Discourages direct coding to PESC schemas
Tools needed to manage implementation
BCcampus | connect. collaborate. innovate.
Page | 14
BCcampus
PESC+SOA
BCcampus Approach
Schemas are input to code generation
Java code that deals with PESC entitites generated directly from PESC repository
Augmentation is needed but kept to a minimum
Database mapping also autogenerated
As PESC schemas change, 90% of the process of adaptation is automatic
Tools we use:
• Java JVM
• Eclipse IDE
• CVS/SVN version control
• JAXB (from schema to java code)
• Datanucleus (from java code to DB)
• Mule (SOA and ESB)
• Spring (Service wiring)
BCcampus | connect. collaborate. innovate.
Page | 15
BCcampus
PESC+SOA
BCcampus | connect. collaborate. innovate.
Page | 16
BCcampus
PESC+SOA
BCcampus | connect. collaborate. innovate.
Page | 17
BCcampus
PESC+SOA
BCcampus | connect. collaborate. innovate.
Page | 18
BCcampus
PESC+SOA
BCcampus | connect. collaborate. innovate.
Page | 19
BCcampus
PESC+SOA
Transcript Server Services
Batch
WebService
Poll
Persist
Listener
Dispatcher
ESB
http://www.bccampus.ca/transcripts/webService
BCcampus | connect. collaborate. innovate.
Banner/Colleague Agents
Page | 20
BCcampus
PESC+SOA
Management Aspects
Service Management Tools
Management Console
Throughput
Load Balancing
ESB Monitoring
DB Monitoring
Architecture choices
• Can move Services outside of JVM
• Can add more or remove identical services
• Can move Services to other machines
• Only wiring is affected
BCcampus | connect. collaborate. innovate.
Page | 21
PESC + SOA
Conclusion
A Process rather than a Solution
We are learning as we go.
Adhere to philosophy:
• Always remain at most one version behind the latest version
• Automatic Operations (Development, Management) as much as possible
• Use tools rather than code as much as possible
• Use Integration Patterns
BCcampus | connect. collaborate. innovate.
Page | 22