High Level Design - Project Management

University of Edinburgh
_____________________________________________________________________________________________
Migrate IDM to Oracle SOA Suite 11g and
Upgrade Grouper
High Level Design
COM007
Document Version: 1.1
Date: 29/07/13
__________________________________________________________________________
Information Services
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
Contents
1
1.1
1.2
2
2.1
3
3.1
3.2
4
DOCUMENT MANAGEMENT .................................................................. 3
Contributors ........................................................................................ 3
Version Control ................................................................................... 3
INTRODUCTION ...................................................................................... 4
Grouper upgrade R&D ........................................................................ 4
IDM PATCHING STRATEGY ................................................................... 5
SOA patching ...................................................................................... 5
Database patching .............................................................................. 5
ITERATIONS ............................................................................................ 6
4.1
Iteration One – Outbound processing migration .............................. 6
4.1.1
10g Outbound processing issues ................................................... 6
4.1.2
Queue management ...................................................................... 6
4.1.3
Queue archive and Error handling ................................................. 7
4.1.4
Composite design .......................................................................... 8
4.1.5
Push versioning ............................................................................. 8
4.1.6
Service definitions and notification control ..................................... 8
4.1.7
IDM Administrative UI .................................................................... 9
4.2
Iteration Two – Inbound processing migration ............................. 10
4.2.1
Current inbound processing issues .............................................. 10
4.2.2
11g queue management .............................................................. 10
4.2.3
Queue archive and Error handling ............................................... 10
4.2.4
Composite design ........................................................................ 11
4.2.5
API clean-up ................................................................................ 11
4.3
Iteration Three – Pull web services migration ................................ 12
4.3.1
10g Pull web services issues ....................................................... 12
4.3.2
“Get” web services ....................................................................... 12
4.3.3
Change push subscription............................................................ 13
4.3.4
Get identity service....................................................................... 13
4.4
Iteration Four – Grouper upgrade .................................................... 14
4.4.1
LDAP Provisioning ....................................................................... 14
4.4.2
Default group type ........................................................................ 14
4.4.3
Grouper Hook .............................................................................. 14
4.5
5
Iteration Five – VRS Fixes ................................................................ 14
REFERENCES ....................................................................................... 15
__________________________________________________________________________
Page 2 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
1 Document Management
1.1 Contributors
Please provide details of all contributors to this document.
Role
Author
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Unit
Applications Division
Applications Division
Applications Division
Applications Division
Applications Division
Applications Division
Name
Richard Good
Chrisann Macsween
Michael Sun
Alex Carter
Chris McKay
Stevie Conlon
1.2 Version Control
Please document all changes made to this document since initial distribution.
Date
10/06/13
29/07/12
Version
1.0
1.1
Author
Richard Good
Richard Good
Section
All
4.1.3
4.1.5
4.2.3
4.3.4
Amendment
Initial Draft
Add indexing note
End to end processing
clarification
Note on UUN addition to
archive, indexing.
Clarify calling client can
change settings
__________________________________________________________________________
Page 3 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
2 Introduction
This document details the high level design for both the migration of the IDM
from SOA 10g over to 11g, and the upgrade of Grouper.
SOA 11g is different in a number of ways:




It is now deployed on Weblogic
It requires the use of Service Composite Architecture applications
(henceforth referred to as SCA)
It can use BPEL 2.0 processes
It has an easy to use Event Delivery Network (henceforth referred to as
EDN)
NOTE: For more details on new features, refer to the SOA 11g feature
evaluation.
In order to safeguard the transition from 10g to 11g, the project will not go for
a “big bang” approach. It will instead transition various functional components
in a series of iterations.
The main sections which follow cover the iterations we will follow to migrate
the IDM.
NOTE: This high level design will not exhaustively go through the
resolution of all issues identified in the IDM Known Errors list, they will
be addressed via the individual design specifications for an iteration.
2.1 Grouper upgrade R&D
An evaluation of Grouper has been carried out, the results of which can be
found on Insite at:
https://www.wiki.ed.ac.uk/display/insite/Grouper+2.1.x+evaluation
The main summary points are:


We will be moving to Grouper 2.1.4
We will move to using incremental provisioning for Central Auth
__________________________________________________________________________
Page 4 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
3 IDM Patching strategy
As part of the migration, all code will be moved over to SVN, and will conform
to the Software version and release standards.
3.1 SOA patching
SOA patching will be done via Apache Ant automated deployment, as per the
SOA development standards.
3.2 Database patching
The standards currently do not include database patching specifically. In order
to address changes to the IDM table and PL/SQL API, a database patching
strategy will be adopted such that:


A tagged release contains roll-forward and roll-back patching scripts for
any database changes.
We introduce the ability to patch the IDM database schemas in an
automated fashion (either forwards or backwards).
To do so, we will make use of Apache ANT, and introduce a table in the IDM
schema which indicates which release version of the IDM the database is
using.
NOTE: We will re-use scripts which have been created for other IS
Applications software to do this.
__________________________________________________________________________
Page 5 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
4 Iterations
Each of the following iterations will be deployed to live in a discrete package,
and will have a separate System Design Specification.
The introduction of SCA applications in SOA 11g gives us a convenient way
of grouping together functional service components. This also allows us to
effectively “hide” services from the outside world, which gives added security.
4.1 Iteration One – Outbound processing migration
This iteration concentrates on migration of the outbound “push” SOA
processes for the IDM.
4.1.1 10g Outbound processing issues
On the current 10g version of the IDM, the following are seen as the main
issues with outbound processing:





The outbound processing queue gets too large, and causes the queue
processing to stall
Services receive many notifications which are of no interest to them
The service definitions which control notifications do not work as
specified
Notifications for the same identity occasionally go out together, but in
the wrong order (i.e. update before insert), and cause certain services
to fail notifications
It is often difficult to troubleshoot failures at a java connector level (the
log files have to be used)
4.1.2 Queue management
In order to better manage the queue, we will leverage a few new features of
SOA 11g.
Firstly, notifications will be given a priority when they are inserted into the
queue. This will allow us to fast-track certain changes through the system.
Queue entries will now be de-queued (deleted) from the notification queue.
This will help keep the table size down, and should therefore speed up
processing. De-queued changes will be published as an event to the EDN.
In addition, we will make use of mediator message re-sequencing in order to
prioritise the messages.
__________________________________________________________________________
Page 6 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
Message
(Priority 1)
Message
(Priority 2)
Queue
SOA
Handler
Event Publisher
Message
(Priority 3)
Figure 1. Event queue publisher
4.1.3 Queue archive and Error handling
Currently, a nightly process runs which archives off notification messages.
Since the queue will change to de-queuing messages, both archival and error
handling will have to change.
Instead, successful process of a change message will insert the message
directly into the archive, and failure to process a message will insert a
message back into the queue with a failure status code.
Receive
Message
Process
Notification
Submit
change error
Archive
change
Figure 2. Archive and error handling
NOTE: The move to immediate archival will include the creation of
indexes on the archive table(s) for support and reporting purposes.
__________________________________________________________________________
Page 7 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
4.1.4 Composite design
A composite will be built which conforms to the following:




The composite will have unit tests which cover all aspects of process
flow, including error testing
There will be no externally callable components, except where they are
for the support of unit testing
It will make use of the EDN publish/subscribe to generate notification
events
In order to ensure that timeout of calls to external services do not
cause the notification to , the notification composite should be moved
to asynchronous, and should have an extended timeout to manage the
correct error handling
4.1.5 Push versioning
There are currently 2 versions of push which run on the IDM:


Version 1, or legacy connector is to support ITI Unix services
Version 2 is for the other services
It is proposed that we create a Version 3 service push model, whereby a
service connector is written purely in a composite, as a subscriber to
notification events.
The benefit of doing so will be to see full end-to-end notification processing
from within the Weblogic UI, which would be of great benefit for support
purposes.
As part of this, we will produce a Version 3 service as a proof of concept. It is
proposed to use the Discussion Forums service, as that is both low risk, and
also experiences a significant amount of errors on the current live IDM which
slows down processing.
NOTE: Full end-to-end notification processing view via the Weblogic UI
would only be possible for Version 3 services, other push services would
only show viewing of service response (and not the audit of what the
service did with the notification).
4.1.6 Service definitions and notification control
In order to better control both the number of notifications generated, and also
reduce the required complexity of connectors, the service definition should be
updated. Broadly, on a service by service basis:
__________________________________________________________________________
Page 8 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________




Notification generation and notification push settings are separate
things and should have separate on/off switches
Entitlement notifications should be able to be switched on/off
Insert/Update/Delete notifications should be able to be switched on/off
Group and Identity notifications should be able to be switched on/off
In addition, the way in which a contact is added to the IDM should be updated,
such that:



A contact’s primary key is email address, and there should only be one
per unique contact
It should be possible to create/update/delete contacts
Contacts should be easily assignable to a service
4.1.7 IDM Administrative UI
In order to alleviate some of the problems with the current Cold Fusion
VRS/IDM User Interface, it is proposed to implement a new UI in order to
implement the service administration screens.
VRS UI
VRS/IDM
UI
IDM UI
Doing so will allow us to make the necessary changes to the administration
UI, and also allow us to transition elements of the existing Cold Fusion UI at a
future date.
Features included in this iteration would be:

Service administration (for existing services)
__________________________________________________________________________
Page 9 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
4.2 Iteration Two – Inbound processing migration
This iteration focuses on migration of all the SOA processes responsible for
receiving with inbound requests, making changes to the IDM, and generating
notifications.
4.2.1 Current inbound processing issues
On the current version of the IDM, the following are seen as the main issues
with inbound processing:



The inbound processing queue can become large, which can cause the
queue processing to stall
Timeouts can occur for large/complicated processing changes
Changes for the same identity occasionally come in together, and get
processed in the wrong order (i.e. update before insert), causing
processing issues
4.2.2 11g queue management
In order to better manage the queue, we will leverage a few new features of
SOA 11g.
Firstly, changes will be given a priority when they are inserted into the queue.
This will allow us to fast-track certain changes through the system.
Queue entries will now be de-queued from the process queue. This will help
keep the table size down, and therefore make it far less likely that the query
on the table will end up timing out. De-queued changes will be published as
an event to the Event Delivery Network (see Figure 1).
In addition we will make use of mediator message resequencing in order to
better manage the ordering of notifications. Specifically, we will use Best
Effort resequencing, ordered by the change date and grouped by priority. That
way changes should be sequenced in the correct order, and grouped by
priority so that high priority messages are processed first.
4.2.3 Queue archive and Error handling
Currently, a nightly process runs which archives off process queue messages.
Since the queue will change to de-queuing messages, both archival and error
handling will have to change.
Successful process of a change message will now insert the message directly
into the archive, and failure to process a message will insert a message back
into the queue with a failure status code (see Figure 2).
__________________________________________________________________________
Page 10 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
In addition, a new table should store a list of identities which have failed
changes, and therefore require synchronisation.
Finally, failed changes should be archived after a suitable period of time (to be
agreed).
NOTE: Archival of an identity change without a uun (such as from HR)
will add the UUN at the archival stage. The archive will also be indexed
appropriately for support and reporting purposes.
4.2.4 Composite design
A composite will be built which conforms to the following:





The composite will have unit tests which cover all aspects of process
flow, including error testing
There will be no externally callable components, except where they are
for the support of unit testing
It will make use of EDN publish/subscribe to generate change events
In order to avoid transaction timeouts, the composite should be moved
to asynchronous, and should have an appropriate timeout (to be
agreed) set to manage the correct error handling
Grouper interactions will be moved into a set of externally callable SOA
processes
o getGroup_ep
o createGroup_ep
o setGroup_ep
o deleteGroup_ep
o addGroupMember_ep
o deleteGroupMember_ep
o getGroupMembers_ep
4.2.5 API clean-up
The current API contains many redundant procedures and functions. As part
of the migration process, all redundant code and packages should be
removed, leaving only procedures which are actually in use.
__________________________________________________________________________
Page 11 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
4.3 Iteration Three – Pull web services migration
This iteration focuses on migration of the SOA processes supporting pull
requests.
4.3.1 10g Pull web services issues


Only a limited subset of web services are currently used
The identity web service returns all data for an identity, which is often
more than a service needs
4.3.2 “Get” web services
For reference, the current pull web services are:







bpelIDMAcknowledgeChange – Allows a service to acknowledge a
processed change
bpelIDMChangePushSubscription – Allows a service to change their
push subscription
bpelIDMGetChanges – Allows a service to request a number of
notification changes
bpelIDMGetGroup – Allows retrieval of a group (from Grouper)
bpelIDMGetGroupMembers – Allows retrieval of group memberships
(from Grouper)
bpelIDMGetIdentity – Allows retrieval of a specific identity
bpelIDMIsGroupMember – Returns whether an identity is a member
of a group
All of the web services in the above should be reviewed and enhanced as
necessary, including the creation of unit tests to support them.
The services should also be renamed as per the new naming standards,
which will mean as follows:

bpelIDMAcknowledgeChange → setChangeAcknowledged_ep

bpelIDMChangePushSubscription → setPushSubscription_ep

bpelIDMGetChanges → getChanges_ep

bpelIDMGetGroup → getGroup_ep

bpelIDMGetGroupMembers → getGroupMembers_ep

bpelIDMGetIdentity → getIdentity_ep

bpelIDMIsGroupMember → isGroupMember_ep
In addition, the externally callable Grouper processes in the inbound iteration
should be made available for authorised services to use.
__________________________________________________________________________
Page 12 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
4.3.3 Change push subscription
This service should be updated as per the changes recommended in Section
3.1.6.
4.3.4 Get identity service
It should be possible to do a simple lookup of an identity without returning all
the details of get identity. The current service should be modified to support a
calling client being able to:






Switch affiliation retrieval on/off
Switch address retrieval on/off
Switch email retrieval on/off
Switch org retrieval on/off
Switch programme retrieval on/off
Switch course retrieval on/off
__________________________________________________________________________
Page 13 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
4.4 Iteration Four – Grouper upgrade
This iteration will focus on upgrading Grouper to 2.1.4.
4.4.1 LDAP Provisioning
The new version of Grouper allows for incremental change based provisioning
of LDAP. This iteration will move the new Grouper installation to use change
based provisioning.
4.4.2 Default group type
A new default group type should be introduced, which performs the following:


Creates a gid attribute
Creates a source attribute (which Golden Copy source system the
group comes from)
4.4.3 Grouper Hook
The grouper hook should be modified as follows:


The creation of the gid attribute should be removed, as it will be
created by the default type
Group notification creation should respect the service definition settings
in Section 3.1.6
4.5 Iteration Five – VRS Fixes
The final iteration will be a series of fixes to the VRS interface, as per the IDM
Known Errors list pulled together for the start of this project.
Other than the move to create a new administration UI (see Section 3.1.7),
there is nothing specific to add to this iteration.
__________________________________________________________________________
Page 14 of 15
IDM Migration – High Level Design
[Version: 1.0]
_____________________________________________________________________________________________
5 References





Grouper evaluation
Mediator resequencing
SOA 11g feature evaluation
SOA Development standards
Software Version and Release Standards
__________________________________________________________________________
Page 15 of 15