Hi !

Time to discuss about Ldap operations.

We have two kind of messages, Requests and Responses. They both are LdapMessages. Let's start with Requests

Requests :
----------


The list of existing Requests is :

Abandon
Add
Bind
Compare
Delete
Extended
Modify
ModifyDn
Search
Unbind

Some of them can be abandoned, two can't (Abandon, and Unbind)

Abandonable requests :

Add
Bind
Compare
Delete
Extended
Modify
ModifyDn
Search


Responses :
-----------

Before IntermediateResponse was introduced in RFC 4511, we were able to distinguish between three kind of requests accordingly to their associated responses :
- Requests with no expected responses : Unbind, Abandon
- Requests with a single expected response : Add, Bind, Compare, Delete, Extended, Modify, ModifyDN
- Requests with a multiple expected response : Search.

Since RFC 4511 introduced the Intermediate response, things have changed. Any request expecting a response may have a multiple response, assuming that it has been sent with a control which semantic implies that we may receive zero to many intermediate responses.

We cannot then distinguish requests in more than two kinds : those with no response, and those with multiple responses.


Hierarchy :
----------

In order to reflect this, we can define a pretty simple hierarchy of <interfaces> ad [classes] :

<LdapMessage>
  ^
  |
  +-- <Request>
  |      ^
  |      |
  |      +-- <RequestWithResponse>
  |      +-- <RequestWithoutResponse>
  |
  +-- <Response>
         ^
         |
         +-- <SearchResponse>


<Abandonable>


<RequestWithResponse> <--+
                          \
+-- [AddRequest], [BindRequest], [CompareRequest], [DeleteRequest], [ExtendedRequest], / [ModifyRequest], [ModifyDnRequest], [SearchRequest]
<Abandonable> <----------+


<RequestWithoutResponse> <-- [AbandonRequest], [UnbindRequest]

<Response> <-- [AddResponse], [BindResponse], [CompareResponse], [DeleteResponse], [ExtendedResponse],
               [ModifyResponse], [ModifyDnResponse], [IntermediateResponse]

<SearchResponse> <-- [SearchResultEntry], [SearchResultReference], [SearchResultDone]


Thoughts ?

--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com


Reply via email to