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