+ All Categories
Home > Documents > Intro to COM

Intro to COM

Date post: 19-Mar-2016
Category:
Upload: spiro
View: 36 times
Download: 1 times
Share this document with a friend
Description:
Intro to COM. What is it and what can it do for me?. COM Defined. COM (Component Object Model) and DCOM (Distributed COM) are a set of binary and network standards for the modeling of objects and their communications. OK, What are Components?. - PowerPoint PPT Presentation
19
Intro to COM What is it and what can it do for me?
Transcript
Page 1: Intro to COM

Intro to COM

What is it and what can it do for me?

Page 2: Intro to COM

COM Defined

COM (Component Object Model) and DCOM (Distributed COM)are a set of binary and network

standards for the modeling of objects and their communications.

Page 3: Intro to COM

OK, What are Components?

• Components are big brother of Classes. Component = Object

• Interface = Function Set of that Object• Properties = Member Variables

– (all Properties are actually get & put calls)

• Methods = Functions

• BONUS: Components can have more than one interface.

Page 4: Intro to COM

What makes up a Component?

• Implementation object• Interface object(s)

IFooExIFoo Implementation

Object

IUnknown

Components are well-encapsulated objects

Page 5: Intro to COM

Identifiers• GUID (globally unique identifiers)

– are stored in 16-byte (128 bit) structures • CLSID (class identifier GUID) • IID (interface identifier GUID)

IUnknown• QueryInterface

– Returns a pointer to requested Interface

• AddRef– Increases the RefCount

• Release– Decreases the RefCount

Page 6: Intro to COM

Where do components live?

• In-Process servers (.dll)• Out-of-Process servers (.exe)• Remote servers (.exe)• ActiveX (.ocx)

Page 7: Intro to COM

Using Components

• Rapid Application Development• Seamless application updates• Build great apps without reinventing the wheel• Interface different systems with ease

• Examples: Serial port communications, Scanner image capture, Image archive systems, internet server interaction (CDDB)

Page 8: Intro to COM

What languages can I use?

• C++, Java, Visual Basic and VB Script (IIS)

• ActiveX technology, Use MS ATL (VC++)

• Component creation

• Component use in applications

Page 9: Intro to COM

Why should you learn COM?

• Saves tremendous time (after the initial learning curve)

• Use of existing objects• Object Reuse: C++ tried to address this issue,

but just made it easy to reuse source code. • So you can use DCOM.

Page 10: Intro to COM

Parallel Programming

• Three main types of applications:– CPU intensive

• graphics rendering• BFA

– Resource Specific• DCOM lets you do this seamlessly

– Highly connected• custom data, application structures • hybrid memory models

Page 11: Intro to COM

Cradle - Traveling Salesman

Page 12: Intro to COM

Traveling Salesman - 13 Ponts

0

50

100

150

200

250

300

350

400

450

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Number of MachinesPII 333MHz

Seco

nds

to c

ompl

ete

0.00%

20.00%

40.00%

60.00%

80.00%

100.00%

120.00%

140.00%

160.00%

180.00%

Perc

enta

ge o

f The

oret

ical

Theoretical

Actual

% Theoretical

6min 30 sec

16 sec

Page 13: Intro to COM

Traveling Salesman - 17 Points(43,680 times the calculation)

0

2000000

4000000

6000000

8000000

10000000

12000000

14000000

16000000

18000000

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Number of MachinesPII 333MHz

Seco

nds

to c

ompl

ete

0.00%

10.00%

20.00%

30.00%

40.00%

50.00%

60.00%

70.00%

80.00%

90.00%

100.00%

Perc

enta

ge o

f The

oret

ical

Theoretical

Actual

% Theoretical

197 days

3.5 Days

Page 14: Intro to COM

Life 3D

Page 15: Intro to COM

Life3D face relationships

21

43

5 6

1

5

6 2

3

4

Page 16: Intro to COM

Symera Viewer

Page 17: Intro to COM

Clustering Scenarios

Tight Coupling Loose Coupling

Page 18: Intro to COM

Life3D Class Conversion

CMainWindow CFaceWindow

CCubeFace(interface)

CFace(implementation)

CSymObj CSymObjRef

Original classes

New classes

Symera base classes

CCubeFace

CSymObj

User Interface Distributed Object

Page 19: Intro to COM

Recommended Reading

• Dr. GUI articles on COM - a MUST READ• Essential COM by Don Box• Inside COM & Inside Distributed COM (MS Press)• ActiveX/COM Control Programming (WROX Press)

• For the complete history and theory, read:– Inside OLE (MS Press)


Recommended