project argus-tamas kluber
TRANSCRIPT
Reporting and analysing system based on business customers’ energy usage
made for E.ON Hungary
PROJECT ARGUS (CAPTURE LTD 2011-2012)
1
BUSINESS FUNCIONALITY
E.ON collects data of energy usage (both electricity and gas) on business customers via smart meters into a specially designed system.The Argus system was designed to analyse these data, report them and raise alerts at unusual usage to inspectors.
2
PREVIOUS SYSTEM
Disadvantages:• Performance issues• Need to be installed separately to every PC
too much work at each version-release• Too complicated to add new features• Data audition could have been hard to implement• Designed to analysed only electricity data
Architecture:• Based on Java• Desktop based• Oracle database
3
TECHNICAL REQUIREMENTS
• Oracle database• Vertical and horizontal scalability• Easy to audit the user data changes• Web based system for the centralized version
management• Browser independency• Supporting both electricity and gas data• Use the existing export-function from the smart
reader system without much modification• Extendibility for home users for the ongoing project• Extra urgent usable beta version
4
PROJECT TEAM
• Dedicated project manager• Project owner / business consultant • Development team• Architect• Lead developer / consultant• 2 user interface developers• 2 backend developers• Database developer / admin
• 2 testers
5
TECHNOLOGIES
• Oracle table partitioning• NHiberate data access layer• Couchbase for distributed caching• WCF• Unity for the IOC and AOP• Quartz.Net for job management and Map-Reduce• Silverlight for user interface• Team City and MBUnit for Continuous Integration
6
METHODOLOGY AND DEVELOPMENT PROCESS
• Scrum/Agile • Daily stand-up• Sprint design meeting• Task management
• Development stages• Development environment• Testing environment• Release/Live environment
• Continuous Integration on every stage with Team City• Custom solution for database versioning
7
Couchbase Distributed Cache
WCF Services
Oracle Instance
SmartReaderSystem
Web Server for Silverlight
Quartz.Net
Data import
Clients
BASIC NETWORK DIAGRAM8
Couchbase Distributed Cache
SmartReaderSystem
Web Server for Silverlight
Clients
WCF Services with business logic
OracleShards
Quartz.Net with Map-Reduce jobs
SCALED NETWORK DIAGRAM -
BUSINESS LOGIC RUNS INTO WCF SERVICES
Data import
9
Couchbase Distributed Cache
WCF Serviceswith business logic
OracleShards
SmartReaderSystem
Web Server for Silverlight
Data import
Clients
Quartz.Net with Map-Reduce jobs,Business logic directly injected into jobs
SCALED NETWORK DIAGRAM - BUSINESS LOGIC RUNS DIRECTLY INTO
JOBS
10
11
Business Logic
Facade(DTO’s and Object Translation)
Inte
rfac
e an
dm
odel
defi
nitio
ns
IOC
and
AOP
Audit Couchbase
Job and Map-ReduceQuartz.NET core
Silverlight UI
Application DB Audit DB
Quartz.NET DB
Repo’s DAO
LAYER DIAGRAM
WCF Instance
All layers run inQuartz.NET AppDomain
12
Couc
hbas
e
Shard 1
Job andMap-Reduce
Quartz.NET core
Silverlight UI
Quartz.NET DB Shard 2 Shard n Audit
DB
LAYER DIAGRAMWITH SEPARATED APPDOMAINS
13
PATTERNS APPLIED
• CQRS (Command and Query Segregation)• Repository pattern• Singleton• Interception• Operation contract / Session and Transaction• Facade pattern
THANK YOUFOR YOUR
ATTENTION!
BY TAMAS KLUBER