Here are the notes I took when reviewing all of these services:
if the "mode" for a particular module is local, then that means that it is "bundled". In these cases then this means the application is either the Rice standalone server or an application with all of Kuali Rice bundled with it and intended to be deployed without a Rice standalone server. In the case that the mode is "embedded" there are certain services that should not be published to the service bus.
Next I'll break down each of the services for the different module and include whether it should be exported when the run mode is "local" or "embedded". For those that are exported when "embedded" they should also be automatically exported if the run mode is "local" (but not vice-versa!)
Also, I will indicate which namespace the service is deployed under whether it's "constant" or "application" namespace. The former would mean that it's always published under a specific namespace (i.e. KEW) the later means it's published under a namespace which matches the client application from which the service is published (i.e. KFS)
The items with stars have notes related to them below.
WorkflowDocumentActionsService - embedded - application
WorkflowDocumentActionsServiceSOAP - embedded - constant
WorkflowUtilityService - embedded - application
WorkflowUtilityServiceSOAP - embedded - local
simpleDocumentActionsService - local - constant
- enActionListEmailService - local - application
WorkgroupMembershipChangeService - local - application
ResponsibilityChangeService - local - constant (namespace is empty)
DocumentRoutingService - embedded - application
BlanketApproveProcessorService - embedded - application
SearchableAttributeProcessorService - embedded - application
DocumentRequeueProcessorService - embedded - application
RuleCacheProcessorService - local - constant (namespace is empty)
- RolePokerProcessorService - embedded - application
- ImmediateEmailService - local - constant (namespace is empty)
ActionInvocationProcessor - embedded - application
MoveDocumentProcessor - embedded - application
routeLogDerivedRoleTypeService - local - constant
actionRequestDerivedRoleTypeService - local - constant
adhocReviewPermissionTypeService - local - constant
reviewResponsibilityTypeService - local - constant
1) Why is enActionListEmailService being exposed on the bus? It was published in 0.9.1.4 but I'm not sure exactly what it's needed for
– Update: discovered this wasn't really used so it's no longer being exported
2) Should the RolePokerProcessorService really be published by every client application
– Update: Yes it should because the implementation uses FlexRM which should essentially run in the context of the embedded workflow engine
5) In 0.9.1.4 it was possible to run the immediate email service locally instead. Is this something we even want to allow?
– Update: I really can't think of a good reason for this to be run for embedded clients because it would require the client application to configure the email service.
6) General question: do we need to allow client applications to individually choose services that can run locally or remotely? For example, run the Identity and Group services remotely, but run the permission service locally?
– Update: Possibly, but that would probably be something that's out of scope for the 1.0.1 patch.
All of these services are - local - constant
IdentityManagementNotificationService - local - constant
These shouldn't be published at all I think (see notes below)
1) kimAuthenticationService shouldn't even be exported
– Update: yes, this shoudl really only be deployed in a client application so there's no need to publish it on the bus. However, it's currently defined in KIMImplementationSpringBeans and should be in KIMInterfaceSPringBeans so that it gets loaded for the client application.
2) All of the kim services should only be published to the service bus from the standalone Rice server and should have a constant value KIM (or a url in the case of webservices) for the namespace.
3) kimUiDocumentService probably does not need to be exported to the service bus (is there a reason why it would need to be?)
– Update: I can't find a reason for this to be exported, I will remove it's exporter
riceApplicationConfigurationService - embedded - application
The following should not need to be published to the service bus as it should be expected that they will be deployed alongside KIM services where they don't need to be accessed over the bus.
KCB-MessagingService - local - constant
KCB-MessageDelivererRegistryAPI - local - constant
sendNotificationKewXmlService - local - constant
sendNotificationKewXmlSOAPService - local - constant
KEN-KENAPIService - local - constant
1) The KCB-MessagingService needs to be a constant and only exposed by the standalone server/local run mode, same with KCB-MessageDelivererRegistryAPI
2) The KEN services should only be exposed in local mode