What is COM/DCOM. Distributed Object Systems 4 COM/DCOM. COM vs Corba 1. COM vs. Corba 2. Multiple inheritance vs multiple interfaces

Size: px
Start display at page:

Download "What is COM/DCOM. Distributed Object Systems 4 COM/DCOM. COM vs Corba 1. COM vs. Corba 2. Multiple inheritance vs multiple interfaces"

Transcription

1 Distributed Object Systems 4 COM/DCOM Piet van Oostrum Sept 18, 2008 What is COM/DCOM Component Object Model Components (distributed objects) à la Microsoft Mainly on Windows platforms Is used in large parts of Windows itself COM is local version, DCOM is distributed version Microsoft wants it to be replaced by.net Originally developed to connect MS Word and Excel OLE: Object Linking and Embedding Later: generalisation: basic object communication mechanism could be used for other things: COM Mozilla s XPCOM and UNO (OpenOffice.org) are similar Piet van Oostrum 1 COM vs Corba 1 Corba is platform independent COM is Microsoft-only Corba is multi-vendor COM comes with Windows. Corba must be installed separately Corba specifies how remote objects must be called (source code) COM defines a binary standard (implementation) Corba and COM have a similar structure (Services, etc.) COM vs. Corba 2 Interfaces COM objects can have more than one interface Corba objects have a single interface (Corba Component Model supports multiple interfaces) Identity Corba objects are identified by an object reference COM objects have one or more interface pointers Inheritance COM and Corba have interface inheritance COM has single inheritance Corba has multiple inheritance Piet van Oostrum 2 Piet van Oostrum 3 Multiple inheritance vs multiple interfaces Suppose you have an interface for printing and an interface for storage: Print interface: set_page(pagesize) build_pages(page_numbers) printit() Storage interface: open_container(filename) read_object(obj_id) write_object(obj_id) Defining an object that supports both interfaces: In COM: the object implements both interfaces In Corba: inherit from both: interface MyClass: Print, Storage COM What s in it? COM is a mechanism to call objects (local or remote), compare Corba s ORB Many services are defined that use COM (big parts of Windows O.S.) OLE Documents: Linking Embedding In-place activation (OLE) Automation (how to command an application from another application) Events... Piet van Oostrum 4 Piet van Oostrum 5 slides4.pdf September 18,

2 Interfaces The interfaces to an object must be implemented in a specific binary way. This is derived from the way Visual C++ implements objects and methods. For COM objects this implementation must be used in all programming languages The interface can be described with (Microsoft) IDL Visual C++ object var1 var2 method table method code Object have a pointer to a (an array of method pointers) This is followed by the instance variables Often a pointer to the object is passed around (object*) Piet van Oostrum 6 Piet van Oostrum 7 COM Interface COM Interface - Subclasses method code class A { (){; (){; (){; (){; class B extends A { m5(){; m6(){; method table A COM interface is implemented as a pointer to a pointer to a list of function addresses (interface pointer) A COM object must implement at least one interface A COM object may implement more than one interface COM objects written in VC++ can use a pointer to themselves (this) as interface pointer A The for a subinterface is just an extension (more methods at the end) of the superinterface so the subinterface pointer can be used where the superinterface is needed B m5 m6 Piet van Oostrum 8 Piet van Oostrum 9 Interface pointer Notation client uses interface pointer: Interface A Object Interface B Client Object In the case of a remote object, the pointer refers to a proxy object. IUnknown Every interface must have the following methods in the first 3 slots: QueryInterface (IID) For finding other interfaces AddRef () For counting how many references there are Release () For releasing a reference These three methods together form the interface IUnknown (Most people use names starting with I for interfaces) There is no concept of object pointer Piet van Oostrum 10 Piet van Oostrum 11 slides4.pdf September 18,

3 Identification A method from an interface is not identified by name, but by its position in the method table 0=QueryInterface 1=AddRef 2=Release, etc. An (abstract) interface is identified by a 128-bit (usually random-like) number: GUID (Globally Unique Identifier) or UUID (Universally Unique Identifier) UUID is a DCE term. There are utilities to generate GUID s IUnknown QueryInterface on an object with a UUID for an interface as parameter returns an interface pointer for that interface (and the same object) if it exists. QueryInterface could return any interface pointer that has the proper slots (e.g. a subinterface) AddRef and Release together form a simple garbage collection mechanism (refcount): When the refcount for all interfaces of an object together reaches 0, the object can delete itself These three methods can be used with any interface Piet van Oostrum 12 Piet van Oostrum 13 Object identity There are no object pointers Any interface pointer for an object can be used to identify the object Two different interface pointers could identify the same object Object identity: A QueryInterface call for IUnknown for the same object should always give the same interface pointer regardless of the interface upon which it is called. MIDL Microsofts IDL is derived from OSF DCE s IDL. MIDL is similar to Corba IDL but uses a different syntax It also specifies the UUID s Interfaces can be grouped in classes and classes in libraries An interface can be used in many classes Classes are used to create objects Classes and libraries are also identified by GUID s Class GUID s (CLSID) are stored in the Windows registry with information how to run the code that implements the objects Piet van Oostrum 14 Piet van Oostrum 15 Example IDL [object, uuid(3cfdb283-ccc5-11d0-ba0b-00a0c90df8bc) ] interface IStat: IUnknown { import "unknwn.idl"; init(); additem([in] double item); getavg([out] double *avg); getnum([out] long *num); getall([out] double *avg, [out] long *num); ; Conventionally a return code signifies if the operation succeeded or not (there are no exceptions). Method results are returned through out parameters. MIDL types boolean 8 bits byte 8 bits. char 8 bits. double 64-bit floating point number. float 32-bit floating point number. hyper 64-bit integer. int 32-bit integer. long 32-bit integer. short 16-bit integer. small 8-bit integer. wchar_t 16-bit wide characters. struct, union, array (fixed or dynamic), enum Piet van Oostrum 16 Piet van Oostrum 17 slides4.pdf September 18,

4 Examples of structs and arrays Use of dynamic arrays #define MAX_INDEX 10 typedef char ATYPE[MAX_INDEX]; typedef short BTYPE[]; // Equivalent to [*]; typedef long CTYPE[*][10]; // [][10] typedef float DTYPE[0..10]; // Equivalent to [11] typedef float ETYPE[0..(MAX_INDEX)]; typedef struct { unsigned short size; unsigned short length; [size_is(size), length_is(length)] char string[*]; counted_string; MyFunction( [in, out] short * psize, [in, out, string, size_is(*psize)] char a[0..*] ); psize is the size of the array, given as separate parameter. IDL tells that this parameter really is the size of the array (needed for marshalling the proper number of elements) size_is is the number of elements reserved, length_is is the actual number of elements present if different Piet van Oostrum 18 Piet van Oostrum 19 Unions Encapsulated union (with a discriminator) typedef union S1_TYPE switch (long l1) U1_TYPE { case 1024: float f1; case 2048: double d2; ; S1_TYPE will be a struct in C/C++ with members the long l1 and the union with name U1_TYPE. There are also other notations. Where are objects running? In a DLL: The DLL is loaded if necessary (first occurrence) and the client gets the real pointer to the object interface (in C++ could be the object pointer). Runs in the same process as the client This is called inproc server Method call is as fast as normal In another process on the same machine The process is started if necessary In the client process a proxy object is created with the same interface The proxy object uses RPC mechanisms to the real object This is called local server Piet van Oostrum 20 Piet van Oostrum 21 Where are objects running? In another machine Is used similar to local server RPC is over the network In the registry there is information about inproc or local server Also contains the location of the DLL and/or.exe file The client can specify inproc or local server For DCOM if the object is not found on the local machine, COM asks other machines if the object is there Remote objects must be separately registered in the registry How to create (or get) objects Use the class object The COM runtime system (Service Control Manager) can find the class object, given a CLSID, from the registry It will also start a server or load a DLL if necessary The Class object should be a singleton (only one instance) It should provide methods to create objects or find existing ones. The function CoGetClassObject gets the class object, given a CLSID, interface ID and inproc/local/remote It returns an interface pointer for the class object Piet van Oostrum 22 Piet van Oostrum 23 slides4.pdf September 18,

5 Integrated method Use CoCreateInstance This creates a class object and calls its CreateInstance method to get an object (instance) Must implement interface IFactory There is also an interface IFactory2 which supports licensing CoCreateInstance parameters: class id an Outer pointer (see later) inproc/local/remote interface id (GUID) for the object Client code double value; CoInitialize(NULL); // initialize COM CoCreateInstance(CLSID_CStat, NULL, CLSCTX_SERVER, IID_IStat, (void**) &pistat); pistat->additem(value); pistat->queryinterface(iid_istat2, (void**) &pistat2); pistat->release(); pistat2->count(value); pistat2->release(); CoUninitialize(); Piet van Oostrum 24 Piet van Oostrum 25 Client side Client COM library COM runtime system (6) (1) (2) [3] [1] [2] [4] [5] (4) Server 1: CocreateInstance, 2: server started, 3: class object created, 4: IFactory interface called, 5: object created, 6: object interface pointer returned, [1],[2],[3]: calls to pistat, [4],[5]: calls to pistat2 class factory (3) (5) object COM library Implementation Every object must implement the IUnknown methods: #define STDMETHODIMP stdcall STDMETHODIMP Stat::QueryInterface(REFIID riid, void** ppv) { if (riid == IID_IUnknown riid == IID_IStat) *ppv = (IStat*) this; // if more interfaces are supported // else if (riid ==... else { *ppv = NULL; return E_NOINTERFACE; AddRef(); return S_OK; In Visual C++ there are different function calling mechanisms. For COM objects stdcall must be used. Piet van Oostrum 26 Piet van Oostrum 27 RefCount Class Factory int refcnt; STDMETHODIMP Stat::AddRef() { refcnt++; STDMETHODIMP Stat::Release() { refcnt--; if (refcnt == 0) {... STDMETHODIMP CClassFactory::CreateInstance(LPUNKNOWN p, REFIID riid, void** ppv) { IStat* punk = (IStat*) new Stat(); hr = punk->queryinterface(riid, ppv); return hr; The CreateInstance method creates a new Stat object and returns its interface pointer for the interface iid. QueyInterface will do the required AddRef. Piet van Oostrum 28 Piet van Oostrum 29 slides4.pdf September 18,

6 Our own Methods Server code STDMETHODIMP Stat::addItem (double d) { sum += d; n++; return S_OK; STDMETHODIMP Stat::getAvg (double* d) { *d = sum/n; // should check n!=0 return S_OK; void main() {... hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); CClassFactory* fact = new CClassFactory; hr = CoRegisterClassObject(CLSID_CStat, fact, CLSCTX_SERVER, REGCLS_MULTIPLEUSE, &dwregister);... register the class object Piet van Oostrum 30 Piet van Oostrum 31 Finally COM is optimized for local calls (especially inproc). Is a very popular mechanism on the MS Windows operating system DCOM (distributed version) has never become popular Is now gradually superseded by.net Mainly used in C, C++ and Visual Basic It has a lot of complicated issues Java support is minimal No multi-platform support Piet van Oostrum 32 slides4.pdf September 18,

COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES DCOM - COM+ Peter R. Egli INDIGOO.COM. indigoo.com. 1/20 Rev. 1.

COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES DCOM - COM+ Peter R. Egli INDIGOO.COM. indigoo.com. 1/20 Rev. 1. COM, DCOM - COM+ DCOM, COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES Peter R. Egli INDIGOO.COM 1/20 Contents 1. Evolution of COM 2. COM, DCOM, ActiveX, OLE, COM+ 3. Structure of

More information

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware Middleware 1 Middleware Lehrstuhl für Informatik 4 Middleware: Realisation of distributed accesses by suitable software infrastructure Hiding the complexity of the distributed system from the programmer

More information

How To Use A Com In A Microsoft Com 2.5 (Dsi) (Dsi) (For Microsoft) (Com) (Sib) (Operations) (Orchestra) (Ahem) (I

How To Use A Com In A Microsoft Com 2.5 (Dsi) (Dsi) (For Microsoft) (Com) (Sib) (Operations) (Orchestra) (Ahem) (I Distributed Object Systems 8 DCOM 2 COM (and some Corba) Dynamic Invocation Containment/Aggregation/Delegation Automation Monikers Piet van Oostrum Oct 7, 2008 Piet van Oostrum 1 Dynamic Invocation in

More information

Infrastructure that supports (distributed) componentbased application development

Infrastructure that supports (distributed) componentbased application development Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication

More information

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15 The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR Chapter 15 Microsoft is continually reengineering its existing application and platform base. Started with VBX, continued with OLE, ODBC, ActiveX,

More information

DCOM and CORBA Side by Side, Step by Step, and Layer by Layer

DCOM and CORBA Side by Side, Step by Step, and Layer by Layer DCOM and CORBA Side by Side, Step by Step, and Layer by Layer P. Emerald Chung Yennun Huang Shalini Yajnik Bell Laboratories, Lucent Technologies Murray Hill, New Jersey Deron Liang Joanne C. Shih Chung-Yih

More information

Middleware Lou Somers

Middleware Lou Somers Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,

More information

MS ACCESS DATABASE DATA TYPES

MS ACCESS DATABASE DATA TYPES MS ACCESS DATABASE DATA TYPES Data Type Use For Size Text Memo Number Text or combinations of text and numbers, such as addresses. Also numbers that do not require calculations, such as phone numbers,

More information

Java and ActiveX Projects

Java and ActiveX Projects The Open Group Research Institute Java and ActiveX Projects G.N.Madhusudan Principal Research Scientist The OpenGroup Research Institute g.madhusudan@opengroup.org Web and Security - Outline of Projects

More information

Corba. Corba services. The (very) global picture. Corba. Distributed Object Systems 3 CORBA/IDL. Corba. Features. Services

Corba. Corba services. The (very) global picture. Corba. Distributed Object Systems 3 CORBA/IDL. Corba. Features. Services Distributed Systems 3 CORBA/ Piet van Oostrum Sep 11, 2008 Corba Common Request Broker Architecture Middleware for communicating objects Context Management Group (OMG) Consortium of computer companies

More information

Introduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized

More information

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur Module 17 Client-Server Software Development Lesson 42 CORBA and COM/DCOM Specific Instructional Objectives At the end of this lesson the student would be able to: Explain what Common Object Request Broker

More information

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2 SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1

More information

Distributed Network Management Using SNMP, Java, WWW and CORBA

Distributed Network Management Using SNMP, Java, WWW and CORBA Distributed Network Management Using SNMP, Java, WWW and CORBA André Marcheto Augusto Hack Augusto Pacheco Augusto Verzbickas ADMINISTRATION AND MANAGEMENT OF COMPUTER NETWORKS - INE5619 Federal University

More information

The programming language C. sws1 1

The programming language C. sws1 1 The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan

More information

Interface Definition Language

Interface Definition Language Interface Definition Language A. David McKinnon Washington State University An Interface Definition Language (IDL) is a language that is used to define the interface between a client and server process

More information

Agilent PNA Microwave Network Analyzers

Agilent PNA Microwave Network Analyzers Agilent PNA Microwave Network Analyzers Application Note 1408-13 Introduction to Application Development Table of Contents Introduction...3 How to Use this Document...3 Basic Administration...4 Registering

More information

CS 378 Big Data Programming. Lecture 9 Complex Writable Types

CS 378 Big Data Programming. Lecture 9 Complex Writable Types CS 378 Big Data Programming Lecture 9 Complex Writable Types Review Assignment 4 - CustomWritable QuesIons/issues? Hadoop Provided Writables We ve used several Hadoop Writable classes Text LongWritable

More information

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns

More information

Crash Course in Java

Crash Course in Java Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is

More information

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java

More information

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young 3F6 - Software Engineering and Design Handout 10 Distributed Systems I With Markup Steve Young Contents 1. Distributed systems 2. Client-server architecture 3. CORBA 4. Interface Definition Language (IDL)

More information

C++FA 5.1 PRACTICE MID-TERM EXAM

C++FA 5.1 PRACTICE MID-TERM EXAM C++FA 5.1 PRACTICE MID-TERM EXAM This practicemid-term exam covers sections C++FA 1.1 through C++FA 1.4 of C++ with Financial Applications by Ben Van Vliet, available at www.benvanvliet.net. 1.) A pointer

More information

Introduction to SQL for Data Scientists

Introduction to SQL for Data Scientists Introduction to SQL for Data Scientists Ben O. Smith College of Business Administration University of Nebraska at Omaha Learning Objectives By the end of this document you will learn: 1. How to perform

More information

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security & BSc. (Hons.) Software Engineering Cohort: BIS/05/FT BCNS/05/FT BSE/05/FT Examinations for 2005-2006 / Semester

More information

Molecular Dynamics Simulations with Applications in Soft Matter Handout 7 Memory Diagram of a Struct

Molecular Dynamics Simulations with Applications in Soft Matter Handout 7 Memory Diagram of a Struct Dr. Martin O. Steinhauser University of Basel Graduate Lecture Spring Semester 2014 Molecular Dynamics Simulations with Applications in Soft Matter Handout 7 Memory Diagram of a Struct Friday, 7 th March

More information

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis Middleware and Distributed Systems Introduction Dr. Martin v. Löwis 14 3. Software Engineering What is Middleware? Bauer et al. Software Engineering, Report on a conference sponsored by the NATO SCIENCE

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

Introduction to Distributed Computing using CORBA

Introduction to Distributed Computing using CORBA Introduction to Distributed Computing using CORBA Rushikesh K. Joshi Dept of Computer Science & Engineering Indian Institute of Technology, Bombay Powai, Mumbai - 400 076, India. Email: rkj@cse.iitb.ac.in

More information

Pemrograman Dasar. Basic Elements Of Java

Pemrograman Dasar. Basic Elements Of Java Pemrograman Dasar Basic Elements Of Java Compiling and Running a Java Application 2 Portable Java Application 3 Java Platform Platform: hardware or software environment in which a program runs. Oracle

More information

Implementation Aspects of OO-Languages

Implementation Aspects of OO-Languages 1 Implementation Aspects of OO-Languages Allocation of space for data members: The space for data members is laid out the same way it is done for structures in C or other languages. Specifically: The data

More information

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T) Unit- I Introduction to c Language: C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating

More information

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive

More information

El Dorado Union High School District Educational Services

El Dorado Union High School District Educational Services El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.

More information

An Overview of Java. overview-1

An Overview of Java. overview-1 An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2

More information

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,

More information

Project 1: Implement a simple hosts framework using UNIX TCP Sockets to demonstrate the concept of Mobile Agents

Project 1: Implement a simple hosts framework using UNIX TCP Sockets to demonstrate the concept of Mobile Agents Project 1: Implement a simple hosts framework using UNIX TCP Sockets to demonstrate the concept of Mobile Agents Due date: October 15 (Monday), 2007 Requirements This exercise should be done individually.

More information

L7_L10. MongoDB. Big Data and Analytics by Seema Acharya and Subhashini Chellappan Copyright 2015, WILEY INDIA PVT. LTD.

L7_L10. MongoDB. Big Data and Analytics by Seema Acharya and Subhashini Chellappan Copyright 2015, WILEY INDIA PVT. LTD. L7_L10 MongoDB Agenda What is MongoDB? Why MongoDB? Using JSON Creating or Generating a Unique Key Support for Dynamic Queries Storing Binary Data Replication Sharding Terms used in RDBMS and MongoDB Data

More information

[MS-RDPESC]: Remote Desktop Protocol: Smart Card Virtual Channel Extension

[MS-RDPESC]: Remote Desktop Protocol: Smart Card Virtual Channel Extension [MS-RDPESC]: Remote Desktop Protocol: Smart Card Virtual Channel Extension Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

CORBA Programming with TAOX11. The C++11 CORBA Implementation

CORBA Programming with TAOX11. The C++11 CORBA Implementation CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy

More information

Habanero Extreme Scale Software Research Project

Habanero Extreme Scale Software Research Project Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead

More information

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies Szolgáltatásorientált rendszerintegráció Comparison of component technologies Simon Balázs, BME IIT Outline Definitions Component technologies RPC, RMI, CORBA, COM+,.NET, Java, OSGi, EJB, SOAP web services,

More information

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY. 6.828 Operating System Engineering: Fall 2005

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY. 6.828 Operating System Engineering: Fall 2005 Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2005 Quiz II Solutions Average 84, median 83, standard deviation

More information

CAPIX Job Scheduler User Guide

CAPIX Job Scheduler User Guide CAPIX Job Scheduler User Guide Version 1.1 December 2009 Table of Contents Table of Contents... 2 Introduction... 3 CJS Installation... 5 Writing CJS VBA Functions... 7 CJS.EXE Command Line Parameters...

More information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February

More information

Super SQL Server Systems Errata List (Last Updated 18 November 2006) Table of Contents:

Super SQL Server Systems Errata List (Last Updated 18 November 2006) Table of Contents: Super SQL Server Systems Errata List (Last Updated 18 November 2006) Table of Contents: Microsoft Visual C++ - WIN32 DLL xp_hellovcdll should read Microsoft Visual C++ - WIN32 DLL Microsoft Visual C++

More information

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) The JDK command to compile a class in the file Test.java is A) java Test.java B) java

More information

Introduction to Java

Introduction to Java Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high

More information

Interface Definition Language

Interface Definition Language Interface Definition Language by David G. Messerschmitt Supplementary section for Understanding Networked Applications: A First Course, Morgan Kaufmann, 1999. Copyright notice: Permission is granted to

More information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES TECHNOLOGY COURSE MODULE (C, C++, DS) KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

More information

Semantic Analysis: Types and Type Checking

Semantic Analysis: Types and Type Checking Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

Web Services. Distributed Object Systems 11. Web Services, SOAP and NET. Web Applications. Web Services. Web services vs Distributed Objects

Web Services. Distributed Object Systems 11. Web Services, SOAP and NET. Web Applications. Web Services. Web services vs Distributed Objects Distributed Object Systems 11 Web Services, SOAP and NET Piet van Oostrum Web Services Some Definitions A Web Service is a software system designed to support interoperable machine-to-machine interaction

More information

Java programming for C/C++ developers

Java programming for C/C++ developers Skill Level: Introductory Scott Stricker (sstricke@us.ibm.com) Developer IBM 28 May 2002 This tutorial uses working code examples to introduce the Java language to C and C++ programmers. Section 1. Getting

More information

How To Write A Program In Java (Programming) On A Microsoft Macbook Or Ipad (For Pc) Or Ipa (For Mac) (For Microsoft) (Programmer) (Or Mac) Or Macbook (For

How To Write A Program In Java (Programming) On A Microsoft Macbook Or Ipad (For Pc) Or Ipa (For Mac) (For Microsoft) (Programmer) (Or Mac) Or Macbook (For Projet Java Responsables: Ocan Sankur, Guillaume Scerri (LSV, ENS Cachan) Objectives - Apprendre à programmer en Java - Travailler à plusieurs sur un gros projet qui a plusieurs aspects: graphisme, interface

More information

MS Access Lab 2. Topic: Tables

MS Access Lab 2. Topic: Tables MS Access Lab 2 Topic: Tables Summary Introduction: Tables, Start to build a new database Creating Tables: Datasheet View, Design View Working with Data: Sorting, Filtering Help on Tables Introduction

More information

[MS-EVEN]: EventLog Remoting Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

[MS-EVEN]: EventLog Remoting Protocol. Intellectual Property Rights Notice for Open Specifications Documentation [MS-EVEN]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages,

More information

Introduction to Data Structures

Introduction to Data Structures Introduction to Data Structures Albert Gural October 28, 2011 1 Introduction When trying to convert from an algorithm to the actual code, one important aspect to consider is how to store and manipulate

More information

Introduction. Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications

Introduction. Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications Introduction Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications 1 Computer Software Architecture Application macros and scripting - AML,

More information

Application Note. Introduction AN2471/D 3/2003. PC Master Software Communication Protocol Specification

Application Note. Introduction AN2471/D 3/2003. PC Master Software Communication Protocol Specification Application Note 3/2003 PC Master Software Communication Protocol Specification By Pavel Kania and Michal Hanak S 3 L Applications Engineerings MCSL Roznov pod Radhostem Introduction The purpose of this

More information

4D Plugin SDK v11. Another minor change, real values on 10 bytes is no longer supported.

4D Plugin SDK v11. Another minor change, real values on 10 bytes is no longer supported. 4D Plugin SDK v11 4D Plugin API 4D Plugin API v11 is a major upgrade of 4D Plugin API. The two major modifications are that it is now fully Unicode compliant, and that it gives support to the new 4D pictures.

More information

Comparative Study of C, C++, C# and Java Programming Languages

Comparative Study of C, C++, C# and Java Programming Languages Hao Chen Comparative Study of C, C++, C# and Java Programming Languages Information Technology 2010 VAASAN AMMATTIKORKEAKOULU UNIVERSITY OF APPLIED SCIENCES Degree Program of Information Technology ABSTRACT

More information

Programming Languages CIS 443

Programming Languages CIS 443 Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception

More information

Visual Basic Programming. An Introduction

Visual Basic Programming. An Introduction Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides

More information

Java Interview Questions and Answers

Java Interview Questions and Answers 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java

More information

Programming languages C

Programming languages C INTERNATIONAL STANDARD ISO/IEC 9899:1999 TECHNICAL CORRIGENDUM 2 Published 2004-11-15 INTERNATIONAL ORGANIZATION FOR STANDARDIZATION МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ ORGANISATION INTERNATIONALE

More information

Towards practical reactive security audit using extended static checkers 1

Towards practical reactive security audit using extended static checkers 1 Towards practical reactive security audit using extended static checkers 1 Julien Vanegue 1 Shuvendu K. Lahiri 2 1 Bloomberg LP, New York 2 Microsoft Research, Redmond May 20, 2013 1 The work was conducted

More information

COM Connect User's Guide. VisualWorks 7.8 P46-0123-07 SIMPLIFICA TION THROUGH I NNOV A TION

COM Connect User's Guide. VisualWorks 7.8 P46-0123-07 SIMPLIFICA TION THROUGH I NNOV A TION COM Connect User's Guide VisualWorks 7.8 P46-0123-07 SIMPLIFICA TION THROUGH I NNOV A TION Copyright 1997 2011 by Cincom Systems, Inc. All rights reserved. This product contains copyrighted third-party

More information

ECS 165B: Database System Implementa6on Lecture 2

ECS 165B: Database System Implementa6on Lecture 2 ECS 165B: Database System Implementa6on Lecture 2 UC Davis, Spring 2011 Por6ons of slides based on earlier ones by Raghu Ramakrishnan, Johannes Gehrke, Jennifer Widom, Bertram Ludaescher, and Michael Gertz.

More information

An Incomplete C++ Primer. University of Wyoming MA 5310

An Incomplete C++ Primer. University of Wyoming MA 5310 An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages

More information

[MS-SSP]: Intellectual Property Rights Notice for Open Specifications Documentation

[MS-SSP]: Intellectual Property Rights Notice for Open Specifications Documentation [MS-SSP]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages,

More information

Facebook Twitter YouTube Google Plus Website Email

Facebook Twitter YouTube Google Plus Website Email PHP MySQL COURSE WITH OOP COURSE COVERS: PHP MySQL OBJECT ORIENTED PROGRAMMING WITH PHP SYLLABUS PHP 1. Writing PHP scripts- Writing PHP scripts, learn about PHP code structure, how to write and execute

More information

Lecture 7: Programming for the Arduino

Lecture 7: Programming for the Arduino Lecture 7: Programming for the Arduino - The hardware - The programming environment - Binary world, from Assembler to C - - Programming C for the Arduino: more - Programming style Lect7-Page1 The hardware

More information

Government Girls Polytechnic, Bilaspur

Government Girls Polytechnic, Bilaspur Government Girls Polytechnic, Bilaspur Name of the Lab: Internet & Web Technology Lab Title of the Practical : Dynamic Web Page Design Lab Class: CSE 6 th Semester Teachers Assessment:20 End Semester Examination:50

More information

Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss

Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss Lecture 7: Java RMI CS178: Programming Parallel and Distributed Systems February 14, 2001 Steven P. Reiss I. Overview A. Last time we started looking at multiple process programming 1. How to do interprocess

More information

SQL and Programming Languages. SQL in Programming Languages. Applications. Approaches

SQL and Programming Languages. SQL in Programming Languages. Applications. Approaches SQL and Programming Languages SQL in Programming Languages Read chapter 5 of Atzeni et al. BD: Modelli e Linguaggi di Interrogazione and section 8.4 of Garcia-Molina The user does not want to execute SQL

More information

Keysight Technologies PNA Microwave Network Analyzers

Keysight Technologies PNA Microwave Network Analyzers Keysight Technologies PNA Microwave Network Analyzers Introduction to Application Development Application Note 02 Keysight PNA Microwave Network Analyzers - Application Note Table of Contents Introduction...4

More information

Chapter 2: Remote Procedure Call (RPC)

Chapter 2: Remote Procedure Call (RPC) Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC

More information

The following themes form the major topics of this chapter: The terms and concepts related to trees (Section 5.2).

The following themes form the major topics of this chapter: The terms and concepts related to trees (Section 5.2). CHAPTER 5 The Tree Data Model There are many situations in which information has a hierarchical or nested structure like that found in family trees or organization charts. The abstraction that models hierarchical

More information

[MC-IISA]: Internet Information Services (IIS) Application Host COM Protocol

[MC-IISA]: Internet Information Services (IIS) Application Host COM Protocol [MC-IISA]: Internet Information Services (IIS) Application Host COM Protocol Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open

More information

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today. & & 1 & 2 Lecture #7 2008 3 Terminology Structure & & Database server software referred to as Database Management Systems (DBMS) Database schemas describe database structure Data ordered in tables, rows

More information

User Manual. 3-Heights PDF Producer API. Version 4.6

User Manual. 3-Heights PDF Producer API. Version 4.6 User Manual 3-Heights PDF Producer API Version 4.6 Contents 1 Introduction........................................................................ 2 1.1 Operating Systems...................................................................

More information

iphone SDK Enrolled students will be invited to developer program Login to Program Portal Request a Certificate Download and install the SDK

iphone SDK Enrolled students will be invited to developer program Login to Program Portal Request a Certificate Download and install the SDK Objective-C Basics iphone SDK Enrolled students will be invited to developer program Login to Program Portal Request a Certificate Download and install the SDK The First Program in Objective-C #import

More information

Field Properties Quick Reference

Field Properties Quick Reference Field Properties Quick Reference Data types The following table provides a list of the available data types in Microsoft Office Access 2007, along with usage guidelines and storage capacities for each

More information

Getting Started with the Internet Communications Engine

Getting Started with the Internet Communications Engine Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2

More information

APPLICATION PROGRAMMING INTERFACE

APPLICATION PROGRAMMING INTERFACE APPLICATION PROGRAMMING INTERFACE Advanced Card Systems Ltd. Website: www.acs.com.hk Email: info@acs.com.hk Table of Contents 1.0. Introduction... 4 2.0.... 5 2.1. Overview... 5 2.2. Communication Speed...

More information

MPLAB Harmony System Service Libraries Help

MPLAB Harmony System Service Libraries Help MPLAB Harmony System Service Libraries Help MPLAB Harmony Integrated Software Framework v1.08 All rights reserved. This section provides descriptions of the System Service libraries that are available

More information

Component-based application development using a Mixed-Language Programming (MLP) approach. Murali Krishnan Gunasekaran

Component-based application development using a Mixed-Language Programming (MLP) approach. Murali Krishnan Gunasekaran Component-based application development using a Mixed-Language Programming (MLP) approach By Murali Krishnan Gunasekaran Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State

More information

Organization of Records in Blocks

Organization of Records in Blocks Organization of Records in Blocks Read Sec. 4.2 Riguzzi et al. Sistemi Informativi Slides derived from those by Hector Garcia-Molina 1 Topic How to lay out records on blocks 2 To represent: Integer (short):

More information

1 The Java Virtual Machine

1 The Java Virtual Machine 1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This

More information

ODBC Client Driver Help. 2015 Kepware, Inc.

ODBC Client Driver Help. 2015 Kepware, Inc. 2015 Kepware, Inc. 2 Table of Contents Table of Contents 2 4 Overview 4 External Dependencies 4 Driver Setup 5 Data Source Settings 5 Data Source Setup 6 Data Source Access Methods 13 Fixed Table 14 Table

More information

Lecture 22: C Programming 4 Embedded Systems

Lecture 22: C Programming 4 Embedded Systems Lecture 22: C Programming 4 Embedded Systems Today s Goals Basic C programming process Variables and constants in C Pointers to access addresses Using a High Level Language High-level languages More human

More information

Category: Standards Track August 1995

Category: Standards Track August 1995 Network Working Group R. Srinivasan Request for Comments: 1833 Sun Microsystems Category: Standards Track August 1995 Status of this Memo Binding Protocols for ONC RPC Version 2 This document specifies

More information

MPLAB TM C30 Managed PSV Pointers. Beta support included with MPLAB C30 V3.00

MPLAB TM C30 Managed PSV Pointers. Beta support included with MPLAB C30 V3.00 MPLAB TM C30 Managed PSV Pointers Beta support included with MPLAB C30 V3.00 Contents 1 Overview 2 1.1 Why Beta?.............................. 2 1.2 Other Sources of Reference..................... 2 2

More information

[MS-FAX]: Fax Server and Client Remote Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

[MS-FAX]: Fax Server and Client Remote Protocol. Intellectual Property Rights Notice for Open Specifications Documentation [MS-FAX]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages,

More information

Lecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists

Lecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists Lecture 11 Doubly Linked Lists & Array of Linked Lists In this lecture Doubly linked lists Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for a Sparse

More information

Binary storage of graphs and related data

Binary storage of graphs and related data EÖTVÖS LORÁND UNIVERSITY Faculty of Informatics Department of Algorithms and their Applications Binary storage of graphs and related data BSc thesis Author: Frantisek Csajka full-time student Informatics

More information

C# and Other Languages

C# and Other Languages C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List

More information