Transcript AMUN
CORBA/RMI issues in Nile
CHEP 2000
Authors:
F. Handfield (University of Texas, Austin, TX USA)
D. Mimnagh (University of Texas, Austin, TX USA)
M. Ogg (University of Texas, Austin, TX USA)
L. Zhou (University of Florida, Gainesville, FL USA)
Presented by:
D. Mimnagh (University of Texas, Austin, TX USA)
Overview
• What is Nile?
• Distributed Object Architecture
– CORBA
– RMI
• Future work
2/10/00
Dominic Mimnagh CHEP2000
2
What is Nile?
• Nile: Distributed computing solution for CLEO
– fault-tolerant (recover from resource failure)
– self-managing (sophisticated resource scheduling)
– heterogeneous (will run anything anywhere)
• Designed for HEP
– track reconstruction
– data analysis
– simulation
• But very generic
2/10/00
Dominic Mimnagh CHEP2000
3
Nile Architecture
2/10/00
Dominic Mimnagh CHEP2000
4
History of Nile
• Initially
– C++
– Electra, for the CORBA ORB
– Isis for replication
• Isis product was eventually abandon by its vendor
• C++ was hard to use portably
• Nile rewritten in Java with CORBA
2/10/00
Dominic Mimnagh CHEP2000
5
Distributed Object Architecture
• Computation is distributed
• Should we distribute the control system?
–
–
–
–
–
scalability
resilience
separation of function
additional failure modes
error handling
• Choices available:
– CORBA, RMI, DCOM
2/10/00
Dominic Mimnagh CHEP2000
6
Nile with CORBA
• Code specified by IDL to Java bindings
– write interfaces in IDL
– compile IDL to Java for interfaces, proxies
helper classes etc...
– implement Java interfaces
• Successful robust Nile implementation
achieved
– HERA-B MC
– CLEO II MC
2/10/00
Dominic Mimnagh CHEP2000
7
CORBA Issues
• Restrictive object model
–
–
–
–
pass data only
not Serializable
members are public
classes are final
• Under specified
– OMG politics?
• Name Service is single point of failure
• ORB supplier
– bug reporting
• Scaling problems
2/10/00
Dominic Mimnagh CHEP2000
8
Nile with RMI
• No code mappings needed
– write interfaces in Java
– implement Java interfaces
– compile implementation to proxies classes
• Improved Nile prototype (see E301)
– no deadlocks
– no scalability problems with 60 CPUs
2/10/00
Dominic Mimnagh CHEP2000
9
RMI Issues
• Less complex
–
–
–
–
only the essentials functions are provided
fewer lines of code
Java only (could use JNI to get to others)
rudimentary registry service
• Real objects
– data + code
• One vendor
– better integration
– no alternatives
• It does the job!
2/10/00
Dominic Mimnagh CHEP2000
10
Future Work
• Complete port to RMI
– robust fault-tolerance,GUIs, etc...
• CLEO III data processing and analysis
– scheduling
– data management
– comprehensive security
• Enhance Nile with RMI technologies
– Jini
2/10/00
Dominic Mimnagh CHEP2000
11
Jini
• Lookup Service
– Name Service
– transparent replication
– object database
• Lease mechanism
• Distributed events
2/10/00
Dominic Mimnagh CHEP2000
12