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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

COM (and some Corba) Distributed Object Systems 8 DCOM 2. Dynamic Invocation. Dynamic Invocation in COM. Interfaces. Client side

COM (and some Corba) Distributed Object Systems 8 DCOM 2. Dynamic Invocation. Dynamic Invocation in COM. Interfaces. Client side 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

COM, ActiveX and Web UI. P. C. Chen

COM, ActiveX and Web UI. P. C. Chen COM, ActiveX and Web UI (Web ActiveX ) P. C. Chen 2009@ntu The Component Object Model: A Technical Overview abstract from Microsoft MSDN 2000 Sara Willliams and Charlie Kindel, Developer Relations Group

More information

SYSTEMS PROGRAMMING C++ INTRODUCTION

SYSTEMS PROGRAMMING C++ INTRODUCTION Faculty of Computer Science / Institute of Systems Architecture / Operating Systems SYSTEMS PROGRAMMING C++ INTRODUCTION Alexander Warg WHY C++? C++ is the language that allows to express ideas from the

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

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

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

2. Compressing data to reduce the amount of transmitted data (e.g., to save money).

2. Compressing data to reduce the amount of transmitted data (e.g., to save money). Presentation Layer The presentation layer is concerned with preserving the meaning of information sent across a network. The presentation layer may represent (encode) the data in various ways (e.g., data

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

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

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

C Primer. Fall Introduction C vs. Java... 1

C Primer. Fall Introduction C vs. Java... 1 CS 33 Intro Computer Systems Doeppner C Primer Fall 2016 Contents 1 Introduction 1 1.1 C vs. Java.......................................... 1 2 Functions 1 2.1 The main() Function....................................

More information

Chapter 8. Arithmetic in C++

Chapter 8. Arithmetic in C++ Christian Jacob Chapter 8 Arithmetic in C++ 8.1 The C++ Vocabulary 8.2 Variables and Types 8.2.1 Data Objects 8.2.2 Variables 8.2.3 Declaration of Variables 8.3 Elementary C++ Data Types 8.3.1 Integers

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

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

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

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

MPI and C-Language Seminars 2010

MPI and C-Language Seminars 2010 MPI and C-Language Seminars 2010 Seminar Plan (1/3) Aim: Introduce the C Programming Language. Plan to cover: Basic C, and programming techniques needed for HPC coursework. C-bindings for the Message Passing

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

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

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

1. Constants. 2. Variables. 3. Reserved words or key words. 4. Constants. Character set in C

1. Constants. 2. Variables. 3. Reserved words or key words. 4. Constants. Character set in C Character set in C We should use only the following characters in writing a C program. These characters can be combined to create C words. Alphabet: A, B, C, D.. Z, a, b, c, d..z Numeric digits: 0, 1,

More information

Lecture 03 Bits, Bytes and Data Types

Lecture 03 Bits, Bytes and Data Types Lecture 03 Bits, Bytes and Data Types In this lecture Computer Languages Assembly Language The compiler Operating system Data and program instructions Bits, Bytes and Data Types ASCII table Data Types

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

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

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

Keywords Compared in Various Languages

Keywords Compared in Various Languages Keywords Compared in Various Languages Visual Studio 2010 This topic lists common programming tasks that can be summarized with a language keyword. For more information about tasks that need code examples,

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

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

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

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

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

Group number 24 Joni Saarinen Daniel Kullberg

Group number 24 Joni Saarinen Daniel Kullberg C# Group number 24 Joni Saarinen Daniel Kullberg C# (pronounced C sharp) is a multi paradigm programming language developed by Microsoft. It is primarily an imperative language but support for functional

More information

Alarms and events in WS500. Author Peter Adleff

Alarms and events in WS500. Author Peter Adleff Alarms and events in WS500 Author Peter Adleff Paf99002@student.mdh.se Master thesis in computer science, 20p June 9, 2005 ABSTRACT ABB is a supplier to electrical energy consumers and power distribution

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

C Programming Dr. Hasan Demirel

C Programming Dr. Hasan Demirel C How to Program, H. M. Deitel and P. J. Deitel, Prentice Hall, 5 th edition (3 rd edition or above is also OK). Introduction to C Programming Dr. Hasan Demirel Programming Languages There are three types

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

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

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

CS 16: Assembly Language Programming for the IBM PC and Compatibles

CS 16: Assembly Language Programming for the IBM PC and Compatibles CS 16: Assembly Language Programming for the IBM PC and Compatibles First, a little about you Your name Have you ever worked with/used/played with assembly language? If so, talk about it Why are you taking

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

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

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

An Introduction to the Java Programming Language History of Java

An Introduction to the Java Programming Language History of Java An Introduction to the Java Programming Language History of Java In 1991, a group of Sun Microsystems engineers led by James Gosling decided to develop a language for consumer devices (cable boxes, etc.).

More information

The Basics of C Programming. Marshall Brain

The Basics of C Programming. Marshall Brain The Basics of C Programming Marshall Brain Last updated: October 30, 2013 Contents 1 C programming 1 What is C?................................. 2 The simplest C program, I........................ 2 Spacing

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

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

[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

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

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

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

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

Compiler Design. Type Checking

Compiler Design. Type Checking Compiler Design Type Checking Static Checking Token Stream Parser Abstract Syntax Tree Static Checker Decorated Abstract Syntax Tree Intermediate Code Generator Intermediate Code Static (Semantic) Checks

More information

Projet Java. Responsables: Ocan Sankur, Guillaume Scerri (LSV, ENS Cachan)

Projet Java. Responsables: Ocan Sankur, Guillaume Scerri (LSV, ENS Cachan) 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

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

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

Java and the JVM. Martin Schöberl

Java and the JVM. Martin Schöberl Java and the JVM Martin Schöberl Overview History and Java features Java technology The Java language A first look into the JVM Disassembling of.class files Java and the JVM 2 History of a Young Java 1992

More information

Introduction to C# Game Design Experience Professor Jim Whitehead January 22, 2008

Introduction to C# Game Design Experience Professor Jim Whitehead January 22, 2008 Introduction to C# Game Design Experience Professor Jim Whitehead January 22, 2008 Creative Commons Attribution 3.0 (Except imported slides, as noted) creativecommons.org/licenses/by/3.0 Goals of the C#

More information

The C Programming Language

The C Programming Language The C Programming Language CS 1025 Computer Science Fundamentals I Stephen M. Watt University of Western Ontario The C Programming Language A high-level language for writing low-level programs Allows machine-independent

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

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

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

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

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

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

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

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

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

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

A C# program structure About variables Predefined Data Types Flow Control Enumerations Arrays Namespaces The Main() method. Console IO Comments

A C# program structure About variables Predefined Data Types Flow Control Enumerations Arrays Namespaces The Main() method. Console IO Comments Basics of C# What are we going to study? A C# program structure About variables Predefined Data Types Flow Control Enumerations Arrays Namespaces The Main() method Compilation of C# program Console IO

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

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

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

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

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

[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

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

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

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

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

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

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

[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

COM Support in BETA. 1. Introduction

COM Support in BETA. 1. Introduction COM Support in BETA Ole Lehrmann Madsen The Danish National Centre for IT Research Computer Science Department, Aarhus University Åbogade 34, DK-8200 Århus N, Denmark Ole.L.Madsen@{cit.dk,daimi.au.dk}

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

Common C Errors. Compiled by: Leela Kamalesh Yadlapalli

Common C Errors. Compiled by: Leela Kamalesh Yadlapalli Common C Errors Compiled by: Leela Kamalesh Yadlapalli This document shows some of the common errors and warnings that you may encounter during this class. Always remember to use the Wall option if you

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

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

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

[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

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

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index. Departament d Arquitectura de Computadors Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.html) Local Objects vs. Distributed

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