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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2