80 likes | 94 Views
Explore the benefits of message-based communication in distributed systems and its impact on performance, concurrency, and collaboration. Learn about the principles of messaging in various contexts, including Web Services and M-MVC. Discover how NaradaBrokering and CCR can enhance communication efficiency. Integrate desktop and Web Service approaches using MMVC and NaradaBrokering for seamless collaboration and portability.
E N D
Message Management April 27 2006 Geoffrey Fox Computer Science, Informatics, Physics Pervasive Technology Laboratories Indiana University Bloomington IN 47401 gcf@indiana.edu http://www.infomall.org
Messaging Runtime I • Components communicate via messages • MPI • SOAP • Putting bytes on a stack • Events/Interrupts • Between Services, Peers (of P2P), CCA Components, Objects, Procedures, Handlers • Trade-offs in performance, concurrency, ease of programming depend on how explicit message is • Hard/impossible to convert conventional programs efficiently into explicit message linked components • Similar implicit (and unnecessary) side-effects make concurrency hard • Message-based MVC makes Model and View components • CCR is an example of a language that can exploit messaging between threads • It is applied to Robotics which typically uses dataflow as in Khoros (image processing)
Messaging Runtime II • We built NaradaBrokering messaging system applied to distributed (Grid, P2P, Web service) and desktop applications • Initially we will establish performance expectations • Such as MPI has overhead of a few microseconds • Nearby distributed systems have overheads of 1-2 milliseconds • Thread Scheduling overhead is around 10 milliseconds (Java, XP) • CCR is better • What are primitives needed for communication (MPI and CCR collectives) • Interaction between otherwise independent threads due to Cache conflicts • We understand both communication patterns and performance models for scientific applications
Web Services and M-MVC • Web Services are naturally M-MVC – Message based Model View Controller with • Model is Component • Controller is Messages (NaradaBrokering) • View is rendering As Controller
Desktop and Web Services with MMVC • Most desktop applications are in fact roughly MVC with controller formed by “system interrupts” with View and Model communicating by “post an event” and define a “listener” programming mode • We propose to integrate desktop and Web Service approach by systematic use of MMVC and NaradaBrokering • Allows easier porting to diverse clients and automatic collaboration • Attractive for next generation of Linux desktop clients • We have demonstrated for SVG Browser (Scalable Vector Graphics), OpenOffice and PowerPoint • “Glob” programming style makes hard
Events Per 0.5 ms NB on RipvanwinkleNB on ViewNB on Model Mean ms Mean Mouseup Mean Mousemove Mean Mousedown 15 runs each split over 3 days
SM-MV Collaboration Shared Output portSingle Model, Multiple View SM-MV CollaborativeWeb Service XGSPSession Control
MM-MV Collaboration Shared Input portMultiple Model, Multiple View MM-MV Collaborative Web Service