1 / 12

A Histogramming Package in Java

A Histogramming Package in Java. CHEP 2000 February 10, 2000 Teatro Antonianum, Padova Naomi Takashimizu/Shimane University Takashi Sasaki/KEK. A Simple Histogramming Package. We have developed a prototype of software package for histogramming. creating, filling, and several operations

ember
Télécharger la présentation

A Histogramming Package in Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Histogramming Package in Java CHEP 2000 February 10, 2000 Teatro Antonianum, Padova Naomi Takashimizu/Shimane University Takashi Sasaki/KEK

  2. A Simple Histogramming Package • We have developed a prototype of software package for histogramming. • creating, filling, and several operations • Histogram objects stored in the OODB can be shared by C++ and Java applications. • The package also includes a histogram visualizer • browsing and modifying histograms interactively. C++ Java OODB

  3. Software Development in Java • Java is suited for developing physics analysis program or tools. • A simple language designed to be object oriented. • Pointer and garbage collection are excluded. • Architecture-neutral bytecode can be transported to any platform. • Provides a variety of GUI components. • etc • However software development in C++ is still dominant in HEP. • If it is possible to share object between C++ and Java one can choose language suited for one’s purpose.

  4. Interoperability of persistent objects • C++ and Java objects which have different internal expression can be shared by using Objectivity/DB. • To share objects you must make C++ and Java class compatible with the schema. • Schema definition is done by defining a class derived from a persistent-capable class of Objectivity/DB. • DDL(Data Definition Language) files in C++ • normal source files in Java

  5. Schema definition C++ Java //Histo1D.ddl //Histo1D.java #include bin.h public class Histo1D typedef ooRef(Bin) BinR extends Histogram declare(ooVArray,BinR) { static int SIZE=100; class Histo1D:public private int _numberOfBins; :public Histogram private Bin[] _bin { = new Bin[SIZE]; private: ... int32 _numberOfBins; ooVArray(BinR) _bin; ...

  6. Limitations in defining compatible schema • variable-length arrays in C++ are mapped to fixed-length arrays in Java • Multiple inheritance is not supported in Java. • Schema files cannot be shared.

  7. Design Visualizer Database control class Persistent class

  8. Design • A Histogram object contains an collection of Bin objects as a member. • In the current version of Objectivity/DB, the collection of Bin is implemented by • variable-length array in C++ • fixed-length array in Java • Histograms object is a container of Histogram objects. • A new Histogram is created by a method in a container and clustered into the container.

  9. Design • ooSession is the class for all purpose to establish a connection of an application with the database and control transactions. • MySession is the extended class of ooSession for accessing persistent histograms. • Jaws(Java Analysis WorkShop) is the core of the visualizer.

  10. Sequence Diagram

  11. An example of GUI

  12. Summary • We have implemented a prototype of software package for histogramming in a short period using Java. • Objects were able to be shared by C++ and Java application without much difficulty.

More Related