Presentation is loading. Please wait.

Presentation is loading. Please wait.

Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-11 Production Experience with CORBA in the BaBar Experiment Scott D. Metzler California Institute.

Similar presentations


Presentation on theme: "Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-11 Production Experience with CORBA in the BaBar Experiment Scott D. Metzler California Institute."— Presentation transcript:

1 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-11 Production Experience with CORBA in the BaBar Experiment Scott D. Metzler California Institute of Technology For the BaBar Computing Group

2 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-112 Introduction BaBar computing planners embraced Object- Oriented design and the need for large numbers of Unix nodes from the outset. One unresolved issue was how to augment Unix system calls and TCP for use in the Online system. CORBA was provisionally adopted in early 1998 for a small number of pilot projects. Further use of CORBA followed later that year.

3 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-113 BaBar ’s Usage of CORBA Primary Reasons for using CORBA:  Object-level interprocess communication (IPC)  Language interoperability (C++ and Java)  Extensibility (marshalling is internal to CORBA) BaBar adopted the TAO version of CORBA that is freely available with the ACE Unix system wrappers. Not all of BaBar’s CORBA projects use TAO. Only those that do use TAO will be discussed here.

4 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-114 Objectivity Browser Background  300 TB of physics events/year stored in Objectivity. Requirements  Graphical tools needed to view information.  Tools needed to assist administrators in exporting databases to remote sites. Reasons for CORBA:  Object-level IPC  Language interoperability  The C++ interface to Objectivity is much richer than the Java interface (C++ server).  A portable client was desired (Java client).

5 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-115 Objectivity Browser GUI

6 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-116 Distributed Histogramming Background  Online Event Processing runs on 32 farm nodes. Requirements  Monitor online data in real-time to quickly find problems.  Provide access to data for GUIs and automatic monitoring. Reasons for CORBA:  Object-level IPC  Extensibility  Language interoperability

7 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-117 JAS Display of BaBar EMC Online Data An adaptor converts the Distributed Histogrammer’s CORBA protocol to JAS.

8 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-118 Ambient Data Handling Background  Detector Controls monitors and archives detector and environmental information. Requirements  Access to real-time data.  Access to archived data. Reasons for CORBA:  Object-level IPC  Language interoperability Reuse of Distributed Histogramming IDL means the same GUI can be reused without changes.

9 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-119 Ambient Data Handling GUI

10 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-1110 Online Prompt Reconstruction Background  Event Logger works with both Level 3 and OPR.  OPR reconstructs events within a couple hours of data- taking. Requirements  System configuration of Event Logger for L3 and OPR modes.  Monitor data and system. Reasons for CORBA:  Object-level IPC (Configuration and control).  Language interoperability (Java display of monitoring data).

11 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-1111 Performance and Reliability CORBA is slower than TCP (as of 1/98)  Factor of 10 for small data transfers.  Factor of 2 for large data transfers. Rate is unnoticeable for our GUI applications. ACE/TAO are very reliable.

12 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-1112 Operational Issues and Lessons Learned It is quick and easy to learn “Elementary” CORBA. Experienced programmers can be effective in less than a week. CORBA is very rich. Learning how to use most of the available services would take a significant amount of time. Name service has been very useful for connecting processes.

13 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-1113 IDL Useful abstraction technique. Provides separation of client development (GUI in Java) from server development (server in C++). Provides reuse (Ambient Data Handler reuses Distributed Histogramming IDL and GUI). (Multiple) Inheritance of IDL can be a powerful design technique. Avoids painful debugging and migrations in writing (de-)serialization code.

14 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-1114 Multi-threading Useful for performance in many of our applications.  Most applications send the same command to many (32-200) servers. We haven’t thoroughly pursued multi-threading yet.  Early versions of TAO did not support multithreading.  We have not yet returned to this issue, but we want to.

15 Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-1115 Conclusions CORBA is useful for IPC  Slow, but acceptable for our GUI applications.  Speed compensated by ease of use. Easy to learn and use “Elementary” CORBA.  Easier and more tolerant than using TCP directly.  Many services we have not explored. We recommend CORBA for applications that can afford to sacrifice better performance for ease of development.


Download ppt "Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb. 7-11 Production Experience with CORBA in the BaBar Experiment Scott D. Metzler California Institute."

Similar presentations


Ads by Google