[midPoint] How to connect a resource that only really implements a sync method for a particular object class
Pavol Mederly
mederly at evolveum.com
Mon Apr 27 11:06:03 CEST 2020
Hello Chris,
we have recently implemented this "messaging-only" approach for
Grouper-midPoint integration demo prepared for Internet2 InCommon
Trusted Access Platform.
It does not use ConnId resources, mainly because of the architectural
mismatch regarding "sync token" concept; and the acknowledgment of
processed messages. (This is not to say that ConnId cannot be used in
this case! It just does not fit perfectly.)
Instead it uses a new mechanism called asynchronous update. (Now I see
it's not much documented... but some ideas are here:
https://wiki.evolveum.com/display/midPoint/Messaging+Resources#MessagingResources-SourceResources).
The connector we use has two parts:
1. fully functional REST connector that works synchronously,
2. asynchronous connector that receives and processes AMQP messages.
This is the configuration:
https://github.internet2.edu/docker/midPoint_container/blob/master/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/resource-grouper.xml.
(With the related custom function library:
https://github.internet2.edu/docker/midPoint_container/blob/master/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/function-library-grouper.xml).
Now, back to your question:
1. What we have done corresponds to your option "a". Besides
asynchronous part there is also a fully functional synchronous part.
The main reason of its existence is that we need to be able to do
occasional full reconciliation - something that is not possible with
pure messaging approach. Note that we have the caching turned on
even if we have this option. We need to be able to quickly determine
group membership information from the cached group information.
2. But your "b" way should be also possible. You should be able to
simply declare connector as "not supporting queries" and rely on
shadow caching. We have some tests in this respect, see e.g.
https://github.com/Evolveum/midpoint/blob/a30ecaafa648564f619c3d7e3936a66300c3b61e/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/async/TestAsyncUpdateUcf.java.
Note that the "asynchronous update" feature is somewhat experimental for
now. But it seems to be working well. It supports AMQP sources only but
was designed to be easily adaptable to other types of data sources. JMS
is obvious first candidate.
Best regards,
Pavol Mederly
Software developer
evolveum.com
On 26/04/2020 16:32, Chris Woods wrote:
>
> Dear all,
>
> we have just finished implementing the Org Management code for our SAP
> HCM connector. We receive the messages via JMS and have implemented
> the sync code for that. All working fine too – the focus objects
> (Organisations) are created ok. The only issue is, there is no query
> method available as this is purely JMS based – so trying to perform
> recalculation on an organization throws a connectorexception regarding
> the non-implementation for this objectclass.
>
> What options do we have? a) implement a query method for this
> objectclass (ok, this will obviously fix the problem – but require
> more work) b) Make a new instance of the connector only for this
> objectclass and switch on shadow caching c) something else that I
> haven’t thought of?
>
> Does this maybe need converting to a task rather than syncing through
> the connector?
>
> Any ideas greatly appreciated J
>
> Regards
>
> *CHRIS WOODS*
>
> Identity Management
>
> Information and Business Technology
>
> Rohde & Schwarz GmbH & Co. KG
>
> Mühldofstraße 15| 81671 München
>
> Telefon: +49 89 4129 15735
>
> Internet: https://www.rohde-schwarz.com <https://www.rohde-schwarz.com/>
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> https://lists.evolveum.com/mailman/listinfo/midpoint
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20200427/080322cd/attachment.htm>
More information about the midPoint
mailing list