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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2