(file) Return to todo.txt CVS log (file) (dir) Up to [Pegasus] / pegasus / doc / Attic

Diff for /pegasus/doc/Attic/todo.txt between version 1.13 and 1.31.2.2

version 1.13, 2001/06/08 00:40:41 version 1.31.2.2, 2001/08/02 19:15:23
Line 1 
Line 1 
 Urgent  
 ======  
  
     -   Add CIMOM handle to provider interface.      -   Get rid of usage of System (use since it
  
     -   Fix case sensitivity problems in repository (just add an _Open method      -   Migrate to use of Linkage.h files.
         that ignores the case of the file).  
  
     -   Add newly implemented repository operations to protocol and to      -   Document that lex and yacc are no longer a requirement to build
         dispatcher.          Pegasus.
  
     -   Change INVALID_CLASS exceptions to NOT_FOUND (they're wrong in      -   Figure out how to handle very large CIM respones and possibly
         Repository).          requests too.
  
     -   Add tracing of output HTTP messages.      -   Integrate client/server tests into make system somehow.
  
     -   Need CIMInstance::removeMethod() and CIMInstance::removeProperty().      -   Note that it is possible to remove an class and still have association
           classes which refer to it.
  
 Topical To-Do List      -   Class inheritance not taken into consideration when resolving the
 ==================          AssocClass
  
     -   Provide way of printing out command line options help from cimserver.      -   It seems that associatios() will fail when AssocClass is a super
           class of the class which is in the association instance table.
  
     -   GetInstances() and GetClasses() need to use iterators on      -   Should there be a single associations table for the entire repository
         provider and repository end. Otherwise, all classes or instance          or should there be one per namespace as there is now?
         to be enumerated, must be sucked into memory.  
  
     -   Template bloat reduction.      -   If it is the case that a reference may only refer to an instance,
           then we must derive new types for representing object paths.
     -   Use YACC on Linux.  
   
     -   Need a tool to say which features are supported by a compiler.  
  
     -   Support unloading of dynamic libraries (presently only load() is      -   Many CIM operations interfaces are incorrect: GetInstance() for example
         supported).          takes a namespace and a CIMReference (which also may contain the
           namespace). According to the standard, it should take an "InstanceName".
  
 -   Instances:      -   Need way of signaling the cimserver so that it will reload the
           class inheritance table (after a MOF compile).
  
     -   Implement CIMRepository::getProperty()      -   Revisit use of namespace v.s. objectName in all CIM operations.
  
     -   Implement CIMRepository::setProperty()      -   What do we do when getInstance() is called and the nameSpace is
           provided both as an argument and as part of the instance name?
  
     -   Implement CIMRepository::deleteInstance()      -   ReferenceNames should return classes not just instances?
  
     -   Implement CIMRepository::modifyInstance()      -   Remove final const from const methods in non-const CIM element classes.
  
     -   Implement CIMRepository::enumerateInstances()      -   Null vs. empty CIM/HTTP parameters.
  
     -   Implement CIMRepository::enumerateInstanceNames()      -   Resolve constness problems. (get rid or Const classes?)
  
     -   Handle inheritance in all instance operations.      -   Change CIMReference to CIMObjectPath?
  
     -   Double check that all these operations work across protocol.      -   Finish associations.
  
     -   Check that they have keys during validation.      -   Provide CIMOM Context.
  
 -   Associations:      -   Complete conventions document.
  
     -   Implement CIMRepository::referencesOf()      -   The CIMServer.exe program should probably create the logs directory
           under PEGASUS_HOME.
  
     -   Implement CIMRepository::associatorsOf()      -   Clean up exceptions.
  
     -   Implement protocol stubs for these operations.      -   Resolve redundancy in which the namespace is passed to certain methods
           (getClass) and the CIMReference itself may contain a namespace arguent.
  
 -   Exceptions:      -   Implement consistency and constraint checking on classes and instances.
  
     -   Force __FILE__ and __LINE__ argument on every usage of CIMException.      -   Implement filtering (using includeQualifiers, localOnly, etc.)
  
     -   Clean up and consolidate exception classes.      -   Consider eliminating const CIM element classes.
  
     -   Propagate underlying error messages across the CIM protocol.      -   Support for NULL property lists (in interface and protocol).
  
 -   References:      -   Rename tests (prepend "Test" to each test).
  
     -   Validate arguments to CIMReference compound constructor and modifiers.      -   Fix bug with cimserver.exe causing it to fail to start without te
         (namespaces, hosts, classnames, and keybindings)          "-l" option.
  
     -   Be sure that escape sequences are handled inside of object names. For      -   Resolve whether the backslash should be permitted in namespaces.
         example:  
  
             X.key1="Hello \"You\""      -   Create CIMOMContext (interface to CIMOM used b the provider).
  
 -   Protocol:      -   Define Encoding module interface.
  
     -   Improve protocol tracing to show messages in both directions.      -   Develop XMLEncodings module.
  
     -   The TCPChannel::writeN() method blocks when the client and server      -   Develop BinaryEncodings module.
         are in the same process. That is because the client cannot read  
         anything as long as writeN() is blocked on a synchronous write.  
  
     -   Figure out how to handle getProperty() return type.      -   Develop MOFEncodings module.
  
     -   Provide ACE Channel implementation (for porting purposes)?      -   Employ BinaryEncodings module in repository (reduce disk usage).
  
     -   Handle PARAMETER.REFARRAY in Procotol?      -   Combine repository instances, classes, and qualifiers  into their
           respective files (to reduce the number of files).
  
     -   Ignore extraneous XML elements (loosely valid).      -   Employ an efficient indexing scheme in repository (B-trees or hashing).
  
 -   Porting:      -   Develop module manager: interface, lookup scheme, and loading scheme.
  
     -   Replace "std::something" with "STD(something)"      -   Package Encodings classes as a module.
  
     -   Replace "using namespace std" with "USING_NAMESPACE_PEGASUS"      -   Finalize repository assocations.
  
 -   Aesthetics/Consistency/Usability:      -   Add association CIM/HTTP operations.
  
     -   Change getLength() and getSize() to just size(): "Brevity is the soul      -   Design association provider infrastructure.
         of genius and of Lingerie".  
  
     -   Add methods to get objects by their names, in addition to index. For      -   Implement missing CIM protocol operations.
         example:  
  
             CIMProperty CIMClass::getProperty(const String& name);      -   Implement good observer module interface which allows different levels:
  
     -   Perform walkthrough to expose consistency problems.          -   Observation of client/CIMMOM connections/disconnection.
  
     -   Distinguish between private and public classes (otherwise, users may          -   Observation of client/CIMOM communication.
         come to depend on classes with unstable interfaces).  
  
 -   Documentation:          -   Observation of CIMOM/repository communication.
  
     -   Suggest newlines after methods.          -   Observation of CIMOM/provider communication.
  
     -   Suggest use of "/** ... */" instead of "///"          -   Observation of CIMOM state transitions.
  
     -   Refine header file documentation.      -   Pegasus providers for Sun WBEM Services.
  
     -   Write Pegasus Architecture Paper.      -   Pegasus providers for WMI.
  
     -   Integrate DOC++ with make system (put all docs in doc tree):      -   Sun WBEM Services providers for Pegasus.
  
 -   Namespaces:      -   CIM/HTTP Proxy for WMI.
  
     -   Implement create and destroy namespace (according to the standard).      -   Web Server/Pegasus Integration (use HTTP protocol capabilities of
           web server rather than Pegasus).
  
 -   Providers      -   Add CIMRepository::namespaceExists() method.
  
     -   Add CIM-Server handles to provider interface.      -   Change HTTP message id's to this format: "YYYY.MM.DD.HH.MM.SS.NNNNN".
  
     -   Implement MOF provider registration scheme (according to the standard).      -   GetInstances() and GetClasses() need to use iterators on
           provider and repository end. Otherwise, all classes or instance
           to be enumerated, must be sucked into memory.
  
 -   WBEM Query Language      -   Template bloat reduction.
  
     -   Find someone to work on standard.      -   Need a tool to say which features are supported by a compiler.
  
     -   Implement leve-1 parser.      -   Support unloading of dynamic libraries (presently only load() is
           supported).
  
 -   MOF compiler:      -   Clean up and consolidate exception classes.
  
     -   Work with Bob to identify work items.      -   Asynchronous socket writes in the CIMOM (need write enabled flags).
  
 -   Threading      -   Handle PARAMETER.REFARRAY in Procotol?
   
     -   Write thread queuing document (input and output thread queue per  
         provider).  
  
     -   Implement queuing.      -   Implemented stream oriented XML parsing.
  
     -   Make reference counted objects thread safe (Mutexing and atomic      -   Ignore extraneous XML elements (implement "loose validation" concept).
         increments).  
  
 -   Connectors      -   Add methods to get objects by their names, in addition to index. For
           example:
  
     -   Work out basic concepts (write paper).              CIMProperty CIMClass::getProperty(const String& name);
  
     -   Package up pegasus in Install Shield application.      -   Distinguish between private and public classes (otherwise, users may
           come to depend on classes with unstable interfaces).
  
       -   Walk through all code to expose consistency/aesthetic issues.
  
 -   Install      -   Provide ACE Channel implementation (for porting purposes)?
  
     -   Need install mechanism for Unix and Windows.      -   Expand datatime (setCurrentTime() and comparison and increment
           functions).
  
 -   Interoperability      -   Write Pegasus Architecture Paper.
  
     -   Fix reported bugs.      -   Implement MOF provider registration scheme (according to the
           standard).
  
 -   Internationalization      -   WBEM Query Language and integration.
  
     -   Handle UCS2 characters in XML (parsing and writing).      -   Threading
  
 -   Repository:      -   Package up pegasus in Install Shield application.
  
     -   Export to MOF.      -   Internationalization: Handle UCS2 characters in XML
           (parsing and writing).
  
 -   Miscellaneous      -   Export of repository to MOF.
  
     -   Change CompareNoCase() to String::compareNoCase().     -   Change CompareNoCase() to String::compareNoCase().
  
     -   Place configuration startup parameters in Repository (e.g., port).      -   Figure out how to handle CIM NULL values.
   
     -   Integrate logging  
   
     -   Figure out how to handle CIM null values.  
   
     -   Generalize iteration.  
  
     -   Figure out how inheritance of keys works.     -   Figure out how inheritance of keys works.
  
     -   Investiage weak assocations.      -   Investigage weak associations.
   
     -   Provide conversions between DateTime and time_t.  
   
 -   Constraint hanlding  
  
     -   Enforce constraint qualifiers.     -   Enforce constraint qualifiers.
  
     -   Disallow resetting size of fixed length arrays.     -   Disallow resetting size of fixed length arrays.
  
 -   Optimization/Tuning  
   
     -   Shrink object sizes.     -   Shrink object sizes.
  
     -   Use lighter I/O system (than C++ streams).     -   Use lighter I/O system (than C++ streams).
Line 216 
Line 205 
  
     -   Optimize clear method on arrays (to not release memory).     -   Optimize clear method on arrays (to not release memory).
  
 -   Porting      -   Provide conversions between DateTime and time_t.
  
     -   Port to Solaris     -   Port to Solaris
  
     -   Port to HPUX      -   Support multiple providers of the extact same class.
           DiskController example and LanController.
     -   Port to AIX  
   
 -   Testing  
   
     -   Test case insensitivity of class names and qualifier names.  
   
     -   Run Purify on all sources (port to Sun first).  
   
     -   Run CIM/XML test suite.  
   
 -   Server  
  
     -   Use Service class in cimserver      -   SLP - Eliminate lib directory.
  
     -   Implement Service class on Unix (daemonization from Comer book).  


Legend:
Removed from v.1.13  
changed lines
  Added in v.1.31.2.2

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2