Addressing Software-as-a-Service Challenges by using IBM Middleware

advertisement
Addressing Software-as-a-Service Challenges by using IBM Middleware
Building a software-as-a-service solution requires addressing a few key technical
challenges. In a set of recorded demonstrations, we will show how to address a number of
these technical challenges through a set of architectural patterns exploiting key features in
IBM middleware.
One of the most important technical challenges faced by architects when building a
software-as-a-service solution, is multi-tenancy.
Multi-tenancy refers to the ability to host a single instance of a software solution that
serves multiple client organizations.
In the first demo in this series, we will show an approach for supporting multiple tenants
on a single instance of an application server.
We will also show how multiple roles can be supported for each tenant and how a a new
tenant can be provisioned on this single instance of the application server.
In order to demonstrate how to address the multi-tenancy technical challenge, we have
constructed a fictitious multi-tenant banking application.
This banking application provides different virtual portals for different banks on a single
instance of WebSphere Portal Server.
Each virtual portal is configured with its own look-and-feel elements to provide unique
branding for each bank.
Each virtual portal supports isolation of user populations for each tenant bank through a
multi-tenant LDAP tree structure in a single instance of Tivoli Directory Server.
Each tenant bank supports a set of banking scenarios targeted towards common banking
roles as illustrated in this chart.
For example, the bank administrator role for each tenant bank can add or delete bank
customers for their respective banks as well as view and update customer profiles.
More details are included in the recorded demonstration. Links to the demos are
available at the end of this presentation.
The second technical challenge in a SaaS implementation is how to enable a unique user
experience.
How can the user interface layer in the multi-tenant application be customized for
different tenants through configuration, as opposed to writing new application code?
By using the WebSphere Portlet Factory dynamic profiles feature in conjunction with
virtual portals, a developer can create multiple highly customized applications from one
code base.
Through dynamic profiles an application developer can define variables in a common
‘profile set’ that can be configured by each tenant’s administrator at runtime.
Tenant specific customizations can be created by applying those configured profiles to
their portlets at runtime to change the appearance, content and behavior of the portlet.
For example, the provider administrator can configure the portlet fields ‘account name’
and ‘account description’ to show in bank1’s “add account for customer” portlet.
However, these fields can be hidden from the same portlet for bank2.
A provide administrator can also change the list box selections for the Account type
element so that the choices differ amongst the tenants.
In this demo we will describe how to implement, manage and specify profiles for
multiple tenant banks.
The third technical challenge in a SaaS implementation is how to configure the data tier.
There are varying degrees of data isolation for a SaaS application that range from an
isolated environment to a shared environment, including shared database tables.
This demo will address how can you use a shared database environment (as opposed to
an isolated database environment) for supporting a multi-tenant data tier in a SaaS
application.
When considering a data architecture in a shared environment, an important challenge a
SaaS provider is faced with is how to customize the database schema for each tenant.
One way to provide a very high degree of customization requiring minimal application
changes is to use the pureXML capabilities provided in DB2 version 9.
In the sample banking application, this scenario will show how to share database schema
across two tenant banks through the use of a bank id column and an xml column in each
of the database tables.
Through the use of an XML column to hold the tenant-specific data, we are able
configure each tenant’s data as simply as you could by using custom columns in an
isolated database environment.
In addition, by using the same XSD with optional XML elements, we are able to use the
same web services across tenants to update and maintain the tenant-specific data.
The final technical challenge addressed in this series of demos is security. There are
three security challenges that are addressed in the sample banking application.
The security demos will explain how to prevent the user population of one tenant from
accessing the virtual portal and portlet components of another tenant.
Also explained is how to enforce access control for the different roles for each tenant.
Lastly, how can you ensure that human tasks in a workflow are assigned to the
appropriate roles?
In order to address these security challenges for multi-tenancy, the following product
features were exploited :
-WebSphere Portal multi-realm security was used to isolate the user populations for each
tenant bank so that a user for one bank can only authenticate to the virtual portal for that
bank.
-WebSphere portal access control was used to restrict access to portal pages and portlets
by role
-WebSphere Process Server was used to assign human tasks in BPEL processes to
specific bank roles.
-A Tivoli Directory Server user registry was used to assign each tenant’s user population
to different LDAP subtrees.
More details can be seen in the set of three security demos.
This chart depicts IBM’s enterprise-class offerings which were used to build the sample
Software-as-a-Service banking application.
WebSphere™ Portal Server version 6.0 was used to build virtual portals with
configurable JSR-168 standard portlets for supporting multi-tenancy.
WebSphere Process Server version 6.0 was used to host shared SCA modules, BPEL
processes, WebServices and J2EE components for multi-tenancy.
DB2 v9.1 was used to build shared databases.
Multiple Tivoli Security products, for example Tivoli Directory Server, were used to
secure our software as a service solution.
Rational Software Architect, WebSphere Integration Developer and WebSphere Portlet
Factory were used for modeling and developing configurable service components and
meta-data.
The developerWorks articles listed here provide more details on the architectural patterns
used for addressing the technical challenges discussed in this demo series.
IBM software provides a number of features which can be exploited to build a Softwareas-a-Service solution
Please click here to view these demos.
IBM has innovative resources and programs to help you manage change & become
relevant in the Software as a Service market. Whether you’re an ISV, System Integrator
or Reseller, we can provide education, support and benefits to help you grow revenue and
differentiate yourself.
The first step will be to join the SaaS community. You will automatically be kept aware
of new SaaS technical benefits and workshops and get the enablement help that you need
to transform your application for delivery in the IBM Software as a Service model.
Then, as a member of IBM SaaS community, you can register at the Virtual Innovation
Center (VIC) where you will get personalized access to product support and education to
help build your Software as a Service knowledge and skills.
As an Advanced level member of PartnerWorld, you have the opportunity to gain access
to additional marketing and sales support by qualifying for the Software as a Service
(SaaS) specialty.
For more information, Visit our main site at www.ibm.com/partnerworld/saas.
Download