Level: Intermediate Indrajit Poddar (ipoddar@us.ibm.com), Software Architect, IBM Devaprasad Nadgir (devaprasad@in.ibm.com), IBM Certified Senior IT Architect, IBM
27 Jul 2009 Part 1 of this series describes multi-tenancy and several technical challenges
faced by service providers for deploying multi-tenant web-delivered solutions. In
part 5, we presented a mediation approach for addressing this challenge and introduced three implementation options using multiple IBM middleware products. In this tutorial, we describe detailed implementation steps for one of those three options i.e. how to use WebSphere Business Services Fabric in the context of a example multi-tenant banking application scenario also introduced in part 5.
Before you start
About this tutorial
WebSphere Business Services Fabric (WBSF) offers the ability to dynamically
select web service endpoints based on business policies. Business policies are
defined using assertions on properties in the web service request. Assertions
on similar properties are also associated with web service endpoints to describe the capabilities unique to that endpoint. The referenced article in the Resources section describes the dynamic endpoint selection capability in greater details. WBSF also offers the ability to extend its core ontology to define new assertions and web service context properties for the assertions to act on.
In this tutorial, we will demonstrate how to exploit the dynamic endpoint selection capability in WBSF to bind service requests from a tenant’s user to tenant specific endpoints. We will also show how to take advantage of the built in concepts of Organizations and users and the Subscriber Manager functions to offer tenant specific access control to multi-tenant services. Finally, we will show how to keep track of the invocations for each tenant through the built in Performance Manager functions.
Figure 1. Dynamic assembly of tenant
specific business service endpoints with business policies based on a TenantID assertion
In part
5, of this series a scenario and use case was described with Sam Peters as the service
provider administrator for the Jivaro bank multi-tenant application. In this tutorial, we will show how Sam Peters can use WBSF to implement a mediation approach. Figure 1 describes the components of the WBSF implementation option. Sam Peters will use the following major steps in this implementation approach:
- Define a composite business service with routing policies
- Enroll tenants organizations and users to business services
- Monitor tenant specific service usage
Prerequisites
Sam Peters will use the following IBM development tools to enable multi-tenancy
for his credit check Web service solution:
- WebSphere Integration Developer (WID) v6.1
- Rational Software Architect (RSA) v7.0.05
- WebSphere Business Services Fabric Tool Pack (WBSF-TP) v6.1
- WebSphere Business Services Fabric Modeling Tool – A plug-in for RSA v7
(WBSF-MT)
- WebSphere Business Services Fabric Server – Foundation Pack – v6.1
(WBSF-FP)
In order to deploy multiple instances of the credit check Web service, the following software needs to be available:
- WebSphere Process Server v6.1
- WebSphere Portal Server v6
- Tivoli Directory Server v6.0
The following prerequisite configuration is required (see Resources):
- Web services implementation for Expo and S&R enterprises are deployed on the WebSphere
Process Server. The ear files for these services are attached to the demo page.
(Expo_SandR_ThirdParty_Credit_Score_Implementation_20080429.zip)
- The Credit score portlet is deployed on a WebSphere Portal Server. The ear file for
the portlet is attached to the demo page.
(SaasCreditCheckPortlet31_14thmay.war)
- Portal server is configured
with websphere member manager and is integrated with LDAP. Please see the
WebSphere Portal Server Info center for more information:
http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index.jsp
- LDAP is configured with multi-tenant directory structure for FirstBank N.A and Second Canada Bank. The LDIF files are attached to the demo page. (Tenant_Banks_LDAP_Structure.ldif)
|