10
A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh ([email protected] ) CST UMKC

A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh ([email protected]) CST [email protected]

Embed Size (px)

Citation preview

Page 1: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

A COM implementation of the KSpace

A ‘Knowledge Space prototype’ by

Santhosh ([email protected]) CST UMKC

Page 2: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

Presentation Layout

The DAL system and the KSpace KSpace: COM and XML KSpace: Implementation details

Start

End

Page 3: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

The DAL System

Introduction to the DAL system Distributed Adaptive Learning system

DAL System components Learner Space, Knowledge Space, Presentation

Space (E-Game, E-Book)

Start

End

Page 4: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

The Knowledge Space

KSpace – A part of the DAL system KSpace – A ‘Data storage and retrieval'

component Features expected of the KSpace

Distributed environment (Concurrency, Synchronization, Fault tolerance …)

Start

End

Page 5: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

KSpace: COM and XML (1/2)

COM features implemented by the KSpace prototype Component developed as a DLL Provides support for

‘Self-Registration’ ‘Type-libraries’ ‘Multithreading’ clients ‘Automation’, Dual interface ‘Exception handling’

Start

End

Page 6: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

KSpace: COM and XML (2/2)

XML and the KSpace MSXML parser DOM API

Provides support for Creating, reading, writing XML documents

Start

End

Page 7: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

Implementation details (1/3)

Concept Map

Start

End

KSpace Client

1. Create XML file2. Write to XML file3. Read from XML file

KSpace Component

1. Set up environment (Type libraries and Automation)2. Serve client XML requests

Exceptions / Client service results

KSpace query

Page 8: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

Implementation details (2/3)

Sample scenario (Connection establishment) Scan registry for server component GUID Load DLL into memory if component exists in the form

of a DLL, else instantiate executable component (use DLL surrogate if needed)

Get address of class object factory Instantiate class factory

Create instantiate of KSpace server component

Start

End

Page 9: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

Implementation details (3/3)

KSpace Component interfaces IUnknown (AddRef, Release, QueryInterface) IXMLInterface (Create, Read, Write) ISupportErrorInfo (InterfaceSupportsErrorInfo) ICreateErrorInfo (SetGUID, SetSource,

SetDescription, SetHelpFile, SetHelpContext) IClassFactory (CreateInstance, LockServer)

Start

End

Page 10: A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh (vpanchap@hotmail.com) CST UMKCvpanchap@hotmail.com

Conclusion: The KSpace prototype

Experience gained COM and XML Windows programming (Registries, DLLs, HRESULTS, GUIDs, Threading

Apartments …)

References “Inside COM” by “Dale Rogerson” published “1997 by the Microsoft press” “Inside Distributed COM” by “Guy Eddon” and “Henry Eddon” published “1998

by the Microsoft press”. “Inside COM+” by “Guy Eddon” and “Henry Eddon” published “1999 by the

Microsoft press”

Programming language, Environment VC++, Win 2000 XML SDK

Start

End