[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