June 1998 CHAIMS1 CLAM Why new language? –complexity: not all facilities of a common language –new paradigm: inhibiting traditional computational programming.

Slides:



Advertisements
Similar presentations
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
A Comprehensive Model for Arbitrary Result Extraction Neal Sample, Gio Wiederhold Stanford University Dorothea Beringer Hewlett-Packard.
June 1998 CHAIMS1 Interpreter instead of Compiler CHAIMS execution machine (interpreter and scheduler) user Interpreter: network CHAIMS-protocol complete.
15-May-15 RMI Remote Method Invocation. 2 “The network is the computer” Consider the following program organization: If the network is the computer, we.
ITEC113 Algorithms and Programming Techniques
Company LOGO Remote Method Invocation Georgi Cholakov, Emil Doychev, University of Plovdiv “Paisii.
Remote Object Invocation
CHAIMS: Compiling High-level Access Interfaces for Multisite Software Neal Sample Stanford University.
June 1999 EJB1 EJB and CHAIMS Dorothea Beringer Enterprise Java Beans and how to build a CHAIMS infrastructure using the EJB paradigm.
November 1999 CHAIMS1 Compiling High-level Access Interfaces for Multi-site Software Stanford University Objective: Investigate revolutionary approaches.
June 1998 CHAIMS1 Challenge 1: Composition of Processes... versus composition and integration of Data »data-warehouses »wrapping data available on web.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
June 1998 CHAIMS1 execution of a remote method invoke a method i e extract results setup / set attributes s s e i time decomposed (no benefit for one.
April 1999 CHAIMS1 Prof. Gio Wiederhold, Dr. Dorothea Beringer, Composing Autonomous Internet Services with CHAIMS CHAIMS Objective: Using and composing.
June 1998 CHAIMS1 Compiling High-level Access Interfaces for Multi-site Software Stanford University Objective: Investigate revolutionary approaches to.
January 1999 CHAIMS1 Repository add information to e b CORBA / Process - Providing Megamodules writes CPAM compliant megamodules from scratch d MEGA Modules.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
Megamodules domain expert writes megaprogram for composition CHAIMS automizes generation of client for distributed system megamodule provider provides.
January 1999 CHAIMS1 Objectives C H A I M S CLAM CPAM Scheduling ESTIMATE EXTRACT Provide high-level, composition-only language (or graphical front-end)
CS-341 Dick Steflik Introduction. C++ General purpose programming language A superset of C (except for minor details) provides new flexible ways for defining.
June 1999 CHAIMS1 Neal Sample Stanford University Objective: Investigate new approaches to large-scale software composition. Approach: Develop and validate.
January 1999 CHAIMS1 Megamodules - Definition from different providers: several services from different providers available for same tasks autonomous:
Communication in Distributed Systems –Part 2
March 1999 CHAIMS1 Now: Compiler Compiler: megaprogram in CHAIMS language client code in C, C++, Java, stub code executable client (CSRT) composer CHAIMS.
February 1999 CHAIMS1 Prof. Gio Wiederhold, Dr. Dorothea Beringer, several Ph.D. and master students Stanford University
January 1999 CHAIMS1 Primitives in CPAM Pre-invocation: SETUP: set up a connection to a megamodule SET-, GETPARAM: preset / get parameters in a megamodule.
January 1999 CHAIMS1. January 1999 CHAIMS2 CHAIMS: Compiling High-level Access Interfaces for Multi-site Software CHAIMS Stanford University Objective:
Chapter 7. 2 Objectives You should be able to describe: The string Class Character Manipulation Methods Exception Handling Input Data Validation Namespaces.
CHAIMS ARCHITECTURE D i s t r i b u t i o n L a y e r ( CORBA, DCE, DCOM, RMI …) Megaprogram C H A I M S - C o m p i l e r M e g a m o d u l e S e r v.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
C++ fundamentals.
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
1 Chapter Eight Exception Handling. 2 Objectives Learn about exceptions and the Exception class How to purposely generate a SystemException Learn about.
1 Java Programming II Java Network II (Distributed Objects in Java)
Beginning C++ Through Game Programming, Second Edition by Michael Dawson.
CSCI 6962: Server-side Design and Programming Web Services.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Computers and Scientific Thinking David Reed, Creighton University Functions and Libraries 1.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
C++ for Engineers and Scientists Second Edition Chapter 8 I/O File Streams and Data Files.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
RMI Remote Method Invocation Distributed Object-based System and RPC Together 2-Jun-16.
 Remote Method Invocation  A true distributed computing application interface for Java, written to provide easy access to objects existing on remote.
CPSC 252 Operator Overloading and Convert Constructors Page 1 Operator overloading We would like to assign an element to a vector or retrieve an element.
Chapter 9 Questions 1. What are the difference between constructors and member functions? 2. Design and implement a simple class as you want, with constructors.
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
ODS – Introduction to Web Services and BPEL Vakgroep Informatietechnologie Web Services & BPEL Design of Distributed Software.
WSDL : Web Service Definition Language Dr. Yuhong Yan NRC-IIT-Fredericton Internet logic.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
A FIRST BOOK OF C++ CHAPTER 14 THE STRING CLASS AND EXCEPTION HANDLING.
Distributed Computing in Life Science Research -Presenter: Yijian Yang
Organization of Programming Languages
Remote Method Invocation
Ch > 28.4.
Knowledge Byte In this section, you will learn about:
Programming Models for Distributed Application
Remote Procedure Call Hank Levy 1.
Remote Procedure Call Hank Levy 1.
CHAIMS January 1999 CHAIMS.
Object-Oriented Programming (OOP) Lecture No. 44
ENERGY 211 / CME 211 Lecture 8 October 8, 2008.
Remote Procedure Call Hank Levy 1.
Presentation transcript:

June 1998 CHAIMS1 CLAM Why new language? –complexity: not all facilities of a common language –new paradigm: inhibiting traditional computational programming –megaprogramming: higher level –focus on issues of composition, parallelism by asynchrony, and optimization Characteristics: –purely compositional: no arithmetic, no I/O –splitting up of call statement: avoiding complexity of traditional call, faking asynchrony, allowing partial extraction, allowing monitoring of progress ==> see CPAM –optimization of composition: special primitives for cost estimation, monitoring of progress

June 1998 CHAIMS2 Decomposing CALL Statements Copying Code sharing Parameterized computation Objects with overloaded method names Remote procedure calls to distributed modules Constrained (black box) access to encapsulated data progress in scale of computing Extract InvokeEstimateExamineSetup CHAIMS decomposes CALL functions CALL gained functionality

January 1999 CHAIMS3 Primitives in CLAM Pre-invocation: SETUP: set up a connection to a megamodule SET-, GETPARAM: preset / get parameters in a megamodule ESTIMATE: get cost estimation for optimization Invocation and result gathering: INVOKE: start a specific method EXAMINE: test status and progress of an invoked method EXTRACT: extract results from an invoked method TERMINATE: terminate a method invocation TERMINATEALL: terminate the connection to a megamodule Termination: Control: WHILE, IF Assignment: = Shortcuts: EXWDONE, INVEX

January 1999 CHAIMS4 Hiding Technical Details (1) CLAM provides high-level primitives that hide details. Protocol specific details are automatically generated. Example: mmh = SETUP(“megamodule”) Generated code for RMI: System.setSecurityManager(new RMISecurityManager()); ChaimsCompliantObject remote; try{remote=(ChaimsCompliantObject)Naming.lookup(url+mmname);} catch (Exception e){} try {remote.SETUP(clientID);} catch (Exception e){}

January 1999 CHAIMS5 Hiding Technical Details (2) Generated code for CORBA (Orbix, C++ client): nameMM_var _pObj0; try {_pObj0=nameMM::_bind(":mmname","site");} catch (...) {} CHAIMSMMID mmid = _pObj0; pObj0->SETUP(mmid); Generated code for CORBA (Omnibroker, C++ client): CORBA_ORB_var orb = CORBA_ORB_init(argc,argv); // first get reference from a file and then convert it to an object const char* refFile_pObj0 = "io.ref"; ifstream in_pObj0; in_pObj0.open(refFile_pObj0); // error handling omitted here char stre_pObj0[1000]; in_pObj0 >> stre_pObj0; CORBA_Object_var obj_pObj0 = orb -> string_to_object(stre_pObj0); assert(!CORBA_is_nil(obj_pObj0)); // bind now to megamodule io_var _pObj0 = io::_narrow(obj_pObj0); assert(!CORBA_is_nil(_pObj0)); CHAIMSMMID mmid = _pObj0; pObj0->SETUP(mmid);

January 1999 CHAIMS6 General I/O-Megamodule - Output Corresponding code in CLAM: …………... // Setups, Invocations, ih1 is the handle of a // method of megamodule examples (myadress = adress_result) = ih1.EXTRACTWHENDONE() ih2 = io.INVOKE("write", value = myadress, text ="Currently the adress is:") Every element of the data structure in parameter adress_result has besides the actual value also type information and descriptive name. Therefore, the general I/O-megamodule can display the parameter in a decent format without any further formatting information. Megaprogram General I/0 Megamodule Megamodule Example 2. Invoke method "write" with result to be displayed 1. Extract result to be displayed

January 1999 CHAIMS7 General I/O-Megamodule - Input Corresponding code in CLAM: ex = SETUP("Example") io = SETUP("io") // io is the general I/O megamodule availabe in CHAIMS (myadress = adress) = ex.GETPARAM() io.INVOKE("ask", value = adress,text = "Please enter adress:") ih1 = io.INVOKE("ask", value = myadress, text = "Please enter adress:") (myadress = result) = ih1.EXTRACTWHENDONE() ih2 = ex.INVOKE("method", adress = myadress) ….. Megaprogram General I/0 Megamodule Megamodule Example 2. Invoke method "ask" with default values and type information 3. Extract user-input 4. Invoke desired method with user-input 1. Get default type and value for desired parameter