(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.16 and 1.27

version 1.16, 2001/06/12 09:02:26 version 1.27, 2001/07/07 00:42:19
Line 1 
Line 1 
 Urgent  
 ======  
  
     -   Fix problem with cimserver not running properly when run without      -   If it is the case that a reference may only refer to an instance,
         options.          then we must derive new types for representing object paths.
  
     -   Put cimserver back in the makefile.      -   Many CIM operations interfaces are incorrect: GetInstance() for example
           takes a namespace and a CIMReference (which also may contain the
           namespace). According to the standard, it should take an "InstanceName".
  
     -   Resolve whether the backslash should be permitted int namespaces.      -   Need way of signaling the cimserver so that it will reload the
           class inheritance table (after a MOF compile).
  
     -   Work on developer's guidlines document.      -   Revisit use of namespace v.s. objectName in all CIM operations.
  
             No STL (or other third party software).      -   What do we do when getInstance() is called and the nameSpace is
             Indent by three.          provided both as an argument and as part of the instance name?
             Braces on the next line.  
             Always run regression tests before committing and do cvs -q update.  
  
     -   Add CIMOM handle to provider interface.      -   ReferenceNames should return classes not just instances?
  
     -   Fix case sensitivity problems in repository (just add an _Open method      -   Remove final const from const methods in non-const CIM element classes.
         that ignores the case of the file).  
  
     -   Add newly implemented repository operations to protocol and to      -   Null vs. empty CIM/HTTP parameters.
         dispatcher.  
  
     -   Change INVALID_CLASS exceptions to NOT_FOUND (they're wrong in      -   Resolve constness problems. (get rid or Const classes?)
         Repository).  
  
     -   Add tracing of output HTTP messages.      -   Change CIMReference to CIMObjectPath?
  
     -   Need CIMInstance::removeMethod() and CIMInstance::removeProperty().      -   Finish associations.
     -   Add a exists namespace operation under the repository stuff.  Maybe we  
     need more than this.  
  
 Topical To-Do List      -   Provide CIMOM Context.
 ==================  
  
     -   Sun uses string message-ids. Pegasus uses integer.      -   Complete conventions document.
         Sun uses 2000.5.12.... format. Changed Pegasus to  
         use string message-ids. DONE.  
  
     -   Some clients send '\n\n' to terminate HTTP headers.      -   The CIMServer.exe program should probably create the logs directory
         We were only accepted '\r\n\r\n'. DONE.          under PEGASUS_HOME.
  
     -   Provide way of printing out command line options help from cimserver.      -   Clean up exceptions.
  
     -   GetInstances() and GetClasses() need to use iterators on      -   Resolve redundancy in which the namespace is passed to certain methods
         provider and repository end. Otherwise, all classes or instance          (getClass) and the CIMReference itself may contain a namespace arguent.
         to be enumerated, must be sucked into memory.  
  
     -   Template bloat reduction.      -   Implement consistency and constraint checking on classes and instances.
  
     -   Use YACC on Linux.      -   Implement filtering (using includeQualifiers, localOnly, etc.)
  
     -   Need a tool to say which features are supported by a compiler.      -   Consider eliminating const CIM element classes.
  
     -   Support unloading of dynamic libraries (presently only load() is      -   Support for NULL property lists (in interface and protocol).
         supported).  
  
 -   Instances:      -   Rename tests (prepend "Test" to each test).
  
     -   Implement CIMRepository::getProperty()      -   Fix bug with cimserver.exe causing it to fail to start without te
           "-l" option.
  
     -   Implement CIMRepository::setProperty()      -   Resolve whether the backslash should be permitted in namespaces.
  
     -   Implement CIMRepository::deleteInstance()      -   Create CIMOMContext (interface to CIMOM used b the provider).
  
     -   Implement CIMRepository::modifyInstance()      -   Define Encoding module interface.
  
     -   Implement CIMRepository::enumerateInstances()      -   Develop XMLEncodings module.
  
     -   Implement CIMRepository::enumerateInstanceNames()      -   Develop BinaryEncodings module.
  
     -   Handle inheritance in all instance operations.      -   Develop MOFEncodings module.
  
     -   Double check that all these operations work across protocol.      -   Employ BinaryEncodings module in repository (reduce disk usage).
  
     -   Check that they have keys during validation.      -   Combine repository instances, classes, and qualifiers  into their
           respective files (to reduce the number of files).
  
 -   Associations:      -   Employ an efficient indexing scheme in repository (B-trees or hashing).
  
     -   Implement CIMRepository::referencesOf()      -   Develop module manager: interface, lookup scheme, and loading scheme.
  
     -   Implement CIMRepository::associatorsOf()      -   Package Encodings classes as a module.
  
     -   Implement protocol stubs for these operations.      -   Finalize repository assocations.
  
 -   Exceptions:      -   Add association CIM/HTTP operations.
  
     -   Force __FILE__ and __LINE__ argument on every usage of CIMException.      -   Design association provider infrastructure.
  
     -   Clean up and consolidate exception classes.      -   Implement missing CIM protocol operations.
  
     -   Propagate underlying error messages across the CIM protocol.      -   Implement good observer module interface which allows different levels:
  
 -   References:          -   Observation of client/CIMMOM connections/disconnection.
  
     -   Validate arguments to CIMReference compound constructor and modifiers.          -   Observation of client/CIMOM communication.
         (namespaces, hosts, classnames, and keybindings)  
  
     -   Be sure that escape sequences are handled inside of object names. For          -   Observation of CIMOM/repository communication.
         example:  
  
             X.key1="Hello \"You\""          -   Observation of CIMOM/provider communication.
  
 -   Protocol:          -   Observation of CIMOM state transitions.
  
     -   Improve protocol tracing to show messages in both directions.      -   Pegasus providers for Sun WBEM Services.
  
     -   The TCPChannel::writeN() method blocks when the client and server      -   Pegasus providers for WMI.
         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.      -   Sun WBEM Services providers for Pegasus.
  
     -   Provide ACE Channel implementation (for porting purposes)?      -   CIM/HTTP Proxy for WMI.
  
     -   Handle PARAMETER.REFARRAY in Procotol?      -   Web Server/Pegasus Integration (use HTTP protocol capabilities of
           web server rather than Pegasus).
   
       -   Add CIMRepository::namespaceExists() method.
   
       -   Change HTTP message id's to this format: "YYYY.MM.DD.HH.MM.SS.NNNNN".
   
       -   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.
  
     -   Ignore extraneous XML elements (loosely valid).      -   Template bloat reduction.
  
 -   Porting:      -   Need a tool to say which features are supported by a compiler.
  
     -   Replace "std::something" with "STD(something)"      -   Support unloading of dynamic libraries (presently only load() is
           supported).
  
     -   Replace "using namespace std" with "USING_NAMESPACE_PEGASUS"      -   Clean up and consolidate exception classes.
  
 -   Aesthetics/Consistency/Usability:      -   Asynchronous socket writes in the CIMOM (need write enabled flags).
  
     -   Change getLength() and getSize() to just size(): "Brevity is the soul      -   Handle PARAMETER.REFARRAY in Procotol?
         of genius and of Lingerie".  
       -   Implemented stream oriented XML parsing.
   
       -   Ignore extraneous XML elements (implement "loose validation" concept).
  
     -   Add methods to get objects by their names, in addition to index. For     -   Add methods to get objects by their names, in addition to index. For
         example:         example:
  
             CIMProperty CIMClass::getProperty(const String& name);             CIMProperty CIMClass::getProperty(const String& name);
  
     -   Perform walkthrough to expose consistency problems.  
   
     -   Distinguish between private and public classes (otherwise, users may     -   Distinguish between private and public classes (otherwise, users may
         come to depend on classes with unstable interfaces).         come to depend on classes with unstable interfaces).
  
 -   Documentation:      -   Walk through all code to expose consistency/aesthetic issues.
  
     -   Suggest newlines after methods.      -   Provide ACE Channel implementation (for porting purposes)?
   
     -   Suggest use of "/** ... */" instead of "///"  
  
     -   Refine header file documentation.      -   Expand datatime (setCurrentTime() and comparison and increment
           functions).
  
     -   Write Pegasus Architecture Paper.     -   Write Pegasus Architecture Paper.
  
     -   Integrate DOC++ with make system (put all docs in doc tree):  
   
 -   Namespaces:  
   
     -   Implement create and destroy namespace (according to the standard).  
   
 -   Providers  
   
     -   Add CIM-Server handles to provider interface.  
   
     -   Implement MOF provider registration scheme (according to the     -   Implement MOF provider registration scheme (according to the
     standard).     standard).
  
 -   WBEM Query Language      -   WBEM Query Language and integration.
   
     -   Find someone to work on standard.  
   
     -   Implement leve-1 parser.  
   
 -   MOF compiler:  
   
     -   Work with Bob to identify work items.  
  
 -   Threading -   Threading
  
     -   Write thread queuing document (input and output thread queue per  
         provider).  
   
     -   Implement queuing.  
   
     -   Make reference counted objects thread safe (Mutexing and atomic  
         increments).  
   
 -   Connectors  
   
     -   Work out basic concepts (write paper).  
   
     -   Package up pegasus in Install Shield application.     -   Package up pegasus in Install Shield application.
  
       -   Internationalization: Handle UCS2 characters in XML
           (parsing and writing).
  
 -   Install      -   Export of repository to MOF.
   
     -   Need install mechanism for Unix and Windows.  
   
 -   Interoperability  
   
     -   Fix reported bugs.  
   
 -   Internationalization  
   
     -   Handle UCS2 characters in XML (parsing and writing).  
   
 -   Repository:  
   
     -   Export to MOF.  
   
 -   Miscellaneous  
  
     -   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.     -   Investiage weak assocations.
  
     -   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 240 
Line 181 
  
     -   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  
   
     -   Implement Service class on Unix (daemonization from Comer book).  
  
       -   SLP
               - Eliminate lib directory.


Legend:
Removed from v.1.16  
changed lines
  Added in v.1.27

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2