A COM implementation of the KSpace A ‘Knowledge Space prototype’ by Santhosh CST
Presentation Layout The DAL system and the KSpace KSpace: COM and XML KSpace: Implementation details Start End
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
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
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
KSpace: COM and XML (2/2) XML and the KSpace MSXML parser DOM API Provides support for Creating, reading, writing XML documents Start End
Implementation details (1/3) Concept Map Start End KSpace Client 1. Create XML file 2. Write to XML file 3. 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
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
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
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