[midPoint] How to connect a resource that only really implements a sync method for a particular object class

Chris Woods chris at cmwoods.com
Mon Apr 27 16:41:41 CEST 2020


Hi Keith,

I saw rabbitmq was being used in the grouper solution too.

We are using Apache Artemis which also supports both.

I'm just experimenting now :)

Regards,
Chris

Am 27. April 2020 15:47:33 schrieb Keith Hazelton <hazelton at internet2.edu>:
> Chris, Pavol,
>
> RabbitMQ can support both AMQP and JMS, see details at
> https://www.rabbitmq.com/jms-client.html
>
> --Keith Hazelton
>
> From: midPoint <midpoint-bounces at lists.evolveum.com> on behalf of Pavol 
> Mederly <mederly at evolveum.com>
> Sent: Monday, April 27, 2020 4:06 AM
> To: midpoint at lists.evolveum.com <midpoint at lists.evolveum.com>
> Subject: Re: [midPoint] How to connect a resource that only really 
> implements a sync method for a particular object class
> 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:
> fully functional REST connector that works synchronously,
> 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:
> 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.
> 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
>>
>>
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com
>> https://lists.evolveum.com/mailman/listinfo/midpoint
> _______________________________________________
> 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/49439983/attachment.htm>


More information about the midPoint mailing list