C++ Introspection and Object persistency Through JIL David Lawrence Ph. D. Jefferson Lab, Newport News VA.

Slides:



Advertisements
Similar presentations
Tridion 5.3 Templates.
Advertisements

Personalized Navigation in the Semantic Web: An Enhanced Faceted Browser Michal Tvarožek FIIT STU BA.
Extreme User Interfaces for Alfresco Kevin Dorr Sr. Solutions Engineer Americas Channel.
Building Localized Applications with Microsoft.NET Framework and Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corp.
Intel Parallel Advisor Workflow David Valentine Computer Science Slippery Rock University.
Introduction Main technologies: core written in Java embedded Jython interpreter code managed using the Eclipse plugin framework client program uses Eclipse.
Creating Custom Forms. 2 Design and create a custom form You can create a custom form by modifying an existing form or creating a new form. Either way,
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
Object-Oriented Application Development Using VB.NET 1 Chapter 13 Introduction to Data Access Classes and Persistence.
Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November.
BY CHRIS ANDERSON Creating a MIDI Generator Program.
Data Management I DBMS Relational Systems. Overview u Introduction u DBMS –components –types u Relational Model –characteristics –implementation u Physical.
Lab 09 More on Spreadsheets MS Excel. Objectives  The students should understand and have hands on experience in Working with formulas and functions.
JavaBeans A component architecture. What is JavaBeans? NC World (New Computing) Dictionary: JavaBeans n. 1. JavaSoft technology. 2. Component object model.
Microsoft Office Open XML Formats Brian Jones Lead Program Manager Microsoft Corporation.
1 The World Wide Web. 2  Web Fundamentals  Pages are defined by the Hypertext Markup Language (HTML) and contain text, graphics, audio, video and software.
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
Oracle XML Publisher Integration with PeopleSoft By, Mr. Venkat.
JPEG Compression in Matlab
Collections Management Museums Reporting in KE EMu.
Future Directions for Leveraging Advanced XML Tools and Building Custom XML Solutions Denise Draper DAT321 Microsoft Corporation.
1 Simple Object Access Protocol (SOAP) by Kazi Huque.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
DSpace XML UI Project Texas A&M University Digital Initiatives, Research and Technology Scott Phillips, Cody Green, Alexey Maslov, Adam Mikeal, Brian Surratt,
6/22/2006 DATA MINING I. Definition & Business-Related Examples Mohammad Monakes Fouad Alibrahim.
Component-Based Software Engineering Introduction to Java Beans Paul Krause and Sotiris Moschoyiannis.
.NET Framework Introduction: Metadata
Semantic Computing Research Group University of Helsinki 1 SemCocoon – A Semantic Cocoon OntoView – Portal System.
ROOT: A Data Mining Tool from CERN Arun Tripathi and Ravi Kumar 2008 CAS Ratemaking Seminar on Ratemaking 17 March 2008 Cambridge, Massachusetts.
Avro Apache Course: Distributed class Student ID: AM Name: Azzaya Galbazar
Peter Hinrichsen TechInsite Pty Ltd Rolling your own Object Persistence Framework (OPF) Please consider the following questions:
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
December 15, 2011 Use of Semantic Adapter in caCIS Architecture.
Data Management Kelly Clynes Caitlin Minteer. Agenda Globus Toolkit Basic Data Management Systems Overview of Data Management Data Movement Grid FTP Reliable.
Imperial College Tracker Slow Control & Monitoring.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
GLOSSARY COMPILATION Alex Kotov (akotov2) Hanna Zhong (hzhong) Hoa Nguyen (hnguyen4) Zhenyu Yang (zyang2)
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Student Companion - Project Current State – Achievements Members in Sweden: Andreas Drake Asad Saleem Muhammad Usman Ghani Robert Lundquist.
GlueX Software Status April 28, 2006 David Lawrence, JLab.
Nadir Saghar, Tony Pan, Ashish Sharma REST for Data Services.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
10 – 12 APRIL 2005 Riyadh, Saudi Arabia. Visual Studio 2005 : New Features for the Web Services Developer Malek Kemmou CEO Arrabeta Consulting Microsoft.
DANA uses a factory model to deliver data “just in time”
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
CHEP ‘06 David Lawrence JLab C++ Introspection and Object Persistency through JIL David Lawrence Ph. D. Jefferson Lab, Newport News VA.
Celluloid An interactive media sequencing language.
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
Developing Applications with the CSI Framework A General Guide.
David Adams ATLAS DIAL: Distributed Interactive Analysis of Large datasets David Adams BNL August 5, 2002 BNL OMEGA talk.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
The JANA Reconstruction Framework David Lawrence - JLab May 25, /25/101JANA - Lawrence - CLAS12 Software Workshop.
9/28/2005Philippe Canal, ROOT Workshop TTree / SQL Philippe Canal (FNAL) 2005 Root Workshop.
ISA 95 Working Group Process Centric Exchanges Gavan W Hood July 23, 2015 GWH 2.1.
Gaudi Framework Tutorial, April Creating Objects and Writing Data.
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
GlueX Software Status + Framework Development David Lawrence JLab September 19, /19/081Software Status -- David Lawrence, JLab.
ECHO Technical Interchange Meeting 2013 Timothy Goff 1 Raytheon EED Program | ECHO Technical Interchange 2013.
ESO - Garching 08 – 09 March, st ALMA Common Software Workshop XML « Data by Value » Transport.
October 19, 2010 David Lawrence JLab Oct. 19, 20101RootSpy -- CHEP10, Taipei -- David Lawrence, JLab Parallel Session 18: Software Engineering, Data Stores,
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
Wednesday NI Vision Sessions
DANA David Lawrence Oct. 21, D. Lawrence, JLab GlueX Software Workshop Oct Outline Requirements Philosophy Overview of Features Open Questions.
Root I/O and the Gaudi Framework
LOCO Extract – Transform - Load
The Object-Oriented Thought Process Chapter 12
Entity Framework Code-First Migrations
Calling Party Identity
Presentation transcript:

C++ Introspection and Object persistency Through JIL David Lawrence Ph. D. Jefferson Lab, Newport News VA

Introspection and Object Persistency Introspection: Ability for a program to query the structure of its classes from within the program. Object Persistency: Writing the data portion of an object to a file so that it can be re-created later by another program.

Motivation for JIL Add object persistency support to existing CODA file format Implement C++ object persistence in DANA framework Make general use tool for object persistence without requiring access to C++ source (only headers)

Serializers Files are 1-dimensional things. In order to write a multi-dimensional “object” into a file, it must be serialized. A corresponding deserializer must also be written to reconstitute the object later. In addition, a file format specification is needed to keep track of what objects are in the file along with locations and sizes.

Multiple Approaches To Creating Serializers Write generic serializer based on introspective information C++ parser/interpreter (ROOT) Write class definitions in XML format and generate C++ headers Hand coded serializers

A Simple Example

Use Gnu Debugger (gdb) to mine class/struct structure

XML representation of “myClass”

(De)Serializer Routines change complex structures into “simple” type problem

Writing objects to a file

Reading objects from a file

Serialization time vs. # events

Multi-Threading

Summary JIL provides a mechanism to add object persistency through files to C++ projects JIL can use either C++ code or XML as the source from which to generate serializer methods JIL can be used to make 3rd party objects persistent without modifying the 3rd party source code

Summary JIL optionally uses bzip2 compression JIL is multi-thread enabled (not just thread- safe) JIL allows customized backends to support legacy file formats