(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.31.2.1

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2