Grid-based Collaboration in Interactive Data Language Applications Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University,

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

Programming Paradigms and languages
Android architecture overview
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Collaborative Impress Applications in Open Office (Star Office) Minjun Wang EECS Department, Syracuse University, USA Adviser Dr. Geoffrey.
Programming Language Semantics Java Threads and Locks Informal Introduction The Java Specification Language Chapter 17.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Collaborative Interactive Data Language (IDL) Minjun Wang EECS Department, Syracuse University, USA Adviser Dr. Geoffrey C. Fox
Implementing Remote Procedure Calls an introduction to the fundamentals of RPCs, made during the advent of the technology. what is an RPC? what different.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
TC2-Computer Literacy Mr. Sencer February 8, 2010.
Section 2.1 Identify hardware Describe processing components Compare and contrast input and output devices Compare and contrast storage devices Section.
DC Chp 1 Jeopardy Review Section 1Section 2Section 3Section 4Section
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Getting connected.  Java application calls the JDBC library.  JDBC loads a driver which talks to the database.  We can change database engines without.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
CS 0004 –Lecture 1 Wednesday, Jan 5 th, 2011 Roxana Gheorghiu.
DATA COMMUNICATION DONE BY: ALVIN SAMPATH CARLVIN SAMPATH.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Marcelo de Paiva Guimarães Bruno Barberi Gnecco Marcelo Knorich Zuffo
Ayman Abdel-Hamid Department of Computer Science Lamar University P.O. Box 10056, Beaumont, TX 77710, USA Kurt Maly, C.M. Overstreet,
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Design of a Collaborative System Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University, U.S.A
Operating Systems CS3502 Fall 2014 Dr. Jose M. Garrido
1 System Models. 2 Outline Introduction Architectural models Fundamental models Guideline.
1 Programming Fundamentals AITI-GP. 2 Introduction to Programming.
CS 3131 Introduction to Programming in Java Rich Maclin Computer Science Department.
C H A P T E R T E N Event-Driven Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
Introduction to Making Multimedia
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
Jian Gui WANG New Implementation of Agriculture Models APAN19---Jan New Implementations of Agriculture Models Using Mediate Architecture.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
ICalendar Compatible Collaborative Calendar- Server (CCS) Web Services Ahmet Fatih Mustacoglu Indiana University Computer Science Department Community.
Collaboration Entities on Deterministic Finite Automata Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University, U.S.A.
1 Title: Introduction to Computer Instructor: I LTAF M EHDI.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
A Demonstration of Collaborative Web Services and Peer-to-Peer Grids Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University,
(1) Introduction to Java GUIs Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Thin Client Collaboration Web Services Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University, U.S.A
1) PHP – Personal Home Page Scripting Language 2) JavaScript.
Ubiquitous Access for Collaborative Information System Using SVG July Sangmi Lee, Geoffrey Fox, Sunghoon Ko, Minjun Wang, Xiaohong Qui
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Chapter 1 WHAT IS A COMPUTER Faculty of ICT & Business Management Tel : BCOMP0101 Introduction to Information Technology.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
What Do Computers Do? A computer system is
Section 2.1 Section 2.2 Identify hardware
Introduction to Visual Basic 2008 Programming
Event-driven programming
University of Technology
Ch > 28.4.
Chapter 10 Development of Multimedia Project
Chapter 27 WWW and HTTP.
MWCN`03 Singapore 28 October 2003
MPJ: A Java-based Parallel Computing System
MATERI PL/SQL Procedures Functions Packages Database Triggers
Model, View, Controller design pattern
New Tools In Education Minjun Wang
Presentation transcript:

Grid-based Collaboration in Interactive Data Language Applications Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University, U.S.A

Outline Introduction Introduction Grid-based Collaboration Model Grid-based Collaboration Model Shared Event Model Shared Event Model Notifying Structure Notifying Structure Polling Structure Polling Structure Future Work Future Work

Introduction Interactive Data Language (IDL) is an array-oriented data analysis and visualization application, which is widely used in research, commerce, and education. Interactive Data Language (IDL) is an array-oriented data analysis and visualization application, which is widely used in research, commerce, and education. It is meaningful to make user IDL applications collaborative between computers over networks, using a common message broker as the underlying communication system. It is meaningful to make user IDL applications collaborative between computers over networks, using a common message broker as the underlying communication system. In order to achieve the global collaboration, we have brought together in the research a Grid-based Collaboration paradigm, a Shared Event model, different implementing structures, methodologies and technologies. In order to achieve the global collaboration, we have brought together in the research a Grid-based Collaboration paradigm, a Shared Event model, different implementing structures, methodologies and technologies. One of the collaborative applications is a type of Master client, the other is a type of participant.One of the collaborative applications is a type of Master client, the other is a type of participant. The Master client captures events and sends the event messages to participants during its presentation; the participants then render and share the presentation screens synchronously with the master.The Master client captures events and sends the event messages to participants during its presentation; the participants then render and share the presentation screens synchronously with the master. This collaboration can be implemented on a Notifying Structure or a Polling Structure.This collaboration can be implemented on a Notifying Structure or a Polling Structure. Narada Message Broker as the underlying message communication system Narada Message Broker as the underlying message communication system It transmits event messages between the collaborative master and participant clientsIt transmits event messages between the collaborative master and participant clients

Grid-based Collaboration Model In this model, there are two categories of computing – Grid computing and Peer-to-Peer computing. In this model, there are two categories of computing – Grid computing and Peer-to-Peer computing. Grid computing is the basis; it largely comprises stable, formal, and efficient high-functionality services like Web Services, Grid Services, Common Message Brokers, etc., which are deployed as Grids on structured, well-organized and powerful supercomputers. They are in the core of the model. Grid computing is the basis; it largely comprises stable, formal, and efficient high-functionality services like Web Services, Grid Services, Common Message Brokers, etc., which are deployed as Grids on structured, well-organized and powerful supercomputers. They are in the core of the model. Peer-to-Peer computing offers user-friendly, convenient, intuitive and easy accessible applications and services such as the popular commodity software used daily and everywhere. They are installed on a variety of personal devices. They are at the edge of the model. Peer-to-Peer computing offers user-friendly, convenient, intuitive and easy accessible applications and services such as the popular commodity software used daily and everywhere. They are installed on a variety of personal devices. They are at the edge of the model. In our collaborative IDL applications, we realize the Peer-to-Peer Grids computing idea. We deploy the Narada Message Broker as a Grid and use it for message communication between the Master and Participants of the applications; and we deploy the Master and Participants as Peers at the edge and make them collaborate on events. In our collaborative IDL applications, we realize the Peer-to-Peer Grids computing idea. We deploy the Narada Message Broker as a Grid and use it for message communication between the Master and Participants of the applications; and we deploy the Master and Participants as Peers at the edge and make them collaborate on events.

Grid-based Collaboration Model A grid-based collaboration model

Shared Event Model In this model, small text event messages are transmitted via the Grids of common message brokers and used to coordinate the operations between the peers so that they can cooperate concurrently and share the output screen simultaneously. In this model, small text event messages are transmitted via the Grids of common message brokers and used to coordinate the operations between the peers so that they can cooperate concurrently and share the output screen simultaneously. The Master client captures events and sends the event messages to participants during its presentation; the participants then render and share the presentation screens synchronously with the master. The Master client captures events and sends the event messages to participants during its presentation; the participants then render and share the presentation screens synchronously with the master. It is fast and efficient It is fast and efficient small text string messages greatly reduce the network traffic.small text string messages greatly reduce the network traffic. it makes full use of the computing power of both sides.it makes full use of the computing power of both sides.

Notifying Structure The Master client is written in IDL programs. It consists of a GUI building and managing part, and an event handling part. The Master client is written in IDL programs. It consists of a GUI building and managing part, and an event handling part. It captures an event and gets the event message in an event handler whenever a user clicks a button in the GUI.It captures an event and gets the event message in an event handler whenever a user clicks a button in the GUI. It makes use of the IDL-Java Bridge, calls methods in a Java program to connect to NaradaBrokering, and sends the event message over there for broadcasting to participants.It makes use of the IDL-Java Bridge, calls methods in a Java program to connect to NaradaBrokering, and sends the event message over there for broadcasting to participants.

The mechanism of master client

Notifying Structure (cont.) The participant is written in Java programs. The participant is written in Java programs. It connects to NaradaBrokering and receives event messages from it.It connects to NaradaBrokering and receives event messages from it. The Java program controls the rendering process according to the event messages it receives.The Java program controls the rendering process according to the event messages it receives. It makes use of the Callable IDL technology and JNI technology. It makes use of the Callable IDL technology and JNI technology. It calls the IDL routines (procedures or functions) for the rendering. It calls the IDL routines (procedures or functions) for the rendering. In order to do that, it has to call the IDL routines through a C program, in other words, that C program calls IDL routines directly through Callable IDL technology. In order to do that, it has to call the IDL routines through a C program, in other words, that C program calls IDL routines directly through Callable IDL technology. A shared library (libCallableIDL.so) is generated from the C program, and the Java program calls the native functions in the shared library through JNI. A shared library (libCallableIDL.so) is generated from the C program, and the Java program calls the native functions in the shared library through JNI.

Generating of a shared library

The mechanism of participant client

Polling Structure Both the master and participant clients make use of the IDL-Java Bridge to connect to NaradaBrokering and communicate with it. The methods used in the Bridge belong to IDL. Both the master and participant clients make use of the IDL-Java Bridge to connect to NaradaBrokering and communicate with it. The methods used in the Bridge belong to IDL. The mechanism of the Master is the same as that of the Notifying Structure. The mechanism of the Master is the same as that of the Notifying Structure. In a Java class, which is an interface to NaradaBrokering, and which the participating clients codes instantiate and make use of, we add public global variables for event change flag and event message, and make a notification related method onMessage() update them whenever the Broker broadcasts event messages to the clients. The update includes setting event flag and storing event message in the variables. In a Java class, which is an interface to NaradaBrokering, and which the participating clients codes instantiate and make use of, we add public global variables for event change flag and event message, and make a notification related method onMessage() update them whenever the Broker broadcasts event messages to the clients. The update includes setting event flag and storing event message in the variables. The participating client code now has an instance of the Java class; it is constantly testing, or Polling, the instance variable – event flag. If it finds the flag is set, it resets the flag and retrieves the event message from the event message instance variable. It then follows the instructions of the message to execute different parts of the IDL programs to do the rendering. The participating client code now has an instance of the Java class; it is constantly testing, or Polling, the instance variable – event flag. If it finds the flag is set, it resets the flag and retrieves the event message from the event message instance variable. It then follows the instructions of the message to execute different parts of the IDL programs to do the rendering.

The mechanism of participant client in polling structure

Future Work  We are working on the ReviewPlus package to make it collaborative between computers using the polling structure. It is a big package. We plan to finish the implementation of the collaboration to make the Master and Participant clients available in real life and daily use.  We have worked on the project using 2D images and graphics; we are interested in exploiting 3D IDL rendering applications and realizing Grid- based collaboration in them.  We are also interested in finding new and better structures, methodologies and technologies for IDL applications to be collaborative over networks, platforms and environments.