240 likes | 366 Views
TotalETL is a pioneering ETL (Extract, Transform, Load) company that specializes in creating robust solutions for large-scale data operations. The MQP project aims to prototype a client-server version of the existing infoSight desktop solution, transitioning towards a distributed, multi-user database-centric architecture. Key features include a comprehensive security model, job scheduling, version control, and event management. With aspirations to enhance software capabilities, TotalETL focuses on back-end design, facilitating seamless project management and robust database interactions.
E N D
TotalETL:infoServer Chris Fournier Nathan Clark Scott Longley Cyril Shilnikov MQP Project 2005 Sponsored by TotalETL inc.
TotalETL • Small ETL Company • ETL (Extract Transform Load) • Used in large companies • Multimillion dollar business • Existing Product is infoSight-- desktop solution
infoSight Current Features • GUI Project creation • Library of Transformers • Works with multiple input types • Single machine • Single user • One project at a time
MQP Project goals • Prototype the client-server version of infoSight • Distributed • Multi-user • Database-centric • Extensible • Alpha-level code • Focus on back-end design
Project Methodology • Met with TotalETL team on-site • Design requirements • Refine and discuss requirements as needed • Build core modules, demo end first term • Build additional modules, final demo.
General design overview Thin Clients Distributed Server System Repository Thick Clients
Actual design overview Client Security Manager Session Manager Event & Log Manager Project Manager Job Manager Version Manager Scheduling Manager Repository Manager DB
Repository Manager • System core • Store all information about • System operation • Security • Projects • XML Parser to store Projects • JDBC to connect to DB’s
Project Manager & Version Control • Storage and Retrieval of Projects • In-memory Object -> XML File -> Repository • Version Control • Per user locking • Version tracking
Job Manager • Combine Projects into Jobs • Set interdependencies • Running Jobs
Schedule Manager • Schedule Jobs • On request • Per schedule • Multiple scheduling strategies
Session Manager • Establish and maintain client connections • RMI • Simple, robust, built-in to Java • Front end for all functions in server • Security checking • Authentication of users • Authorization of commands
Security Manager • Determine user’s privileges • Control access to Projects, Jobs, etc. • Custom Security Model • Role-based ACLs • Read, Write, Execute (Projects and Jobs) • Read, Create, Modify (System Configuration)
Event Manager & Logger • Useful for future expansion • Complex Hierarchy of Events • All Events Logged • Log4J format
Event Hierarchy InfoserverEvent UserEvent UserLoginEvent UserLoginFailedEvent ProjectEvent UserLogoutEvent (Other level-2 events) (Other level-3 events) Listeners
Saving and Loading Projects Client Security Manager Session Manager Event & Log Manager Project Manager Version Manager Repository Manager DB
Creating Jobs from Projects Client Security Manager Session Manager Event & Log Manager Project Manager Job Manager Repository Manager DB
Scheduling Jobs to Run Client Security Manager Session Manager Event & Log Manager Job Manager Scheduling Manager Repository Manager DB
Project Summary • Relational Database storage • Projects • Operational Information • Job Scheduling • Tailored Security Model • Version control • Logging
Future work • Distributed servers • Clients, thick and thin • Support for more databases • More advanced scheduling algorithms
Thanks • Professor E. A. Rundensteiner • Arun Shastry • Greg Goldberg • Rest of the TotalETL Team