Issue 6685: DDS editorial issues
Issue 6686: Bad references
Issue 6687: Missing operations to allow the navigation described in the PIM
Issue 6705: ref-1001: section 3.1.1 (editorial
Issue 6706: ref-1002: section 3.1.2.1 (editorial
Issue 6707: ref-1003: Section 3.1.3.2 (editorial)
Issue 6708: ref-1004: Section 3.1.3.3 Metamodel (clarification)
Issue 6709: ref-1005: figure 3.2 (editorial)
Issue 6710: ref-1006: Page 3.11 (editorial)
Issue 6711: ref-1007: Section 3.1.6.3.4 CacheListener (editorial)
Issue 6712: ref-1008: Bad annex reference (editorial)
Issue 6713: ref-1009: Section 3.2.3.2 IDL Model description of the example
Issue 6714: ref-1010: Section 3.2.3.3 XML Model Tags of the example
Issue 6715: ref-1011: Section 3.2.3.3 Introduction to figure 3.9 (editorial)
Issue 6716: ref-1012: Section 3.2.3.3 Simplified XML of the example)
Issue 6717: ref-1013: Section 3.1.6.3.9 Table for ObjectQuery (editorial)
Issue 6718: ref-1014: Page 3-10, figure 3-2 min_topic (editorial)
Issue 6719: ref-1015: Page 3-62 manual edition (editorial)
Issue 6720: ref-1016: Page 3-65 t2 (editorial)
Issue 6721: ref-1017: Section 3.1.4.4.2 topic (editorial
Issue 6722: ref-1018: Name of the methods for ObjectListener (editorial)
Issue 6723: ref-1019: Name of the ObjectRoot::clone method (editorial)
Issue 6729: Additional_communication_paradigms
Issue 6730: Attributes_on_a_topic_description
Issue 6731: Extension_to_the_partition_qos
Issue 6732: Extension_to_the_query_language
Issue 6733: Attributes_on_the_data
Issue 6734: Filtered_out_lifecycle_state Issue
Issue 6735: Transactional_reliability Issue
Issue 6736: Writer_notification_of_delivery_failure Issue
Issue 6737: Detection_of_dynamic_qos_failure Issue
Issue 6738: Navigation_of_connectivity_information Issue
Issue 6739: Additional_qos_DATA_PRIORITY Issue
Issue 6740: Additional_qos_LIFESPAN Issue
Issue 6741: Additional_qos_THROUGHPUT Issue
Issue 6742: Key_separate_from_data Issue
Issue 6743: Make_USER_DATA_an_array_and_mutable Issue
Issue 6744: CacheFactory::find_cache (addition
Issue 6745: : Attributes and operations directly set on valuetypes
Issue 6746: Names of the ObjectRoot attributes
Issue 6747: Depth of cloning (addition)
Issue 6748: CacheAccess operations (documentation)
Issue 6749: CacheAccess::delete_access (editorial
Issue 6750: CacheAccess::deref (clarification)
Issue 6751: stringSeq and longSeq (editorial)
Issue 6752: ObjectHome::get_topic_name (editorial
Issue 6753: ObjectHome::get_all_topic_names (addition
Issue 6754: Operations on collections of objects (addition
Issue 6755: Name of ObjectLink (consistency)
Issue 6756: Obtaining the DomainParticipantFactory
Issue 6757: Potential problems in PSM mappings
Issue 6758: Naming_of_attribute_getter_operations
Issue 6759: Ref-62 Return_type_of_set_query_operations
Issue 6760: Delete dependencies and semantics
Issue 6761: Ref-20 Semantics_of_factory_delete_methods
Issue 6762: Ref-87 Clarify_Topic_deletion_as_local_concept
Issue 6763: Ref-151 No_locally_duplicate_topics
Issue 6764: Ref-22 Automatic_deletion_of_contained_entities
Issue 6765: Ref-15 Behavior_on_deletion_from_wrong_factory
Issue 6766: Single waitset attached to condition
Issue 6767: Entity specialization of set/get qos/listener
Issue 6768: Ref-36 Entity_specialization_set_get_qos
Issue 6769: Inconsistencies between PIM and PSM/IDL
Issue 6770: Ref-39 Entity_specialization_set_get_qos
Issue 6771: Ref-28 IDL_entity_get_statuscondition
Issue 6772: Ref-34 Incorrect_guard_condition_enabled_statuses
Issue 6773: Ref-37 Entity_ specialization_set_get_listener_in_idl
Issue 6774: Ref-42 DomainParticipantListener_on_requested
Issue 6775: Ref-46 ContentFilteredTopic_related_topic
Issue 6776: Ref-48 FooDataWriter_unregister_instance
Issue 6777: Ref-49 DataWriter_get_key
Issue 6778: Ref-57 FooDataReader_get_key
Issue 6779: Ref-56 Subscriber_notify_datareaders_parameters
Issue 6780: Ref-58 DataReader_read_take_w_condition
Issue 6781: Ref-59 FooDataReader_read_take_parameter_order
Issue 6782: Ref-70 Missing_deadline_statuskind_from_pim
Issue 6783: Ref-79 Missing_StatusKind_liveliness_idl_constants
Issue 6784: Ref-88 Inconsistent_naming_PIM_IDL_instance_samples
Issue 6785: Ref-205 On_requested_deadline_missed_paramtype
Issue 6786: Ref-126 Inconsistent_parameter_order_to_get_datareaders
Issue 6787: Ref-135 Missing_accessor_for_SampleRejectedStatus
Issue 6788: Ref-63 QoS_USER_DATA_on_Publisher_and_Subscriber
Issue 6789: Ref-229 IDL_rename_publisher_laxity_w_latency_budget
Issue 6790: Clarification of listener invocation and waitset signaling
Issue 6791: Ref-02 Data_Available_status_transition
Issue 6792: Duplicate use of domainId
Issue 6793: Use of Topic versus TopicDescription
Issue 6794: Ref-40 Name_and_return_type_of_lookup_topic
Issue 6795: Reason and use of enable
Issue 6796: Ref-31 Reason_and_use_of_enabled
Issue 6797: DDS ISSUE# 14] Helper addition to the IDL
Issue 6798: Ref-118 Introduce_TIME_INVALID_constant
Issue 6799: Ref-102 Addition_of time_related_constants
Issue 6800: DDS ISSUE# 15] Semantics of register and unregister instance
Issue 6801: DDS ISSUE# 16] Clarification of expression syntax
Issue 6802: DDS ISSUE# 17] Clarify consequence of changing partitions
Issue 6803: Behavior on creation failure
Issue 6804: DDS ISSUE# 19] Initial value of entity status changes
Issue 6805: DDS ISSUE# 20] Narrow the applicability of assert liveliness
Issue 6806: DDS ISSUE# 21] Helper operations
Issue 6807: Ref-134 Additional_w_timestamp_operations
Issue 6808: DDS ISSUE# 22] Details in the code generation
Issue 6809: ISSUE# 23] Make Listener inheritance explicit in figures 2-9 and 2-10
Issue 6810: DDS ISSUE# 24] Clarification of status flag
Issue 6811: DDS ISSUE# 25] Addition of read and take to ReadCondition
Issue 6812: DDS ISSUE# 26] Definition of DCPSKey
Issue 6813: DDS ISSUE# 27] Additional situations resulting in inconsistent QoS
Issue 6814: [DDS ISSUE# 28] Desirability to define "information model" in a file
Issue 6815: DDS ISSUE# 29] Disposing a multi-topic
Issue 6816: DDS ISSUE# 30] Setting of default qos on factories
Issue 6817: DDS ISSUE# 31] Topic QoS refactor
Issue 6818: DDS ISSUE# 32] Create dependencies on type
Issue 6819: DDS ISSUE# 33] Initialization of resources needed
Issue 6820: DDS ISSUE# 34] Initial data when DataWriter appears
Issue 6821: Inconsistency on what operations may return NOT_ENABLED
Issue 6822: DDS ISSUE# 36] QoS clarifications
Issue 6823: Ref-210 Clarification_of_responsibility_of_RxO_qos
Issue 6824: Ref-212 Qos_Coupling_TimeBasedFilter_deadline
Issue 6825: Ref-104 Coupling_bwn_TIME_BASED_FILTER_and_RELIABILITY
Issue 6826: Ref-156 Clarify_TIME_BASED_FILTER
Issue 6827: Ref-106 Desc_of_Inconsistent_topic_status::total_count_change
Issue 6828: Ref-108 Ownership_interaction_with_deadline
Issue 6829: Ref-109 Destination_order_should_be_request_offered
Issue 6830: Ref-111 Default_values_for_qos
Issue 6831: Ref-144 Wrong_description_of_compatible_DURABILITY
Issue 6832: Ref-165 Make_USER_DATA_changeable
Issue 6833: Ref-144 User_data_on_topic
Issue 6834: Ref-142 Confusing_description_of_manual_by_participant
Issue 6835: Ref-162 Separate_transient_into_two_kinds
Issue 6836: DDS ISSUE# 37] SAMPLE_LOST_STATUS on DataReader
Issue 6837: DDS ISSUE# 38] Allow application to install a clock
Issue 6838: DDS ISSUE# 39] Combine module names
Issue 6839: DDS ISSUE# 40] Expression syntax is missing enumeration
Issue 6840: DDS ISSUE# 41] Inconsistent use of instance in datawriter api
Issue 6841: DDS ISSUE# 42] Clarify how counts in the status accumulate
Issue 6842: DDS ISSUE# 43] Bad references
Issue 6843: Ref-139 Bad_reference_to filter_expression
Issue 6844: DDS ISSUE# 44] Errors in figures
Issue 6845: DDS ISSUE# 45] Is OMG IDL PSM more correct than CORBA PSM?
Issue 6846: DDS ISSUE# 46] Use of RETCODE_NOT_IMPLEMENTED
Issue 6847: DDS ISSUE# 47] Allow application to not specify a timstamp
Issue 6848: Rename DataType interface to TypeSupport
Issue 6849: DDS ISSUE# 49] Behavior_of_register_type
Issue 6850: DDS ISSUE# 50] Multiple observers sharing a datareader
Issue 6851: DDS ISSUE# 51] Avoid use of dynamic memory for manipulating QoS
Issue 6852: Ref-167 Malloc_required_for_get_default_qos
Issue 6853: DDS ISSUE# 52] Provide for zero copy access to data
Issue 6854: DDS ISSUE# 53] Refactor lifecycle state
Issue 6855: Ref-85 Garbage_collection_of_disposed_instances
Issue 6856: Ref-112 Value_of_data_for_DISPOSED_state
Issue 6857: Ref-113 Meta_sample_accounting_towards_resource_limits
Issue 6858: DDS ISSUE# 54] Refactor or extend API used to access samples
Issue 6859: Ref-231 Provide_a_way_to_limit_count_returned_samples
Issue 6860: Ref-232 Allow_reader_to_access_partition_of_writer
Issue 6861: DDS ISSUE# 55] Rename DataType interface to TypeSupport
Issue 6862: DDS ISSUE# 56] Missing fields in builtin topics
Issue 6863: Ref-224 Built_in_topics_not_in_PSM
Issue 6864: DDS ISSUE# 57] Clarify creation of waitset and conditions
Issue 6867: ref-1032: User-provided oid
Issue 7022: ObjectHome index and name
Issue 7023: ObjectRoot::is_modified (clarification)
Issue 7024: New structure for DLRLOid
Issue 7025: Naming of the private members
Issue 7026: clean_modified (in ObjectRoot, Relations...)
Issue 7057: New definition for ObjectFilter
Issue 7058: Mapping DCPS-DLRL
Issue 7059: clone + deref
Issue 7060: Several instead one listener
Issue 7061: delete clone
Issue 7062: New definition for ObjectListener
Issue 7064: Ref-170 Missing_description_of_OWNERSHIP_STRENGH
Issue 7065: ref-1053 Missing is_composition
Issue 7066: ref-171 Rename_Topic_USER_DATA_to_TOPIC_DATA
Issue 7067: New definition for Selections
Issue 7100: Missing operations on DomainParticipantFactory and need for helper values
Issue 7134: ref-1054: Bad which_added operations in IDL
Issue 7136: ref-1053 Missing is_composition
Issue 7169: Changing the IDL module
Issue 6685: DDS editorial issues (data-distribution-ftf)
Click here for this issue's archive.
Source: Real-Time Innovations (Dr. Gerardo Pardo-Castellote, Ph.D., gerardo@rti.com pardo@rti.com)
Nature: Uncategorized Issue
Severity:
Summary:
Ref-66 Misplacing_of_key_in_builtin_topic_table Section 2.1.5. Fields "key" with Topic DCPSPublication and DCPSSubscription are placed one row to high compared to the relating Topic. In other words, DCPSPublication and DCPSSubscription should be placed one row higher. The thickness of the lines between the rows might suggest some relation between fields, but is implemented inconsequent. Proposal: Correct table as described above. Ref-103 Typo_on_section_2.1.2.5.2.8 3rd paragraph Says "... prior to calling any of the sample-accessing operations, namely: … on the DataWriter" Should say "on the DataReader" instead of "on the DataWriter" Proposal: Replace "DataWriter" with "DataReader" in said paragraph Ref-105 Typo_on_section_2.1.3.11 Section 2.1.3.11 says "Assuming the STRENGTH policy allows it…" Should say "Assuming the OWNERSHIP policy allows it…" Proposal: Replace as stated above Ref-115 Typo_consistent_use_of_term_publication Section 2.1.2.2.1.15 says "The publication to ignore"… The parallel sentence in section 2.1.2.2.1.16 says the "The DataReader to ignore"… These two sentences should be consistent Proposal: Replace "publication" with DataWriter in 2.1.2.2.1.15 Ref-143 Typo_on_RELIABILITY_description In Section 2.1.3, QoS table. The description of RELIABILITY in the last line it says "and whether a samples can be discarded from it." Should say "samples" instead of "a samples" Proposal: Replace as stated above Ref-145 Bad_reference_to_DCPSEntity Section 2.1.3 Figure 15 Says DCPSEntity instead of Entity in one of the lines Proposal: Replace as stated above Ref-147 Typo_on_section_2.1.5 Section 2.1.5 third paragraph says: The last "r" in "get_datareader" is not using italics as it should within the sentence "The built-in DataReader objects can be retrieved by using the operation get_datareader, with the Subscriber and the topic name as parameters." Proposal: Make the "r" italic. Ref-207 Grammar_errors_on_secs_2.1.2.4_and_2.1.2.5 2.1.2.4.2.6: 2nd paragraph, 1st line: "one" should be "once" according to 2.1.2.1.1.7 this should be the case. 2.1.2.5.2.8: 3rd paragraph, 3rd line: "....on any DataWriter" should be "....on any DataReader" 2.1.2.5.3.8: Point 5, 3rd line: "....that is required that.... " should be "....that it is required that....."" Proposal: Fix above 3 typos as stated above Ref-221 Typo_on_section_2.1.4.4 2.1.4.4: First paragraph after the bullets:"... is done after ininitial is at ion phase..." should be "... is done after initialization phase..." Proposal: Fix as stated above Ref-228 Typo_on_2.1.2.2.1.13 2.1.2.2.1.13 2nd paragraph, 4th line: "filed" should be "field" Proposal: Fix as stated above
[DDS ISSUE# 2] Bad references Ref-67 Bad_reference_to_SubscriberFactory Sections 2.1.5, 2.1.6.2.1, and 2.1.6.2.2. Mention a SubscriberFactory. There is no SubscriberFactory. They should mention DomainParticipant. instead Proposal: Replace SubscriberFactory with DomainParticipant in said sections. Ref-71 Bad_reference_to_CORBA_PIM Section 2.2.2. Says "The CORBA PIM is provided by means of the IDL that defines the interface an application can use to interact with the Service." This should be: "The CORBA PSM ..." Proposal: Replace as stated above Ref-80 Bad_reference_to_appendixA On page 2-21, 2-22, 2-28, 2-29, 2-54, 2-59 all the references to appendix A should be references to appendix B Proposal: Replace as stated above
Ref-200 Figure_2_10_arrow_readcondition The PIM indicates by means of the arrow pointing from ReadCondition to DataReader that navigation is possible. However, the navigation is not present in the PSM (no operation, no attribute). Proposal: Fix by adding get_datareader() operation to the ReadCondition. This operation should take no arguments and return a DataReader Ref-201 Figure_2_5_arrow_statuscondition The PIM indicates by means of the arrow pointing from StatusCondition to Entity that navigation is possible. However, the navigation is not present in the PSM (no operation, no attribute). Proposal: Fix by adding get_entity() to StatusCondition. This operation should take no arguments and return a Entity. Ref-202 Figure_2_10_arrow_topicdescription The PIM indicates by means of the arrow pointing from DataReader to TopicDescription that navigation is possible. However, the navigation is not present in the PSM (no operation, no attribute). Proposal: Fix by adding get_topicdescription to DataReader. This operation should take no arguments and return a Topicdescription. Ref-203 Figure_2_9_arrow_topic The PIM indicates by means of the arrow pointing from DataWriter to Topic that navigation is possible. However, the navigation is not present in the PSM (no operation, no attribute). Proposal: Fix by adding get_topic() to DataWriter. This operation should take no arguments and return a Topic. Ref-227 Missing_navigation_operations The PIM indicates by means of the arrow pointing from DataReader to Subscriber, from DataWriter to Publisher, and from DomainEntity to Participant that navigation is possible. However, the navigation is not present in the PSM (no operation, no attribute) Proposal: Fix by adding DataReader::get_subscriber (no parameters, returns a Subscriber), DataWriter::get_publisher (no parameters, returns a Publisher), and the operations Publisher:: get_participant(), Subscriber::get_participant, and TopicDescription::get_participant() (these 3 operations should take no arguments and return a Participant). It is not needed to add get_participant to DataReader or DataWriter because it is possible to navigate to the subscriber/publisher and from there to the participant.
In the final editing process, "native-language constructs" has become "native-language data-accessing constructs". However, the mentioned constructs are not only related to accessing the data (e.g., creation of an object) Proposal [THALES] Remove the extra "data-accessing"
Starting at "A DLRL object has at least one shared attribute..." (page 3-3), the whole section has been messed up during the final editing process; therefore, the content is no more understandable. Proposal [THALES] Restore the wording and footprint as it was in version V67 (the last Word one)
The last paragraph is a note, but is not is the note style Proposal [THALES] Correct the footprint
Several readers wondered if the described metamodel should be implemented, while it is only given for description purpose Proposal [THALES] Add the following clarification sentence (at the end of the first paragraph of the section page 3.4): " This metamodel is given for explanation purpose. This specification does not require that it is implemented as such."
In the class "Relation", the attribute "rel_needs_class" should be named "full_oid_required" (according to the text description) In the class "Class" In the class "Relation", the attribute "id_needs_class" should be named "full_oid_required" (according to the text description) Proposal [THALES] Correct the figure
On that page, "Class", "Attribute" and "Relation" (line 2) and "Class" (first line before section 3.1.4.4.3) should be in bold+italics as the other words that are identifiers Proposal [THALES] Correct the words
Issue [THALES] In the textual description, the method "on_begin_updates" is named "start_updates" In the textual description, the method "on_end_updates" is named "end_updates" Proposal [THALES] Correct the textual description to align on the table.
Issue [THALES] in the whole DLRL section, Annex C is badly named Annex A Proposal [THALES] Change all the "cf. annex A", with "cf. annex C"
Resolution: Change all the "cf. annex A", with "cf. annex C", everywhere in the whole DLRL section.
Issue [THALES] in the final editing process, the IDL for the example has been truncated (cut by 2) Proposal [THALES] restore it as it was in version V67
Issue [THALES] In the final editing process, the XML for the example has been truncated (cut by 2) the chosen font makes it difficult to read (why not use Courier New which is a fixed-sized font as for the code example) there should be a void line between the first sentence that introduces the XML description and the description itself Proposal [THALES] restore the contents as it was in version V67 introduce a void line to keep it separated from the introduction
Issue [THALES] The style applied to the introduction to figure 3.9 is not correct The figure itself is badly placed on the page Proposal [THALES] Correct the footprint
Issue [THALES] In the final editing process, the minimum XML model tags for the example have been truncated (cut by 2) the removal of the title makes less clear the purpose of the description Proposal [THALES] restore the contents as it was in version V67 change the last sentence of the introduction " In this case, the XML file would be as follows" with "In case no deviation is wanted from the default mapping, the XML description can be restricted to the following minimum:"
Issue [THALES] attribute "parameter" is stated as of type "string[}" instead "string []" Proposal [THALES] correct the table
Issue [THALES] page 3-10: In figure 3-2 the class attribute min_topic should be main_topic Proposal [THALES] correct the figure
Issue [THALES] page 3-62: Just after the XML listing: manual edition should be manual editing Proposal [THALES] correct the sentence
page 3-65: 4th line from below: t3->z(3000.0); t3 should be t2 Proposal [THALES] correct the example
Issue [THALES] 1st bullet: section 3.1.4.4.2 (Mono Attribute) Class::topic should be Class::main_topic Proposal [THALES] correct the wording
Issue [THALES] In section 3.1.6.3.6 (ObjectListener) the method names used in the bulleted descriptions do not correspond to the names used in the Table page 3-38: section 3.1.6.4.2 (Object Creation) first bullet: two times on_object_created is mentioned according to figure 3-4 this should be on_new_object. Proposal [THALES] correct the table (the bullets are in accordance with the IDL) correct the figure (on_object_created is the name of the operation in other places, including IDL)
Issue [THALES] in section 3.6.1.3.11 the clone method is named clone_object in the text explanation. Proposal [THALES] correct the text (everywhere else, the method is named clone)
Issue# 2010 Additional_communication_paradigms Issue [Boeing SOSCOE] ? In addition to the Data-Distribution model, our applications also need two basic communication models; Point2Point and GroupCommunications. ? The API’s and PIM defined in DDS would fit well with those communication models as well. That is, the concept of typed DataReaders and DataWriters that are configured by means of QoS and interact with the user-level application by means of listeners and conditions are all applicable to Point2Point and GroupCommunications. ? It would therefore be useful to introduce extensions such that the application can use these additional communication models in a way that fits naturally with the data-distribution PIM. ? In Boeing SOSCOE’s applications Point2Point communications: • Represent 1-to-1 bi-directional communication channels similar to UNIX “pipes” that can be configured by means of QoS • Are “connection-oriented” in the sense that each endpoint must explicitly establish the “connection” and is made aware if the “connection” is broken • Allow the application to read-write typed data to the other end-point. Each “writer” in one side of the connection communicates with the corresponding “reader” at the other end. In general each writer must be matched by a reader at the opposite end. Otherwise it is a configuration error. • Allow prioritization among the data written by different writers by means of QoS • Allow both synchronous and asynchronous writes. • Support the concept of application-level acknowledgements or “transactional” messaging by which the writing application can receive notification that the reading application has received the message and has positively acted on it. • Support the classic “client-connect versus server-listen/accept” pattern such that the “server” side can establish multiple dedicated point-to-point connections to each “client” that requests a connection. • Filters are not generally expected to be required for Point2Point communications. However, in order to keep the same API they should be allowed. The middleware should automatically give positive acknowledgement of reliable or transactional data that has been filtered out. • It is an error for a data-writer to write a Topic that does not have a corresponding data-reader. The writer() call should return a special error code indication there is no matching DataReader. In Boeing SOSCOE’s applications GroupCommunications : • Provide the capability for a group of peer applications to organize themselves into a “group”, such that each member of the group is aware of the presence of all other members and can send messages directed to either one specific peer, all the peers in the group, or a subset of the members of the group. • Provide some means to control group membership. • Each member of the group is identified by some “ID” such that other members can refer to it and direct messages to it. • Provide a serialized view of membership and delivery of messages such that: • The writer knows the membership when it sends each message and anybody that does not belong to that membership will not get the message. • All members of the group have the same view of the membership for each message delivered to them. • Do not need to provide total order or even agreed order. • Act as a “live” group in that messages are only delivered to the members that are present when the message is sent. In other words, it does not store messages on behalf of future members of the group • It is OK to write a DataWriter that does not have a corresponding DataReader on some of the other Group members. The data is considered acknowledged for RELIABLE but not for the purpose of TRANSACTIONAL (ref issue# 2060). Proposal [Boeing SOSCOE] ? Consider introducing a more primitive concept for a group of endpoints, from which the following classes derive: Publisher, Subscriber, EndpointConnector, and GroupConnector. ? This base class could be called “Connector” but does not really mean a “connection” in the “TCP” sense, rather the “connectivity” into the middleware services. ? All these “Connectors” act as factories for DataReader and DataWriter entities (which represent the Endpoints). ? The type of the DataReader and DataWriter created from each kind of “Connector” is the same (even though they will act differently). This is because the DataReader and DataWriter are typed facades to write a specific data-type and it is not desirable to have to create (by means of implied IDL) different types for each kind of connector. ? The EndpointConnectors and GroupConnectors are informed of the connections/disconnections by means of Listeners with an “onConnect” and “onDisconnect” operations. ? For Point2Point communication the factory of DataReader and DataWriter entities would be the EndpointConnector • To match the two EndpointConnector objects that should be “hooked up” the application could use either a Topic, or a more general matching of “Attibute-value” pairs, or a combination of the above. • To aid in the establishment of many point2point connectors using the client-connect, server-listen/accept pattern the EndpointConnector could use an auxiliary “ServerConnector” and corresponding listeners that would inform it of the fact that clients are attempting a connection. ? For Group communications the factory of DataReader and DataWriter entities would be the GroupConnector • The same generic mechanism used by the EndpointConnector should be used to identify the group the GroupConnector entities are joining, that is either a Topic, or a more general matching of “Attibute-value” pairs, or a combination of the above. Comments[RTI] ? To avoid confusion it might be a good idea to propose a name other than “connector” for the base class and also avoid the use of the terms “client” and “server” which are often associated with the pattern of communications used by CORBA and RMI. ? Point2Point communications would never use KEEP_LAST QoS. They will use KEEP_ALL. They will also always have DURABILITY TRANSIENT. In a sense messages are sent to the other end “immediately” and held only as long as is necessary to ensure the QoS (e.g. RELIABLE or TRANSACTIONAL) afterwards they are removed from the middleware.
Point-to-point communications and Group communications are not included in the Data-Distribution specification and their inclusion would be beyond the scope of the FTF. Other OMG specifications address Group communications and one-way messaging as extensions to the CORBA remote-method-invocation model. However, it appears that what is requested here is a "messaging" API, so this issue may be better addressed by means of an RFP.
Attributes_on_a_topic_description Issue [Boeing SOSCOE] ? Some use-cases need more control on association of DataReader and DataWriters beyond the control offered by means of the Topic ? For example, SOSCOE may need to add a layer on top of the DDS API to offer additional customized services to the applications that sit on top. These services may include the propagation of identity-certificates, security, dynamic selection of the “best” DataWriter to use for a given Topic, etc. ? These mechanisms would like to benefit from the propagation of Topics and QoS that DDS offers and extend that mechanism with additional information that can then be used by the SOSCOE layer to provide these additional services. ? However the matching that DDS offers is performed only on the topic name. It would be useful to have a more extensible mechanism to allow matching on other application-defined attributes. ? These attributes are an expansion of the topic_name that appears in the TopicDescription. In addition to the string (topic_name) we could have a set of attribute-name/value pairs that could then be used to match the writers with readers. In a sense the topic_name would be a singular, mandatory attribute used for matching but they could be others. ? These attributes are not mutable. ? SOSCOE has created a provider property class that allows applications to have attributes with typed values; it becomes a triplet (name, type, value). Currently the “type” only supports simple types, but the intent is to extend it to well-known structured types. ? For example, the Topic “weather data” would describe a general topic but there may be an attribute that describes the region (e.g. “North America”) and the subscriber can specify they want weather-data but only over “North America” Proposal [Boeing SOSCOE] ? One approach would be to add a set of “name-value” attributes to the TopicDescription. Matching would be done not only on the topic-name but also on the remaining attributes. In a sense, the topic name is just one of the attributes that must be matched between the Topic that is published and that which is subscribed.
Issue# 2030 Extension_to_the_partition_qos Issue [Boeing SOSCOE] ? The DDS specification provides the means for an application to configure the “connectivity” of DataReaders and DataWriters by setting the PARTITION QoS on the corresponding Publisher and Subscriber. ? Partitions therefore provide means for publishers and subscribers to restrict the associations that can be established between the readers and writers they contain. ? This facility is useful, but the fact that the matching is done by strict string matching of the partition-name strings can be limiting. ? It would be desirable to have something more extensible like “name-value” pairs and some more flexible expression language (e.g. a filter expression) to indicate the matching, beyond pure string matching. ? SOSCOE has created a provider property class that allows applications to have attributes with typed values; it becomes a triplet (name, type, value). Currently the “type” only supports simple types, but the intent is to extend it to well-known structured types (ref Issue#2035). ? A potential use case is to use name-value pairs to identify the source of the information or a distribution restriction. Things like AREA_NAME, SENSOR_GROUP, etc. each with its value. ? This is the analogous to the attribute-value pairs on the topic except they apply to the Publisher/Subscriber or EndpointConnectors. Proposal [Boeing] ? Addition of a set of name-value pairs to the Publisher and Subscriber (in fact to all Connectors) which can then be used to determine whether the endpoints contained in the connectors should communicate ? The attributes in the Connector can be used to locate providers of interest or somehow the “best” provider where “best” can be specific to each peer Connector. ? The query language described in Appendix A would not be sufficient for SOSCOE’s needs due to the need for function expressions and, at some future time, the ability to support well-known structured types (ref Issue#2035).
Issue# 2035 Extension_to_the_query_language Issue [Boeing SOSCOE] ? SOSCOE has a need to allow function expressions to be added to the query language ? SOSCOE has created a provider property class that allows applications to have attributes with typed values; it becomes a triplet (name, type, value). Currently the “type” only supports simple types, but the intent is to extend it to well-known structured types. Proposal [Boeing] ? Extend the query language to allow user defined function expressions ? Extend the query language to allow user defined structured types
Discussion: The FTF recognizes this would be a useful facility. However, the FTF could not find suitable resolution within the time-frame of the FTF and therefore resolved to defer the issue to a future F/RTF or revision.
Attributes_on_the_data Issue [Boeing SOSCOE] ? The DDS API forces the data to be written to be encapsulated into a single IDL structure. Moreover IDL-generated structures do not support pointers to other structures. ? These limitations are constraining the kinds of things that a layer such as SOSCOE can do. For example, it would be desirable to allow the DDS DataWriter to filter or perform other actions on information that is not “part of the data”. Not “being part of the data” means the attributes: • Are propagated along with the message (1-to-1 relationship) to the reader. • May be used for filtering, or intercepted by layers above DDS (e.g. SOSCOE). • Do not get passed to the read or take calls ? The problem is that since the DataWriter takes a single “compacted” data-structure, any additional information, whether introduced by the user-app or the SOSCOE layer must be somehow copied into the data and thus force the introduction of new data-types. ? In other words it would be desirable for DDS so provide some hook that would allow a user or a layer such as SOSCOE to add additional information to the “user-level” data that is then used by DDS to filter on. The filtering would then occur on t