(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.7 and 1.31.2.10

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2