(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.4 and 1.33

version 1.4, 2001/04/30 15:58:06 version 1.33, 2001/12/13 19:25:44
Line 1 
Line 1 
 Urgent  
 ======  
  
     -   Fix case sensitivity problems in repository (just add an _Open method      -   Do we need strings to represent NULL and empty (what if the standard
         that ignores the case of the file).          adds something where a string parameter can be null distinguished from
           an empty value).
  
     -   Change INVALID_CLASS exceptions to NOT_FOUND (they're wrong in Rep).      -   Expose repository inheritance tree.
  
 Topical To-Do List      -   Look at not passing HTTP header to CIM request decoder queue.
 ==================  
  
 -   Instances:      -   Propagate message key for all messages pertaining to a particular
           request.
  
     -   Implement CIMRepository::getProperty()      -   Run Purify on all sources (port to Sun first).
  
     -   Implement CIMRepository::setProperty()      -   Rework Pegasus to use asynchronous I/O.
  
     -   Implement CIMRepository::deleteInstance()      -   Finalize export client/server:
  
     -   Implement CIMRepository::modifyInstance()              -   Covert GetClass operation to DeliverIndication operation.
  
     -   Implement CIMRepository::enumerateInstances()              -   Rework export-client to asynchronously process responses
                   (instead of the RPC style used now).
  
     -   Implement CIMRepository::enumerateInstanceNames()              -   Need meta-export-client (with connection management).
  
     -   Handle inheritance in all instance operations.              -   Implement disconnect() logic.
  
     -   Double check that all these operations work across protocol.      -   Remove keys from messages?
  
     -   Check that they have keys during validation.      -   Get rid of unused source code (dealing with channels and TCP).
  
 -   Associations:      -   Rethink the useage of queue-ids in messages and how requests and
           responses are matched up. Queue-ids are only used on the server
           side. Perhaps a more general mechanism can be found.
  
     -   Implement CIMRepository::referencesOf()      -   Fix bug in which the messageId is calculated inside the XmlWriter.
           It should be calculated by the caller.
  
     -   Implement CIMRepository::associatorsOf()      -   Delete CIMOperations.h.
  
     -   Implement protocol stubs for these operations.      -   Get rid of message keys? They don't seem to be used.
  
 -   Exceptions:      -   Fix bug in src/Pegasus/Client/tests/Client in which associators()
           fails and says class does not exist (seems to happen in debug mode
           only). Disappears when I/O is enabled.
  
     -   Force __FILE__ and __LINE__ argument on every usage of CIMException.      -   Replace old headers with new ones (co-ordinate with team).
  
     -   Clean up and consolidate exception classes.      -   Get rid of usage of System (use since it
  
     -   Propagate underlying error messages across the CIM protocol.      -   Migrate to use of Linkage.h files.
  
 -   References:      -   Document that lex and yacc are no longer a requirement to build
           Pegasus.
  
     -   Validate arguments to CIMReference compound constructor and modifiers.      -   Figure out how to handle very large CIM respones and possibly
         (namespaces, hosts, classnames, and keybindings)          requests too.
  
     -   Be sure that escape sequences are handled inside of object names. For      -   Integrate client/server tests into make system somehow.
         example:  
  
             X.key1="Hello \"You\""      -   Note that it is possible to remove an class and still have association
           classes which refer to it.
  
 -   Protocol:      -   Class inheritance not taken into consideration when resolving the
           AssocClass
  
     -   Improve protocol tracing to show messages in both directions.      -   It seems that associatios() will fail when AssocClass is a super
           class of the class which is in the association instance table.
  
     -   The TCPChannel::writeN() method blocks when the client and server      -   Should there be a single associations table for the entire repository
         are in the same process. That is because the client cannot read          or should there be one per namespace as there is now?
         anything as long as writeN() is blocked on a synchronous write.  
  
     -   Figure out how to handle getProperty() return type.      -   If it is the case that a reference may only refer to an instance,
           then we must derive new types for representing object paths.
  
     -   Provide ACE Channel implementation (for porting purposes)?      -   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".
  
     -   Handle PARAMETER.REFARRAY in Procotol?      -   Need way of signaling the cimserver so that it will reload the
           class inheritance table (after a MOF compile).
  
     -   Ignore extraneous XML elements (loosely valid).      -   Revisit use of namespace v.s. objectName in all CIM operations.
  
 -   Porting:      -   What do we do when getInstance() is called and the nameSpace is
           provided both as an argument and as part of the instance name?
  
     -   Replace "std::something" with "STD(something)"      -   ReferenceNames should return classes not just instances?
  
     -   Replace "using namespace std" with "USING_NAMESPACE_PEGASUS"      -   Remove final const from const methods in non-const CIM element classes.
  
 -   Aesthetics/Consistency/Usability:      -   Null vs. empty CIM/HTTP parameters.
  
     -   Change getLength() and getSize() to just size(): "Brevity is the soul      -   Resolve constness problems. (get rid or Const classes?)
         of genius and of Lingerie".  
  
     -   Add methods to get objects by their names, in addition to index. For      -   Change CIMReference to CIMObjectPath?
         example:  
  
             CIMProperty CIMClass::getProperty(const String& name);      -   Finish associations.
  
     -   Perform walkthrough to expose consistency problems.      -   Provide CIMOM Context.
  
     -   Distinguish between private and public classes (otherwise, users may      -   Complete conventions document.
         come to depend on classes with unstable interfaces).  
  
 -   Documentation:      -   The CIMServer.exe program should probably create the logs directory
           under PEGASUS_HOME.
  
     -   Suggest newlines after methods.      -   Clean up exceptions.
  
     -   Suggest use of "/** ... */" instead of "///"      -   Resolve redundancy in which the namespace is passed to certain methods
           (getClass) and the CIMReference itself may contain a namespace arguent.
  
     -   Refine header file documentation.      -   Implement consistency and constraint checking on classes and instances.
  
     -   Write Pegasus Architecture Paper.      -   Implement filtering (using includeQualifiers, localOnly, etc.)
  
     -   Integrate DOC++ with make system (put all docs in doc tree):      -   Consider eliminating const CIM element classes.
  
 -   Namespaces:      -   Support for NULL property lists (in interface and protocol).
  
     -   Implement create and destroy namespace (according to the standard).      -   Rename tests (prepend "Test" to each test).
  
 -   Providers      -   Fix bug with cimserver.exe causing it to fail to start without te
           "-l" option.
  
     -   Add CIM-Server handles to provider interface.      -   Resolve whether the backslash should be permitted in namespaces.
  
     -   Implement MOF provider registration scheme (according to the standard).      -   Create CIMOMContext (interface to CIMOM used b the provider).
  
 -   WBEM Query Language      -   Define Encoding module interface.
  
     -   Find someone to work on standard.      -   Develop XMLEncodings module.
  
     -   Implement leve-1 parser.      -   Develop BinaryEncodings module.
  
 -   MOF compiler:      -   Develop MOFEncodings module.
  
     -   Work with Bob to identify work items.      -   Employ BinaryEncodings module in repository (reduce disk usage).
  
 -   Threading      -   Combine repository instances, classes, and qualifiers  into their
           respective files (to reduce the number of files).
  
     -   Write thread queuing document (input and output thread queue per      -   Employ an efficient indexing scheme in repository (B-trees or hashing).
         provider).  
  
     -   Implement queuing.      -   Develop module manager: interface, lookup scheme, and loading scheme.
  
     -   Make reference counted objects thread safe (Mutexing and atomic      -   Package Encodings classes as a module.
         increments).  
  
 -   Connectors      -   Finalize repository assocations.
  
     -   Work out basic concepts (write paper).      -   Add association CIM/HTTP operations.
  
     -   Package up pegasus in Install Shield application.      -   Design association provider infrastructure.
  
       -   Implement missing CIM protocol operations.
  
 -   Install      -   Implement good observer module interface which allows different levels:
  
     -   Need install mechanism for Unix and Windows.          -   Observation of client/CIMMOM connections/disconnection.
  
 -   Interoperability          -   Observation of client/CIMOM communication.
  
     -   Fix reported bugs.          -   Observation of CIMOM/repository communication.
  
 -   Internationalization          -   Observation of CIMOM/provider communication.
  
     - Handle UCS2 characters in XML (parsing and writing).          -   Observation of CIMOM state transitions.
  
 -   Repository:      -   Pegasus providers for Sun WBEM Services.
  
     - Export to MOF.      -   Pegasus providers for WMI.
  
 -   Miscellaneous      -   Sun WBEM Services providers for Pegasus.
  
     - Figure out how to handle CIM null values.      -   CIM/HTTP Proxy for WMI.
  
     - Generalize iteration.      -   Web Server/Pegasus Integration (use HTTP protocol capabilities of
           web server rather than Pegasus).
  
     - Figure out how inheritance of keys works.      -   Add CIMRepository::namespaceExists() method.
  
     - Investiage weak assocations.      -   Change HTTP message id's to this format: "YYYY.MM.DD.HH.MM.SS.NNNNN".
  
     - Provide conversions between DateTime and time_t.      -   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.
  
 -   Constraint hanlding      -   Template bloat reduction.
  
     - Enforce constraint qualifiers.      -   Need a tool to say which features are supported by a compiler.
  
     - Disallow resetting size of fixed length arrays.      -   Support unloading of dynamic libraries (presently only load() is
           supported).
  
 -   Optimization/Tuning      -   Clean up and consolidate exception classes.
  
     -   Shrink object sizes.      -   Asynchronous socket writes in the CIMOM (need write enabled flags).
  
     -   Use lighter I/O system (than C++ streams).      -   Handle PARAMETER.REFARRAY in Procotol?
  
     -   Run Purify on all sources (port to Sun first).      -   Implemented stream oriented XML parsing.
  
     -   Optimize clear method on arrays (to not release memory).      -   Ignore extraneous XML elements (implement "loose validation" concept).
  
 -   Porting      -   Add methods to get objects by their names, in addition to index. For
           example:
  
     -   Port to Solaris              CIMProperty CIMClass::getProperty(const String& name);
  
     -   Port to HPUX      -   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.
  
     -   Port to AIX      -   Provide ACE Channel implementation (for porting purposes)?
  
 -   Testing      -   Expand datatime (setCurrentTime() and comparison and increment
           functions).
  
     -   Run Purify on all sources (port to Sun first).      -   Write Pegasus Architecture Paper.
   
       -   Implement MOF provider registration scheme (according to the
           standard).
   
       -   WBEM Query Language and integration.
  
     -   Run CIM/XML test suite.      -   Threading
   
       -   Package up pegasus in Install Shield application.
   
       -   Internationalization: Handle UCS2 characters in XML
           (parsing and writing).
  
 -   Server      -   Export of repository to MOF.
  
     -   Use Service class in cimserver      -   Change CompareNoCase() to String::compareNoCase().
   
       -   Figure out how to handle CIM NULL values.
   
       -   Figure out how inheritance of keys works.
  
     -   Implement Service class on Unix (daemonization from Comer book).      -   Investigage weak associations.
  
 Short-term Items      -   Enforce constraint qualifiers.
 ================  
       -   Disallow resetting size of fixed length arrays.
   
       -   Shrink object sizes.
   
       -   Use lighter I/O system (than C++ streams).
   
       -   Optimize clear method on arrays (to not release memory).
   
       -   Provide conversions between DateTime and time_t.
   
       -   Port to Solaris
  
 -   Make HashTable take Equal template function argument.      -   Support multiple providers of the extact same class.
           DiskController example and LanController.
  
 -   Make InheritanceTree case-insensitive.      -   SLP - Eliminate lib directory.


Legend:
Removed from v.1.4  
changed lines
  Added in v.1.33

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2