September 21, 2005 Dynamic Typing in CORBA Middleware Jeff Parsons ISIS Vanderbilt University Nashville, TN.

Slides:



Advertisements
Similar presentations
15 th Annual Tcl/Tk Conference October 2008 Timothy L. Tomkinson Fellow Software Engineer Northrop Grumman Electronic Systems Remote Control of Test Equipment.
Advertisements

COM vs. CORBA.
CS7100 (Prasad)L16-7AG1 Attribute Grammars Attribute Grammar is a Framework for specifying semantics and enables Modular specification.
Mr. D. J. Patel, AITS, Rajkot 1 Operating Systems, by Dhananjay Dhamdhere1 Static and Dynamic Memory Allocation Memory allocation is an aspect of a more.
II. Middleware for Distributed Systems
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Chapter 5: Elementary Data Types Properties of types and objects –Data objects, variables and constants –Data types –Declarations –Type checking –Assignment.
Chapter Four Data Types Pratt 2 Data Objects A run-time grouping of one or more pieces of data in a virtual machine a container for data it can be –system.
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
CORBA Architecture Nitin Prabhu. Outline CORBA Object Model CORBA Architecture Static Invocation Dynamic Invocation CORBA Communication Model.
CORBA - Common Object Request Broker Architecture.
CS 330 Programming Languages 10 / 16 / 2008 Instructor: Michael Eckmann.
Netprog CORBA Intro1 CORBA Common Object Request Broker Architecture Based partially on Notes by D. Hollinger and Java Network Programming and Distributed.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
A First Java ORB Application 1  Object Request Broker (ORB)  This is the object manager in CORBA  Mechanisms for specifying interfaces  Interface Definition.
Run time vs. Compile time
Context-sensitive Analysis, II Ad-hoc syntax-directed translation, Symbol Tables, andTypes.
II. Middleware for Distributed Systems
1 Run time vs. Compile time The compiler must generate code to handle issues that arise at run time Representation of various data types Procedure linkage.
1 Type Type system for a programming language = –set of types AND – rules that specify how a typed program is allowed to behave Why? –to generate better.
Abstract Data Types and Encapsulation Concepts
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
CS784 (Prasad)L167AG1 Attribute Grammars Attribute Grammar is a Framework for specifying semantics and enables Modular specification.
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
CORBA Celsina Bignoli Enterprise Computing Corporation have similar computing environments: –mixed set of HW platforms –a mixed set.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
05 - Patterns Intro.CSC4071 Design Patterns Designing good and reusable OO software is hard. –Mix of specific + general –Impossible to get it right the.
Introduction to MDA (Model Driven Architecture) CYT.
CORBA Distributed Technology CASE STUDY Juan C. Navarro.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
Linking and Loading Linker collects procedures and links them together object modules into one executable program. Why isn't everything written as just.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Webcommerce Computer Networks Webcommerce by Linnea Reppa Douglas Martindale Lev Shalevich.
New features for CORBA 3.0 by Steve Vinoski Presented by Ajay Tandon.
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
Andrew S. Budarevsky Adaptive Application Data Management Overview.
CSE 425: Data Types I Data and Data Types Data may be more abstract than their representation –E.g., integer (unbounded) vs. 64-bit int (bounded) A language.
Dynamic Invocation Interface Alternative to using IDL stubs Object cannot distinguish between the two. How is DII different for the programmer?
CSC3315 (Spring 2008)1 CSC 3315 Subprograms Hamid Harroud School of Science and Engineering, Akhawayn University
COP4020 Programming Languages Names, Scopes, and Bindings Prof. Xin Yuan.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CS551 - Lecture 15 1 CS551 Object Oriented Middleware (IV) Dynamic Requests (Chap. 6 of EDO) Yugi Lee STB #555 (816)
Behavioral Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Object-Oriented Network Communication (OOMI) Dynamic Requests Emmerich – Chapter
CORBA (Common Object Request Broker Architechture) Aniket Prabhune Varun Saini Balaprasuna Chennupati Lally Singh.
Concepts of programming languages Chapter 5 Names, Bindings, and Scopes Lec. 12 Lecturer: Dr. Emad Nabil 1-1.
How to execute Program structure Variables name, keywords, binding, scope, lifetime Data types – type system – primitives, strings, arrays, hashes – pointers/references.
1 Structure of Compilers Lexical Analyzer (scanner) Modified Source Program Parser Tokens Semantic Analysis Syntactic Structure Optimizer Code Generator.
CS551 - Lecture 12 1 CS551 Object Oriented Middleware (IV) Dynamic Requests (Chap. 6 of EDO) Yugi Lee STB #555 (816)
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
4 th Workshop for TAO and CIAO July 16, 2004 MOF-Compliant Modeling of Middleware Jeff Parsons & Matt Emerson ISIS Vanderbilt University Nashville, TN.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Object Lifetime and Pointers
Context-Sensitive Analysis
Programming Languages and Compilers (CS 421)
Distribution and components
Inventory of Distributed Computing Concepts and Web services
Copyright © 2001 Qusay H. Mahmoud
Copyright 1999 B.Ramamurthy
Presentation transcript:

September 21, 2005 Dynamic Typing in CORBA Middleware Jeff Parsons ISIS Vanderbilt University Nashville, TN

Jeff Parsons Dynamic Typing in CORBA Middleware 2 Static vs. Dynamic Typing Static typing –Type rules in compiler. –New types at development time. –No new types at run time. Dynamic typing –Type rules also implicit in source code. –Enables new types at run time. Dynamic CORBA contains type rules for IDL, not target language.

Jeff Parsons Dynamic Typing in CORBA Middleware 3 Static Typing All operation names and signatures known at compile time. Advantages –Efficient marshaling. –Streamlined invocation. Disadvantages –Larger generated code footprint. –Inflexible. –Unacceptable in open- ended systems.

Jeff Parsons Dynamic Typing in CORBA Middleware 4 Dynamic Typing Discovery of operation names and parameter types at runtime. Advantages –Smaller generated code footprint. –Flexible & open-ended. Disadvantages –Larger ORB footprint. –Slower marshaling. –Pre- and post-invocation overhead.

Jeff Parsons Dynamic Typing in CORBA Middleware 5 Dynamic CORBA Features

Jeff Parsons Dynamic Typing in CORBA Middleware 6 Type Code union foo switch (char) { case ‘a’: long num; case ‘b’: string str; }; struct bar { string str_mem; foo u_mem; boolean b_mem; }; Structural representation Basic TCs in ORB New TCs from IDL compiler or type code factory

Jeff Parsons Dynamic Typing in CORBA Middleware 7 Any, NamedValue, NVList Any –Represents generic IDL value –Type code describes value –Value is opaque –Overloaded insertion & extraction operators Basic types in ORB New types from IDL compiler NamedValue –Represents operation argument –Any + name + direction NVList –Represents operation signature –List of NamedValues

Jeff Parsons Dynamic Typing in CORBA Middleware 8 Dynamic Invocation Interface (DII) Used when IDL compiler generated code is not available. A request object is created by a local call on the target object reference. Dynamic Skeleton Interface (DSI) is the server-side counterpart to DII.

Jeff Parsons Dynamic Typing in CORBA Middleware 9 Type Code Factory Problem: Creating a TypeCode at run-time. Forces: –Family of related TypeCodes. –Optional use by application. –Necessary to Interface Repository. –Avoid penalty to static application. Solution: Abstract Factory pattern and separate library.

Jeff Parsons Dynamic Typing in CORBA Middleware 10 The Interface Repository (IFR) Problem: Providing run-time IDL type information. Forces: –Need persistent storage. –Need OO database - query results are CORBA objects. –Must preserve nested (scoped) structure. Solution: –View entries as meta-objects. –Use the Memento pattern to capture their state. –Use tree of hash tables for underlying storage. –Create query results on demand.

Jeff Parsons Dynamic Typing in CORBA Middleware 11 Managing the Interface Repository Problem: Providing a systematic way to manage the repository’s contents. Forces: –Load from IDL files. –Reuse IDL compiler’s parsing and error checking. –IDL compiler is built monolithically. Solution: Modularize the IDL compiler. –Reusable front end. –Pluggable back end. –Top-level executable.

Jeff Parsons Dynamic Typing in CORBA Middleware 12 Dynamic CORBA - Putting It All Together

Jeff Parsons Dynamic Typing in CORBA Middleware 13 Evaluation of Dynamic CORBA Features Interdependency –Explicit –Implicit Hybrid Applications –Need not use dynamic typing throughout. –May use subset of features. Generality vs. Overhead –Tradeoff Portability –Widespread ORB vendor support.