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

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


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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2