Component Object Model(COM)

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Introduction to .NET Framework
Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
COM vs. CORBA.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
Intro to COM What is it and how do I use it?. Objectives Teach the fundamentals of COM. Understand the reason for using it. Learn to make a simple in-process.
Software: Systems and Application Software
Object Oriented System Development with VB .NET
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 COM/DCOM n Part of Project Presentation (Concept Outline)
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Session 3 Windows Platform Dina Alkhoudari. Learning Objectives Understanding Server Storage Technologies Direct Attached Storage DAS Network-Attached.
Section 6.1 Explain the development of operating systems Differentiate between operating systems Section 6.2 Demonstrate knowledge of basic GUI components.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
DCOM Technology. What is DCOM? DCOM is just COM with a longer wire DCOM is just COM with a longer wire DCOM extends COM to support communication among.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
CHAPTER 3 The Component Object Model and DirectX © 2008 Cengage Learning EMEA.
CSC Proprietary 9/11/2015 2:16:16 AM 008_P2_CSC_white 1.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
COM/DCOM Implementation Basics of: Object creation and access Object Reuse Interface referencing.
OLE / COM Helia / Martti Laiho Sources: MSDN Kraig Brockschmidt: Inside OLE Orfali-Harkey-Erwards: Client/Server Survival Guide.
Introduction to COM and DCOM Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Ni.com Understanding COM/ActiveX Jeff Paulter Staff Software Engineer Thurs Aug 17 10:15-11:30 a.m., 1:45-3:00 p.m. Ash (10A) Jeff Paulter Staff Software.
Introduction to COM and ActiveX Controls. What is an object? In the Fayad sense of the word.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
GAM666 – Introduction To Game Programming ● DirectX is implemented as a collection of COM objects ● To use a DirectX program, the user must have the correct.
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
COM / DCOM Xiaolan Lu Mingzhen Wang Dong Xie. Why COM / DCOM?  Challenges facing the software industry  Component software provides a solution  General.
Seminarium on Component-based Software Engineering Feraaz Imami LIACS – Leiden University Fall 2005 Component Object Model (COM)
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
Cooperation & Interoperability Architecture & Ontology.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
1 Introduction to Active Directory Directory Services Uniquely identify users and resources on a network Provide a single point of network management.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Data Grids, Digital Libraries and Persistent Archives: An Integrated Approach to Publishing, Sharing and Archiving Data. Written By: R. Moore, A. Rajasekar,
Introducing the Microsoft® .NET Framework
Applications Active Web Documents Active Web Documents.
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Operating System & Application Software
Current Generation Hypervisor Type 1 Type 2.
Introduction to Visual Basic 2008 Programming
Design and realization of Payload Operation and Application system of China’s Space Station Wang HongFei 首页.
UCSC All rights reserved
Introduction to .NET Framework Ch2 – Deitel’s Book
Distribution and components
The Future? Or the Past and Present?
Microsoft .NET 3. Language Innovations Pan Wuming 2017.
Introduction Enosis Learning.
Introduction to client/server architecture
CSCI/CMPE 3334 Systems Programming
Ch > 28.4.
Introduction Enosis Learning.
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Chapter 3: Operating-System Structures
9.0 EMBEDDED SOFTWARE DEVELOPMENT TOOLS
Java Applets.
Chapter 17: Client/Server Computing
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Operating Systems : Overview
Operating Systems : Overview
The Anatomy and The Physiology of the Grid
Quality Assurance for Component-Based Software Development
Introduction to Active Directory Directory Services
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Presented By Justas Raslanas
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

Component Object Model(COM) Presentation by Baizhanyssov B.

Introduction The Component Object Model (COM) is a software architecture that allows applications to be built from binary software components. COM is the underlying architecture that forms the foundation for higher-level software services, like those provided by OLE. OLE services span various aspects of commonly needed system functionality, including compound documents, custom controls, interapplication scripting, data transfer, and other software interactions.

OLE technologies build on one another, with COM as the foundation.

Defines a binary standard for component interoperability Is programming-language-independent Is provided on multiple platforms (Microsoft® Windows®, Windows 95, Windows NT�, Apple® Macintosh®, and many varieties of UNIX®) Provides for robust evolution of component-based applications and systems Is extensible by developers in a consistent manner Uses a single programming model for components to communicate within the same process, and also across process and network boundaries Allows for shared memory management between components Provides rich error and status reporting Allows dynamic loading and unloading of components

The Component Software Problem Basic interoperability Versioning Language independence Transparent cross-process interoperability

COM Fundamentals The Component Object Model defines several fundamental concepts that provide the model's structural underpinnings. These include: A binary standard for function calling between components. A provision for strongly-typed groupings of functions into interfaces. A base interface A mechanism to identify components and their interfaces uniquely, worldwide. A "component loader" to set up component interactions and, additionally (in the cross-process and cross-network cases), to help manage component interactions.

Binary Standard For any given platform (hardware and operating system combination), COM defines a standard way to lay out virtual function tables (vtables) in memory, and a standard way to call functions through the vtables.

Objects and Components The word object tends to mean something different to everyone. To clarify: In COM, an object is a piece of compiled code that provides some service to the rest of the system. COM components support a base interface called Iunknown COM components usually have some associated data, but unlike C++ objects, a given COM component will never have direct access to another COM component in its entirety. 

Interfaces In COM, applications interact with each other and with the system through collections of functions called interfaces. An interface is the definition of an expected behavior and expected responsibilities. OLE's drag-and-drop support is a good example. Interface names begin with "I" by convention.

Attributes of Interfaces An interface is not a class An interface is not a COM component COM clients only interact with pointers to interfaces COM components can implement multiple interfaces Interfaces are strongly typed Interfaces are immutable

The current convention is to draw each interface on a COM component as a "plug-in jack." A typical picture of a COM component that supports three interfaces: A, B, and C. Interfaces extend towards the clients connected to them. Two applications may connect to each other's objects, in which case they extend their interfaces towards each other.

The unique use of interfaces in COM provides five major benefits: The ability for functionality in applications (clients or servers of COM components) to evolve over time. Fast and simple object interaction Interface reuse Local/Remote Transparency Programming language independence

Globally Unique Identifiers (GUIDs) COM uses globally unique identifiers (GUIDs), which are 128-bit integers that are guaranteed to be unique in the universe across space and time, to identify every interface and every COM component class. This helps ensure that COM components do not accidentally connect to the "wrong" component, interface, or method, even in networks with millions of COM components. Microsoft supplies a tool (uuidgen) that automatically generates GUIDs.

IUnknown COM defines one special interface, IUnknown, to implement some essential functionality. All COM components are required to implement the IUnknown interface and, conveniently, all other COM and OLE interfaces are derived from IUnknown. IUnknown has three methods: QueryInterface, AddRef, and Release. In C++ syntax, IUnknown looks like this: interface IUnknown { virtual HRESULT QueryInterface(IID& iid, void** ppvObj) = 0; virtual ULONG AddRef() = 0; virtual ULONG Release() = 0; }

COM Library The COM Library is a system component that provides the mechanics of COM. The COM Library provides the ability to make IUnknown calls across processes; it also encapsulates all the "legwork" associated with launching components and establishing connections between components.

Interfaces Summary To summarize, COM defines several basic fundamentals that provide the underpinnings of the object model. The binary standard allows components written in different languages to call each other's functions. Interfaces are logical groups of related functions--functions that together provide some well-defined capability. IUnknown is the interface that COM defines to allow components to control their own lifespan and to dynamically determine another component's capabilities.

COM Solves the Component Software Problem COM addresses the four basic problems associated with component software: Basic component interoperability Versioning Language independence Transparent cross-process interoperability Additionally, COM provides a high-performance architecture to meet the requirements of a commercial component market.

COM and the Client/Server Model Clients, Servers, and Object Implementors Servers: In-Process and Out-Of-Process Custom Interfaces and Interface Definitions COM and Application Structure