Integrated Workforce Registration (IWR)

advertisement
Integrated Workforce Registration (IWR) System
Workforce Integration Profile Page
Software Architecture Design Document
Version 2.2
1
IWRSSoftware Architecture Document
Contents
1
Table of Figures .....................................................................................................................4
1
Introduction ..........................................................................................................................6
1.2
Document Purpose .......................................................................................................................... 6
1.3
Reference Documents...................................................................................................................... 7
1.4
Assumptions..................................................................................................................................... 7
2
System Use Cases...................................................................................................................8
2.1
Use Case Realization ........................................................................................................................ 9
2.1.1
User Management .............................................................................................................. 9
2.1.2
Question Management ..................................................................................................... 10
2.1.3
Registration ....................................................................................................................... 11
2.1.4
Data Exchange................................................................................................................... 13
2.1.5
Profile Page (WIPP) ........................................................................................................... 14
3
Project Roles and Responsibilities ........................................................................................ 19
4
Solution Architecture ........................................................................................................... 20
2
4.1
Presentation Tier............................................................................................................................ 22
4.2
Middle Tier ..................................................................................................................................... 22
4.2.1
Registration ....................................................................................................................... 23
4.2.2
Questions Administration ................................................................................................. 24
4.2.3
Manage Account ............................................................................................................... 25
4.2.4
Self Service ........................................................................................................................ 26
4.2.5
State Profile Manager ....................................................................................................... 27
4.2.6
IWRS Data Service ............................................................................................................. 27
4.2.7
IWRS LDAP Service ............................................................................................................ 27
4.3
Data Tier......................................................................................................................................... 27
4.4
Integration Tier .............................................................................................................................. 28
4.5
Infrastructure Services ................................................................................................................... 28
4.5.1
Logging .............................................................................................................................. 28
4.5.2
Auditing ............................................................................................................................. 28
4.5.3
Validators .......................................................................................................................... 28
4.5.4
Exception Reporter ........................................................................................................... 29
IWRSSoftware Architecture Document
5
Application Structure ........................................................................................................... 30
6
High Level Design ................................................................................................................. 31
6.1
IWRS Client..................................................................................................................................... 31
6.2
WIPP Client .................................................................................................................................... 32
7
Network Infrastructure ........................................................................................................ 33
8
Hosting Solution .................................................................................................................. 36
8.1
Cloud Hosted.................................................................................................................................. 36
8.2
State Hosted................................................................................................................................... 37
9
Single Sign On ...................................................................................................................... 38
10
Technology Stack ................................................................................................................. 40
11
Appendix A: ......................................................................................................................... 48
3
IWRSSoftware Architecture Document
1 Table of Figures
Use Case – Registration .............................................................................................................................. 11
Use Case – User Management ...................................................................................................................... 9
Use Case – Question Management ............................................................................................................. 10
Use Case –Data Exchange ........................................................................................................................... 14
IWRS Solution Architecture......................................................................................................................... 21
IWRS LDAP Structure .................................................................................................................................. 26
IWRS Application Structure......................................................................................................................... 30
High Level Design – IWRS Client ................................................................................................................. 31
High Level Design – WIPP Client ................................................................................................................. 32
IWRS Cloud/State Production Environment ............................................................................................... 34
Cloud Hosted Solution ................................................................................................................................ 36
State Hosted Solution ................................................................................................................................. 37
IWRS Authentication Flow .......................................................................................................................... 38
4
IWRSSoftware Architecture Document
Revision History
Version
Date
Description
Author
DRAFT
2/18/13
Initial version with only Registration
Flow.
GCOM Software Inc.
1.0
3/25/13
Updated all sections based on ITSC
review comments
GCOM Software Inc.
1.1
4/10/13
Updated section 2.1.1 with Registration
common data elements and removed
Mass Upload of Job seekers function.
GCOM Software Inc.
2.0
5/29/2013
Updated user comments from states.
GCOM Software Inc.
Updated WIPP related changes.
2.1
06/21/2013
Removed Tohu references and updated
PrimeFaces in various sections.
GCOM Software Inc.
2.2
06/26/2013
Updated SAD with KK's (ITSC) review
comments
GCOM Software Inc.
5
IWRSSoftware Architecture Document
1 Introduction
The goal of this IWRS and WIPP is to effectively and seamlessly connect unemployment insurance and
workforce systems for the UI claimant/job seeker, through the development and implementation of a
web based IWR system and User Profile Page (WIPP). The Integrated Workforce Registration (IWR)
system will become the point of entry into the state system for unemployed individuals/jobseekers in
the three pilot states (Mississippi, Oregon and New York) that have partnered with NASWA/ITSC for this
project. The profile page acts as a two way communication channel between the state’s workforce
systems, UI/ES/WIA agencies, and the job seeker, providing relevant real time information. The WIPP
standardizes the information contained within the workforce systems (UI, WIA, and ES) as well as the
information gathered from the job seeker during the IWR process. The technology solution will be built
using open source technologies. The development effort will be overseen by ITSC, in partnership with
the three pilot states and the United States Department of Labor (USDOL), Employment and Training
Administration (ETA) Office of Unemployment Insurance.
The Information Technology Support Center (ITSC) is assigned with the task of developing an
Integrated Workforce Registration System (IWRS) under the US Department of Labor (USDOL),
Employment and Training Administration’s national vision to improve the connection and integration of
Unemployment Insurance (UI) and workforce systems.
The goals of the IWRS/WIPP are –
1. An Integrated Registration System that must capture service driven job seeker information.
2. Incorporation of “Real-time Triage” and “Skills Transferability/Job Matching” functionality into
the Integrated Registration System.
3. Provide existing and future real time triage and job match tools, and systems.
4. Provide dynamic and customizable profile page based on the hosting state’s external existing
web interface (look and feel).
5. Provide modular profile page.
ITSC will use a Service Oriented Architecture that will enable Enterprise Application Integration and
reusability of service components across various enterprise applications.
1.2 Document Purpose
This document defines the overall high level architecture of IWR and WIPP system for various use cases
mentioned in the “Connectivity IWR” RFP. The following subjects are described in this document:
•
•
6
System Architecture
IWRS and WIPP Deployment
IWRSSoftware Architecture Document
1.3 Reference Documents
The following documents were used in the preparation of or are referenced within the System
Architecture Document:
1. Connectivity IWR RFP 09252012.pdf (Integrated Workforce Registration (IWR) System RFP)
2. GCOM_WIPP_SOW.docx
3. Tohu Framework (http://www.jboss.org/tohu) PrimeFaces (
http://www.primefaces.org/showcase/ui/home.jsf )
4. Drools Framework http://www.jboss.org/drools/
5. JBoss Application Server (http://www.jboss.org/jbossas)
6. OpenDJ and OpenAM (http://forgerock.com/what-we-offer/open-identity-stack/)
7. Global Unique Identifier (http://en.wikipedia.org/wiki/Globally_unique_identifier)
8. Logging framework
(http://docs.oracle.com/javase/6/docs/technotes/guides/logging/overview.html)
9. Design patterns:http://www.allapplabs.com/j2ee_design_patterns/j2ee_design_patterns.htm
10. RESTful Web Service : http://www.ibm.com/developerworks/webservices/library/ws-restful
1.4 Assumptions
Following assumptions have been made while designing this application architecture:
1. Application components will be built using open source components.
2. Technologies, standards, and methodologies will be selected based upon industry’s best
practices and in accordance with the core objectives of system stability and maintainability.
3. All registration data will be stored in the state systems and will be accessed/updated using bidirectional interface.
4. IWRS will store only configuration related data e.g. state specific configuration (profile,
questionnaire etc.)
5. Agencies responsible for system interfaces will provide the appropriate access for data sharing.
7
IWRSSoftware Architecture Document
2 System Use Cases
IWR system consists of following use cases. Please refer Connectivity IWR RFP 09252012.pdf for
detailed information about each use case.
Manage
Account
Self Service
Question
Administration
Registration
Data Exchange
WIPP
8
Use Case Name
1. Create Account
2. Modify Account
3. Revoke Account
4. Create User Group
5. Modify User Group
6. Delete User Group
1. Forgotten User ID
2. Forgotten Password
1. Question Configuration — New Question(Registration)
2. Question Configuration — Update Question(Registration)
3. Question Configuration — Retire/Expire Question(Registration)
4. Account Administration - Modify SSO related Question(OpenAM)
5. Account Administration - Active/Inactive SSO relates Question(OpenAM)
1. Register New Self-Service Job Seeker
2. Register New Job Seeker with Staff Assistance
3. Returning Job Seeker Who Has Registered Previously
Implementation of Service Interfaces
Workforce Integration Profile Page
IWRSSoftware Architecture Document
2.1 Use Case Realization
2.1.1 User Management
Manage Account
Create Account
Modify Account
Revoke Account
IWRS::System Administrator
Create User Group
Modify User Group
Delete User Group
Use Case – User Management
The User Management use cases will allow an IWRS administrator to manage the user account
information and user groups i.e. roles. User information and roles will be stored in the OpenDJ LDAP.
Following common user information will be captured as part of account creation








9
User ID
Password
First Name
Last Name
Email Address
Birth date (optional)
Zip code (optional)
SSN (optional)
IWRSSoftware Architecture Document


Secret questions and answers
The above fields will be state customizable. Also states can decide how many secret questions they
want to accept.
IWRS will have following user groups (roles)
a. Job Seeker
b. System Administrator
c. State Staff
The system administrator role will allow state system administrator to manage the state specific
configuration while state staff role will allow user to manage registration information on behalf of Job
seeker.
IWRS will use OpenDJ LDAP SDK to create and modify user information in the LDAP.
2.1.2 Question Management
Questions Administration
New Question
Update Question
IWRS::System Administrator
Retire/Expire
Question
Use Case – Question Management
10
IWRSSoftware Architecture Document
The Questions Administration will allow system administrator to manage state specific questions. This
set of use cases allow configuration of data entry questions, their order, and the results derived from
their answers. Once user makes changes to the question set, application will display questions to
administrator in the order in which it will be displayed to the Job Seeker.
IWRS will use Red Hat Tohu framework PrimeFaces (JSF)and custom logic to display dynamic questions
during registration process . JSF validation will be utilized to do Registration field validation and Drools
will be used to do business validation IWRS will present two sets of questions to Job seeker during
registration process. First set is common set of questions which are applicable to all states and second
set of questions will be state specific questions. All questions (state and common) will be stored in the
IWRS centralized database.
2.1.3 Registration
Once job seeker account is created in the system, user will be redirected to complete the registration
information. Registration form will display data elements (questions) which are configured for that
state. User registration information will be stored on the state side and will be retrieved using
Registration interface implemented by state.
Registration
Register New
Self-Service Job Seeker
Returning Job Seeker
Who Has Registered
Previously
IWRS::Job Seeker
Register New Job
Seeker with Staff Assistance
IWRS::State Staff
Use Case – Registration
Registration module will consist of user interface components, business service and web service adapter
to pull information from state interface. First time when user comes to registration screen, application
11
IWRSSoftware Architecture Document
will query user data from the state system and prepopulate the registration screen. Application will pass
following information to query the initial registration information:








User ID
First Name
Last Name
Email Address
Birth date (if available)
Zip code (if available)
SSN (if available)
etc
The following are common data elements that are agreed upon by states ag.
Name
Description
Type
firstName
First Name
Text
lastName
Last Name
Text
emailAddress
Email Address
Text
dateOfBirth
Date of birth
Text
SSN
Social security number
Text
Gender
Sex of the person
Text
Veteran Status
Is user veteran?
Boolean
Migrant SFW
12
Text
Occupation
User’s occupation
Text
employmentStatus
Employment Status
Text
communicationMethod
User’s preferred method of
communication.
Text
Disability
Is Job seeker disabled
Text
primaryLanguage
Primary language of Job seeker
Text
Race
Job seeker race
Text
Ethnicity
Job seeker ethnicity
Text
IWRSSoftware Architecture Document
Name
Description
Type
informedConsent
User consent
Boolean
Education
Education of the user
Text
Residential Address
User’s residential address
Address
Mailing Address
User’s mailing address
Address
Please refer to the registration flow v2.0 document to see the registration process flow and different
parties involved in IWRS registration flow.
Registration flow
v2.0.pdf
2.1.4 Data Exchange
State Systems
State Use Case1
State Use Case2
IWRS::IWRS
.
.
.
State Use Case n
13
IWRSSoftware Architecture Document
Use Case –Data Exchange
IWRS will be responsible for exchanging data with state systems. State systems will publish state
services using SOAP/HTTP web service. As part of initial discussion, following interfaces have been
identified:
Interface Name
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Registration
Profile Data
UI Claim Info
Get Event Info
Get Matching Jobs
Triage
Message Center(Agency/User)
LMI/Job forecast
Navigation to Services
Training and Activities
Jobseeker Personalized Calendar
Motivational Job Seeker Tips
Social Media Links / Feeds
Direction
Pull
Pull
Pull
Pull
Pull
Pull
Pull/Push
Pull
Pull
Pull
Pull
Pull
Pull
The data transmitted between two systems will be encrypted using digital certificate.
2.1.5 Profile Page (WIPP)
Once the job seeker is registered in the system using IWR, he/she will be navigated to profile page.
There will be two types of WIPP users (job-seeker and customer service representative) that the IWR
system will integrate with the Workforce Integrated Profile Page. The profile page will act as a two way
communication channel between the state’s workforce systems, UI/ES/WIA agencies, and the job
seeker, providing relevant real time information. The profile page will standardize the information
contained within the workforce systems (UI, WIA, and ES) as well as the information gathered from the
job seeker during the IWR process.
The profile page will have following sections which will be displayed based on user profile information
and state configuration.
a)
b)
c)
d)
e)
f)
14
Job Postings
Navigation to services
Profile Summary
Message Center
Agency Message Center
Training and Activities
IWRSSoftware Architecture Document
g)
h)
i)
j)
k)
l)
m)
n)
UI Claim Info
LMI/Job Forecast
Job Seeker Tips
National Tools
Job-Seeker Personalized Calendar
Social Media Links / Feeds
User Chat
Motivational Job Seeker Tips
2.1.5.1 Job Postings
The online job match section will be used to provide the job seeker with available job openings,
harnessing the job match functionality of the state system (i.e. O*Net code or skills-based), provided
real time. If a job-seeker clicks on a specified job posting, the Profile Page will capture the “click” the job
seeker accessed and prompt the job- seeker next visit for additional information (i.e. applied,
interviewing, didn’t get it, not interested)
a) Interfaces: A generic interface will be created to pull the data from the state job bank. The job
seeker will have the option to specify how many postings will be displayed with a lower and
upper limit. This function will be updated real time.
b) Data provided from initial registration (O Net code, education level, skills, etc….) will feed and
inform the state job bank to return the postings. The quality of the job matches will be
determined by the amount and quality of information the job seeker provides, which will be
stressed to the jobseeker.
2.1.5.2 Navigation to Services
Using the information that is provided by both the initial registration and data stored within the
workforce systems that is gathered as part of triage component, recommendations of services (online
training, including free training, OR’s NRCC training) will be provided to the job seeker. The services will
be dynamically analyzed based on listed information and qualifications of the job seeker (the ability to
navigate to appropriate programs and services they are eligible for). The system (“intelligence”) will
provide recommendations and push people to services. Conducts gap analysis of the job seeker based
on skill sets, education level, and job experience. All recommendations within this section are solely
based on online self service capabilities provided by the state’s online system.
2.1.5.3 Profile Summary
All information that is gathered from the job seeker will make up a combination of the job seeker
registration personal profile.
An interface to the different workforce systems will provide the state system data information. The IWR
system is not the system of record for any of the collected data except for the initial registration of a job
15
IWRSSoftware Architecture Document
seeker. Once the other workforce system eligibility process is completed, it will maintain the system of
record for the job seeker.
The state will provide the appropriate interface to their systems to gather and disseminate the
information to and from the different workforce systems.
2.1.5.4 Message Center
This section of the Profile Page is provided to the job seeker to act as the primary contact channel
between the job seeker and the agencies (WIA, ES and UI). This section will allow Real Time Triage
components (identified and developed by states) as well as other Workforce systems to send automated
messages and receive messages from the job-seeker. Additionally, information from this section shall
be routed to the appropriate groups within the hosting agencies email list. The information in this
section may not be enabled by all agencies if there is no current email routing solution established to
the different workforce partners.
a) Basic email interface shall be developed to handle both input (receipt) and output (sending)
of information by the job seeker.
b) Internal users will use the existing interface to respond to all messages from the jobseeker.
c) A question based routing process shall be developed to understand the appropriate
user/agency to receive the correspondence. This process shall take place prior to allowing
the user to enter in specific information or a question.
d) Templates for information provided could change based on destination of the
correspondence (i.e. if info is provided to UI, identification information may be required).
2.1.5.5 Agency Message Center
This section will be used to provide agency generic or directed messages from the workforce agencies to
the job seekers. Based on information that the profile page will know about the job seeker (i.e. veteran,
recently unemployed, etc.) directed messages could be posted by the agency as a broader group.
Information in the section will be different for each state.
2.1.5.6 Training and Activities
The information and content in this section will be populated based on the job seeker’s local One Stop
calendars, providing information on upcoming workshop sessions (i.e. resume building, interviewing,
social media for job search, dressing for success, etc.), job fairs, employer recruitments, job clubs etc.,
that job seekers can attend. The information that is populated in this section must be pulled in to the
Profile Page based on the One Stop system’s current and future capabilities (Localization area to allow
different regions to put/list/feed what’s important to them).
a) The information in this section will only provide events that the job-seeker qualifies for
within their local area.
b) Once a job seeker selects to participate in an event then the appropriate information will be
captured within their personal calendar as well as register the job seeker for the event.
16
IWRSSoftware Architecture Document
2.1.5.7 UI Claim Info
Provided by the state UI Agency, this section will act similarly to an Inquiry screen providing real time
summaries of information relevant to the job seeker’s UI claim. All data/information that is provided in
this section shall be defined by the implementing state and could change, based on that state’s UI
communications needs with the job-seeker (claimant). This section will provide and update the status of
the job seeker’s UI claim in real time. It will also provide the ability to recognize and inform the
appropriate next steps for a UI claimant.
a) The state agencies will provide the appropriate interface to gather the appropriate data
elements needed to populate this section.
b) Although this may provide a small sub-set of information available based on state’s existing
configuration, a link to the state’s UI self-service web UI inquiry may be provided in this
area.
2.1.5.8 LMI/Job Forecast
This section will feature local employers that are potentially hiring and regional labor market
information. This page will display information on wage and in demand job projections from employers.
Page will display job forecasting using some of the national tools (e.g. MySkillsMyFuture) that are
available job forecasting.
2.1.5.9 National Tools
This module will interface directly with the federal tools that are provided to support different jobseeker activities. These Federal interfaces will include, but are not limited to, the following tools:




MySkillsMyFuture
MyNextMove
ServiceLocator (CareerOneStopCenter Locator)
Military to Civilian Occupation Translator
2.1.5.10
Job-Seeker Personalized Calendar
This calendar provides the job-seeker with an individual view of upcoming appointments, due dates, or
other relevant date specific materials pertaining to all workforce agency areas. This module will take a
feed from the state workforce agency and populate based on the individual state information with the
individual job-seeker, not generic information.
2.1.5.11
Social Media Links / Feeds
This module will provide the states with direct access to the different social media tools used by each of
the pilot state workforce agencies. The module can either specify direct links to the tool or feeds that
represents the states postings or job-seeker information to assist in their job search efforts.
17
IWRSSoftware Architecture Document
2.1.5.12
Motivational Job Seeker Tips
This section will provide different tips in gaining employment motivating the job-seeker within their
concentrated area of search. This module will display single tip on the profile page and ability to
navigate to other tips provided by state.
2.1.5.13
User Chat
The user chat functionality will provide the state agencies with the ability to provide real time
interaction with the job-seeker based on the state implemented chat tools. This will not provide the full
solution of chat but more of common interface that will enable the ability to interact with the job-seeker
using chat.
18
IWRSSoftware Architecture Document
3 Project Roles and Responsibilities
Following key project roles are defined for IWRS
Role
1.
2.
ITSC Project Manager
GCOM Project Manager
3.
State Project Manager
4.
IT Leads
19
Responsibilities
Overall IWRS project manager.
Responsible for executing tasks assigned to GCOM staff as
per IWRS project plan. Reporting status to ITSC project
manager.
Project Manager in charge of the resources and related
activities execution at the State level.
There is a PM for each State: New York, Mississippi, and
Oregon.
Empowered to make the technical decisions regarding the
Solution Architecture for the IWRS.
IWRSSoftware Architecture Document
4 Solution Architecture
This section describes overall solution architecture of IWRS application. IWRS will be designed keeping
following design principles in mind:
 IWRS/WIPP solution will be based on Services Oriented Architecture concept which loosely
couples the different tiers (Presentation, Business service, data tier and integration) of
application services. Solution will be based on “Connectivity Reference System Architecture”.
 IWRS/WIPP solution will enable deployment approach with multiple iterative releases thus
reducing the risk significantly and allowing for segmented deployment of fully tested back end
integration platform.
 IWRS/WIPP architecture will allow ITSC or state to change or add functions in any tier without
affecting other tiers thus offering flexibility.
 The user interface part of IWRS/WIPP will be user friendly and will allow state specific
customization.
 Interfaces between IWRS and WIPP as well as IWRS and State systems will be based on industry
standards web services specifications.
 IWRS/WIPP components can be hosted locally or in the cloud. IWRS/WIPP will be designed
keeping in mind that state can choose all or some modules of IWRS system. Each of the IWRS
module e.g. Registration, Triage will be separate modules and provide flexibility to state of
hosting locally or consume it from cloud.
 Low or no cost of acquisition for software technologies used in the design.
 Widely accepted, supported and proven Open Source technology.
 State(s) should be able to buy licenses and support if they plan to use a supported version of the
software technologies used.
 Role/Group Based Access control driven identity security in conjunction with Java
Authentication and Authorization Service (JAAS).
 Provide Single Sign On (SSO) capability for states that do not own Single Sign On capability.
 Seamlessly integration with existing Single Sign On (SSO) systems of states that already have
such capability using Federation – SAML2.
IWR system will be based on n-tier architecture which will consist of presentation tier, middle (business)
tier, data tier and integration tier. The overall solution will be implemented using set of Java/JEE
components to realize use cases defined in the Section 2 “Use Cases”.
20
IWRSSoftware Architecture Document
Job
Job Seeker
Seeker
State
State Administrator
Administrator
WIPP
IWRS
Presentation
State
State Staff
Staff
EJB Call
Middle Tier
Questions
Administration
Data
RESTFul Webservice
Self Service
UI Claim Info
Event Info
Profile Data
Matching Jobs
Registration
IWRS Data
Service
Triage
LMI/Job
Forecast
Message Center
Navigation to
Services
Manage
Account
IWRS LDAP
Service
Infrastructure
Services
Training and
Activities
State Profile
Manager
Personalized
Calendar
Logging
Auditing
Validators
Social Media
Links / Feeds
Exception
Handler
Job Seeker Tips
Exception
Reporter
IWRS
State
State
Configuration
Questions
Questions
DB
Common
Common
Questions
Questions
State
State Profile
Profile
Config
Config
Job
Job
Events
Events
Audit
Audit
State
Services
Registration
Adapter
Profile Data
Adapter
UI Claim Info
Adapter
LMI/Job Forecast
Adapter
Event Info
Adapter
Navigation to
Services Adapter
Training and
Activities
Personalized
Calendar Adapter
Job Seeker Tips
Adapter
Message Center
Adapter
Social Media Links
Adapter
Triage
Job
Match
One Stop
UI Benefits
Workforce
Systems
Job Matching
Adapter
Integration
IWRS LDAP
Triage
IWRS Solution Architecture
IWR/WIPP will be combination of secure (protected) and unsecure (unprotected) application.
Application user needs to have an account in the system to access the protected part of the application.
During account creation process, system administrator or application will assign one or more roles to
user. Based on logged in user’s role, application will redirect user to specific page. For state staff and
system administrator, it will redirect them to their home page where they can select task they want to
perform e.g. Create Job Event or Create New Account.
21
IWRSSoftware Architecture Document
For Job seeker, application will redirect him/her to registration page if registration process is not
complete or profile page (WIPP) in case registration information is complete. User can also directly go to
WIPP from state site in case registration information is complete.
Application will maintain user authentication information in the LDAP along with his/her roles in the
system. The communication between user browser and application will be secure (HTTPS) and
encrypted using 256 bit encryption. IWRS/WIPP will support following browsers:


Browser
Internet Explorer
Mozilla Firefox
Version
7, 8 and 9
Version 3.6 – Version 12
4.1 Presentation Tier
The presentation tier will be responsible for displaying web pages to browser user. This tier will be
implemented using following technologies:










JavaServer Faces
RichFaces PrimeFaces
Cascading Style sheets (CSS)
JQuery
Java 1.6 classes
HTML
Servlets 2.5
Tohu Framework
Drools
AJAX
The presentation user interface will be ADA (Americans with Disabilities Act) compliant. The banner on
the top of the page will be personalized based on logged in user’s state e.g. if user belongs to NY then
NY banner will be displayed on the top.
The communication between IWRS user interface components and business components will be done
using EJB while interface between WIPP and IWRS business components will be done using RESTful web
services.
4.2 Middle Tier
IWRS/WIPP middle tier will consist of business components and will be hosted on the JEE application tier
e.g. JBoss. Each of the business modules will be separate deployable units i.e. EAR file. Based on
“Connectivity IWR RFP 09252012.pdf” document, following business components (modules) have been
identified.
22
IWRSSoftware Architecture Document
(Note: These components are described at a very high level in this document. Each of the components
(except IWRS Data Service and IWRS LDAP Service) will have its own technical design document which
will describe implementation of these components in detail. The documents will be published to stake
holders as per the project schedule.)
4.2.1 Registration
Registration component will implement IWRS registration functionality. Job Seeker and state staff will
have access to this function and will consists of set of JavaServer Faces pages, business service and Web
Service registration adapter which will talk to state system to fetch initial registration information as
well as update registration information provided by Job Seeker in the state system.
Once user has navigated to registration page, based on user’s profile information in the LDAP, a
questionnaire pertaining to that state will be displayed. This questionnaire will consist of state questions
and common questions. The registration web page will be implemented using Tohu framework
PrimeFaces (JSF)and custom logic which will be responsible for displaying questions. JSF validation will
be utilized to do Registration field validation and Drools will be used to do business validation Based on
the answers provided by Job Seeker, Registration screen may display additional questions. Tohu
Framework PrimeFaces(JSF) and custom logic uses DROOLS rules engine to determine additional
questions.
When initial registration page is displayed, certain information will be pre-populated based on the user’s
account information in the LDAP. The typical interaction between IWRS and State Registration service is
shown below.
23
IWRSSoftware Architecture Document
Registration System
Job
Job Seeker
Seeker
IWRS LDAP
State
State Registration
Registration System
System
WIPP
WIPP
User Navigates to registration screen.
System queries information in
the LDAP based on userid.
If present LastName,
FirstName, Email Address etc.
information is returned.
Pre-population
of Registration
information
If sufficient information is
available then call is made to
fetch user information
available in the state system.
State system returns
user information if
available.
User submits registration information.
System sends registration
information to the state.
Submission of
Registration
information
System acknowledges acceptance of
information or send error message in
case of failure..
User is notified the outcome.
User is send to WIPP if registration is successful.
The state will implement registration service and will expose it as a SOAP/HTTP web service. IWRS
application will implement the web service client to consume the registration web service. Since all
registration data will be stored in the state system, this will be one way interface.
4.2.2 Questions Administration
The IWRS “Questions Administration” component will be responsible for allowing state administrator to
configure questions. This component will allow addition of new questions and modification or expiring
of existing questions. The module will be implemented using set of JavaServer faces, business
component and data service. Once a state administrator is done with changes, a display preview will be
shown to the user. The questionnaire configuration information will be stored in the IWRS database
along with business rules.
24
IWRSSoftware Architecture Document
4.2.3 Manage Account
The IWRS information is stored in the LDAP. In the cloud hosted solution, IWRS will have centralized
LDAP server which will store user information and user groups associated with user. Following user
information will be stored in the LDAP.









UserID
Password
First Name (Required)
Last Name (Required)
Middle Initial (Optional)
Email Address (Required)
Zip Code (Optional)
SSN (Optional)
Answers to secret questions (Required)
Following secret questions will be configured by default and can be changed based on state needs:
#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Question
What is the name of a favorite pet?
What is the name of your favorite restaurant?
What is the name of a favorite teacher?
Name a city you would like to visit.
What is your favorite jelly bean flavor?
Name your favorite fictional character.
Name your favorite athlete.
What is the street name where a relative lives?
What is the name of your favorite band?
What is the title of your least favorite movie?
For centralized hosted LDAP server following LDAP structure will be created to store user information
and user attributes. IWRS will use OpenDJ LDAP server which will be installed in the Data tier.
25
IWRSSoftware Architecture Document
org
us
dol
ny
MS
user
user
JSmith
JDove
DSmith
IWRS LDAP Structure
The Manage Account component will be responsible for managing user information and user groups
associated with the user. IWRS will implement LDAP service which will be wrapper over OpenDJ SDK to
manage user information in the LDAP.
4.2.4 Self Service
The self service module will allow user to reset the password or send userid in case user has forgotten it.
The self-service component will be implemented using set of JavaServer Faces (unsecure), business
component and LDAP Service.
In case where user has forgotten his or her userid, application will ask user to enter answers to set of
secret questions which the user has set up during initial account creation process. If the user answers all
questions correctly then the userid is sent to user’s email or mobile (SMS). In case of unsuccessful
attempt, user is allowed to retry (based on configured retry attempts). If user fails to answer secret
questions then user will be asked to contact Help Desk. Application will provide Help Desk contact
information to the user.
26
IWRSSoftware Architecture Document
In case where user has forgotten password, user will be asked to enter his or her user id. If user id is
present in the system then user will be asked to answer secret questions. Once user answers all
questions correctly, a temporary password will be sent to his/her email address or mobile (SMS). In case
user fails to answer secret question, it will follow same path as “forgotten userid” use case.
4.2.5 State Profile Manager
The state profile manger module will be responsible for storing state specific configuration information
e.g. services available for the states, registration data elements etc. This component will be
implemented using set of JavaServer Faces, business service and data service. The data will be stored in
the centralized IWRS database.
4.2.6 IWRS Data Service
The IWRS data service will provide data access framework for all IWRS modules. The services which
implements data access service will derive base implementation from IWRS Data service. IWRS Data
Service will be based on Java Persistence API.
4.2.7 IWRS LDAP Service
The LDAP service will be wrapper over OpenDJ LDAP SDK. The wrapper service will allow application
modules flexibility of interacting with any LDAP server without making changes to API call.
4.3 Data Tier
The data tier is responsible for storing data related to application as well as user information. The data
tier will consist of relational database as well as LDAP. IWRS/WIPP data service layer will be
implemented based on Java Persistence API (JPA) which can support most of the relational databases.
IWRS/WIPP data access layer will be validated using MySQL and Oracle database. GCOM will document
the configuration changes required to switch from one database to another. The relational database will
be responsible for storing following information







The state specific configuration (profile) information
State specific questionnaire
Common questionnaire
Job Event information
Common messages if any
Temporary data e.g. Bulk upload of Job seeker information
Profile page configuration specific to jobseeker (user personalization)
IWRS user information will be stored in the OpenDJ LDAP information. Please refer to “Manage
Account” section for more information about LDAP structure.
27
IWRSSoftware Architecture Document
4.4 Integration Tier
The integration tier will be responsible for communicating with state services to query and fetch the
data. State services will be exposed using SOAP/HTTPs. IWRS will have set of adapters which will be
responsible for communicating with state services. The IWRS web service adapters will have following
responsibilities:
 Map data from IWRS to State required interface.
 Handle Service up and down messages. If state decides to implement service up and down
messages, IWRS will be cognizant of that and it will take appropriate action to notify its
consumer.
 Handle error messages and notify consumer.
The data between IWRS and state services will be encrypted using SSL certificate.
4.5 Infrastructure Services
The infrastructure services are cross cutting concerns which are responsible for implementing services
across all tiers. Following infrastructure services will be implemented by IWRS/WIPP.
4.5.1 Logging
IWRS/WIPP modules will use Java Standard Logging framework to log the application information for
debugging purpose. IWRS/WIPP will implement wrapper class over Java Standard logging framework
which will allow states (state hosted applications) to change logging framework without affecting
business layer or clients of logging framework. The development and test environment log level will be
set to “DEBUG” for stage and production environment log level will be set to “ERROR”. Please refer Java
Logging Overview for more information about logging information.
4.5.2 Auditing
IWRS/WIPP will audit user actions in the database. The audit service will store audit information in the
centralized database. Each IWRS/WIPP module will be responsible for storing audit information.
4.5.3 Validators
IWRS will use Apache validation classes to perform common validations like null check, email address
etc. If custom validations need to be implemented then those will be part of IWRS validation service.
The validation service will be implemented either in Java or using DROOLs.
4.5.3.1 Exception Handler
IWRS/WIPP exception handling classes will be responsible for implementing base exception classes.
IWRS/WIPP exception handler framework will implement checked and unchecked exception classes. All
IWRS/WIPP modules will derive module specific exception classes from these base classes.
28
IWRSSoftware Architecture Document
4.5.4 Exception Reporter
Exception Reporter service will be responsible for reporting exception information to the user via email
or by writing to log file.
29
IWRSSoftware Architecture Document
5 Application Structure
IWRS Common
Framework
Java 1.5
JEE 1.5
OS
Registration
Questions Administration
Manage Account
Self-Service
State Profile Manager
WIPP Interfaces
Common Domain Classes
Auditing
Validation
JDK
Exception Handler
LDAP Service
Data Service
Exception Reporter
Third Party Classes like Tohu, DROOLS,
Apache Validators etc.
IWRS Services
This section describes the IWR/WIPP application structure and dependency. At the bottom of the layer is
the Operating System. IWRS/WIPP can be hosted on Windows Server, AIX, any flavor of UNIX which is
supported by Java and Linux. IWRS/WIPP Framework and services will be built on Java 1.6 and JEE 6
versions. IWRS/WIPP will utilize features like Generics, Annotations etc. to implement IWRS/WIPP
Framework components and services.
Logging
JRE
Linux/Windows/AIX/UNIX
IWRS Application Structure
The framework components and modules will be developed using Java and JEE components such as
Enterprise JavaBeans (Stateless Session Bean, Message Driven Bean etc.), Third party classes such as
Tohu, DROOLS, Apache Validators etc.
30
IWRSSoftware Architecture Document
6 High Level Design
At high level, IWRS has two design patterns. The first pattern is where IWRS frontend e.g. Registration is
making request for backend services while second pattern is where WIPP is making request for IWRS
backend services. Following section describes both design patterns in detail.
6.1 IWRS Client
The IWRS client or frontend is responsible for Job Seeker, System Administrator and State Staff to
expose the functionality of IWRS services. The IWRS client can be hosted on the same server as IWRS
backend (same JVM) or can be deployed remotely (different JVM). The IWRS client will be dynamic web
application and will be installed on application web container while IWRS backend is installed in
application container.
Value Objects
Domain Objects
Entity Objects
IWRS
DB
Data Access Service
JavaServer Faces
(IWRS Client)
Managed Bean
Enterprise Stateless
Javabean
Business Delegate
Business Service
Service Interface
Adapter
(Web Service Client)
State System
EJB
Client
LDAP Service
IWRS LDAP
High Level Design – IWRS Client
1. Application user makes request to IWRS client. The IWRS client will be implemented using
JavaServer Faces, RichFaces, JQuery, CSS and HTML pages. The controls on the web page e.g. text
box, list, drop down boxes will be bound to a Managed bean. A Managed bean is a plain Java class
which is developed based on JavaBean standard. Once user submits the data, all values from HTML
controls are passed to Managed bean.
2. The data in the Managed bean is validated using JavaServer Faces validation classes. In case of
validation error, error message is displayed on top of the page. If data validation is successful then
31
IWRSSoftware Architecture Document
3.
4.
5.
6.
7.
data in the managed bean is passed to business delegate. Business delegate knows how to create an
instance of business service and invoke the different operation on it. Please refer Business
Delegatelink for more information about this pattern.
Business Delegate creates instance of Enterprise JavaBean and invokes operation e.g. register.
Enterprise JavaBean then performs following functions
a. Starts business transaction with the help of J2EE application container.
b. Performs auditing of business call.
c. Calls actual business service to perform business function.
Business services then makes call to other services (Data Access Service) or adapters (State service)
to perform business functionality.
Business service is responsible for mapping domain objects to entity objects. The data service is
responsible for storing data in IWRS database.
The data service will be implemented using Java Persistence API.
6.2 WIPP Client
The WIPP application is responsible for presenting services (UI, ES, and WIA) available to Job Seeker. The
WIPP client can be co-located (same JVM) or can be installed remotely on different network. The IWRS
backend service will act as a data exchange service and will provide services requested by WIPP. The
services provided by IWRS to WIPP client are exposed as a REST Web Service.
JSON/XML
Domain Objects
Entity Objects
IWRS
DB
Data Access Service
WIPP
REST Web Service
Service Interface
Adapter
(Web Service Client)
Business Service
State System
LDAP Service
IWRS LDAP
High Level Design – WIPP Client
Following steps describe the application flow when user navigates to WIPP
1. User is navigated to WIPP either from registration module or from state web site.
2. Application displays different sections (e.g. Message Center, Calendar, Chat etc.) on profile page
based on state and user preferences. Profile page sections are displayed based on what
functionality state has enabled. State can enable/disable particular section as per their need.
32
IWRSSoftware Architecture Document
3.
4.
5.
6.
7.
Further user can customize state enabled sections (i.e. hide the section, set configuration
parameters etc.)
For each of the section configured on the page, application makes call to IWRS to fetch the data.
All of these calls will be done simultaneously using AJAX.
IWRS will contain business service for each of the WIPP service which will be responsible for
making calls to state service using IWRS Service adapter.
The service interface will be responsible for constructing web service call to state service and
receiving response from state service.
Once response is received from state, it will be passed to WIPP via business service.
In case of error (e.g. state service is not available, communication error etc.) WIPP will display
user friendly message to end user.
Since WIPP can be hosted locally or remotely on different network (geographically) it was
decided to use RESTFul web services than EJB. Appendix A describes difference between using
RESTFul web service and EJB service technology.
7 Network Infrastructure
This section illustrates the recommended hardware configuration of the System, featuring a scalable and
highly available architecture. Please note that the specific configuration for IWR System will be
determined according to many factors, such as:



33
Expected load on the system
High availability and Disaster Recovery (DR) requirements
Cost
IWRSSoftware Architecture Document
The production architecture, supporting the availability targets, is shown in the example figure below,.
IWRS Cloud/State Production Environment
IWRS/WIPP users can access application through Internet (Jobseeker) or Intranet (state staff).
The sample architecture features:



34
2x Load Balancers with internal fail-over capability, balancing user sessions across the active
Web Server clusters
Clustered Proxy Web Servers outside the firewall hosting the web services - these are accessed
by customers over the internet.
Clustered Web Servers inside the firewall hosting the web services - these are accessed by State
Staff/internal users over the intranet (WAN/LAN).
IWRSSoftware Architecture Document





Clustered Application Servers hosting the application services - clustering functionality is
supported by the application framework.
Clustered Primary Database Servers hosting the database instances - database instance fail-over
can be managed by a COTS clustering product
Standby Database Server, used for reporting as well as a standby database server
Primary and Standby Storage Units, hosting the disk storage subsystems - the primary storage is
generally a high-quality storage unit, and the stand-by medium quality.
Media Servers, for managing partial and full back-ups process, collocated in the Standby
Database Server and having no performance impact on the online transactions.
The architecture also supports Disaster Recovery (DR) across data centers. The DR configuration also
supports active-passive as well as active-active configurations at the web and application server layers,
with the clustered primary database server being the primary active database, which replicates to the
standby database server located in the remote data center. The ultimate configuration will be
architected based on the standards set by ITSC and State staff.
35
IWRSSoftware Architecture Document
8 Hosting Solution
There are two types of hosting solution for IWRS.
1. Cloud Hosted
2. State Hosted
8.1 Cloud Hosted
The IWR/WIPP components of the solution including the registration system will be hosted in cloud.
However, the database and other state developed components like Triage, Job Search, Job Match and UI
components, etc., will be hosted by the participating state.
State has to expose the integrating components as a secured public web service for the cloud hosted
solution to integrate with. The web service must match the WSDL published after the application detail
design.
OpenAM will be used for Single Sign On. A federation component will be available to integrate with a
state owned SSO system if the participating state owns such system.
State Systems
IWRS
ES
SOAP/HTTPs
UI
IWRS
IWRS
WIA
Cloud Hosted Solution
36
IWRSSoftware Architecture Document
8.2 State Hosted
The participating state hosts all the IWR components in their environment including the cloud
components. The components will integrate locally within their infrastructure. The participating state
will use its state owned Single Sign On system.
State Systems
ES
SOAP/HTTPs
z
UI
IWRS
IWRS
WIA
State Hosted Solution
37
IWRSSoftware Architecture Document
9 Single Sign On
The IWR/WIPP system will provide the state with the capabilities to accept and validate user’s
authorization credentials. During the login process, the user will have the capabilities to utilize a user id
and password to enter into the workforce systems using the IWR/WIPP system. This will provide Single
Sign On (SSO) capabilities to the state’s workforce systems. If the state already has a solution that
addresses these capabilities, then the IWRS/WIPP will federate with that model and validate the user’s
credentials using the state federation agent.
When IWRS user attempts to access a protected resource before being authenticated, the web policy
agent intercepting the browser's request finds no session token in the request, and so redirects the
user's browser to the IWRS login page for authentication. After the user has successfully authenticated,
OpenAM sets a session token in a browser cookie, and redirects browser back to the page the user tried
to access initially. The following diagram shows how the pieces fit together when a web client accesses a
web page protected by a policy agent.
Web Browser
5
OpenAM
1
3
2
Policy Agent
IWRS website
4
Apache HTTP Web Server hosted on IWRS
IWRS Authentication Flow
The web policy agent will be installed in the web server and configured to be called by the web server
when an IWRS client requests access to a protected resource on the IWRS application.
1. The IWRS user requests access to a protected resource.
38
IWRSSoftware Architecture Document
2. The web server runs the request through the policy agent that protects the resource according
to OpenAM policy. The policy agent acts to enforce policy, whereas the policy configuration and
decisions are handled by OpenAM.
3. The policy agent communicates with OpenAM to get the policy decision to enforce.
4. For a resource to which OpenAM approves access, the policy agent allows access.
5. The web server returns the requested access to the IWRS web user.
The IWRS/WIPP application can be hosted in the cloud or can be hosted locally. In case of cloud hosted
solution if participating state has OpenAM solution then it will use cloud based OpenAM in federated
mode. If participating state does not have OpenAM then it will use cloud hosted OpenAM solution. In
case of state hosted IWRS/WIPP solution, IWRS/WIPP will use state hosted OpenAM solution.
39
IWRSSoftware Architecture Document
10 Technology Stack
This table documents the technology stack for IWRS.
Product/To
ol
1. Eclipse
Juno
Version
Description
Environment
Juno
Dev
2. JBoss
Application
Server
7.1.1
Eclipse is a multi-language software
development environment comprising a
base workspace and an extensible plug-in
system for customizing the environment.
It is written mostly in Java.
It can be used to develop applications in
Java and, by means of various plug-ins,
other programming languages including
Ada, C, C++, and COBOL. Development
environments include the Eclipse Java
development tools (JDT) for Java and
Scala, Eclipse CDT for C/C++ and Eclipse
PDT for PHP, among others.
JBoss Application Server (JavaBeans Open
Source Software Application Server) is an
application server that implements the
Java Platform, Enterprise Edition (Java
EE). It supports the following features:












40
Dev
Test
Stage
Prod
Aspect-oriented programming
(AOP) support
Clustering
Deployment API
Distributed caching (using JBoss
Cache, a standalone product)
Distributed deployment (farming)
Enterprise JavaBeans versions 3
and 2.1
Failover (including sessions)
Hibernate integration (for
persistence programming; Java
Persistence API or JPA)
Java Authentication and
Authorization Service (JAAS)
Java EE Connector Architecture
(JCA) integration
Java Management Extensions
Java Message Service (JMS)
IWRSSoftware Architecture Document













3. JBoss
Drools
4. Tohu
Framework
5.5.0
1.3.1
integration
Java Naming and Directory
Interface (JNDI)
Java Transaction API (JTA)
Java Authorization Contract for
Containers (JACC) integration
JavaMail
Java Server Faces 1.2 (Mojarra)
Java Server Pages (JSP) / Java
Servlet 2.1/2.5 (Tomcat)
JBossWS (JBoss Web Services) for
Java EE web services like JAX-WS
JDBC
Load balancing
Management API
OSGi framework
RMI-IIOP (JacORB, contraction of
Java and CORBA)
SOAP with Attachments API for
Java (SAAJ)
Drools is a Business Rule Management
System (BRMS) with a forward chaining
inference based rules engine, more
correctly known as a productive rule
system, using an enhanced
implementation of the Rete algorithm.
Drools supports the JSR-94 standard for
its business rule engine and enterprise
framework for the construction,
maintenance, and enforcement of
business policies in an organization,
application or service.
Tohu is an engine built on Drools to
create dynamic UIs. It is an alternative to
the traditional MVC approach which
instead uses a generic UI layer to render
arbitrary UIs defined using simple
business rules.
Dev
Test
Stage
Prod
Dev
Test
Stage
Prod
Most forms have some sort of dynamic
41
IWRSSoftware Architecture Document
behaviour where the value a user types in
one field affects whether or not to show
another field. Tohu makes this sort of
thing extemely easy to build and
maintain. Typically you can have the
logic of your forms (and page flows)
working within days or even hours, and
then someone with a different set of skills
(e.g. CSS / UI design) can make it look
nice.
There are 3 core components:



5. MySQL
42
5.6
Questionnaire rule support. This
is a set of Java based classes that
enable specific Questionnaire
rules to be created and used in a
rule based application.
Rule Execution Server. While this
is actually a separate project
being worked on by JBoss staff, it
is included here as it is a
fundamental part of the solution.
The execution server provides a
service interface into the Rule
Engine (output is XML or JSON currently only XML is supported
in Tohu).
User Interface Display
libraries. This takes the output
from the Execution Server and
creates the required
interface. The first available
interface generates HTML via a
JavaScript library that is based on
JQuery, but other interfaces are
expected to be provided in
future. e.g. Eclipse Rich Client.
MySQL is an open source relational
Dev
IWRSSoftware Architecture Document
database management system (RDBMS)
that runs as a server providing multi-user
access to a number of databases.
Test
Stage
Prod
MySQL works on many different system
platforms, including AIX, BSDi, FreeBSD,
HP-UX, eComStation, i5/OS, IRIX, Linux,
Mac OS X, Microsoft Windows, NetBSD,
Novell NetWare, OpenBSD, OpenSolaris,
OS/2 Warp, QNX, Solaris, Symbian,
SunOS, SCO OpenServer, SCO UnixWare,
Sanos and Tru64. A port of MySQL to
OpenVMS also exists.
6. JavaServer
Faces
7. Rich Faces
2.1
4.2.3
JavaServer Faces technology simplifies
building user interfaces for JavaServer
applications.
Developers of various skill levels can
quickly build web applications by:
assembling reusable UI components in a
page; connecting these components to an
application data source; and wiring clientgenerated events to server-side event
handlers.
RichFaces is an open source Ajax-enabled Dev
component library for JavaServer Faces
hosted by JBoss. It allows easy integration Test
of Ajax capabilities into enterprise
Stage
application development.
Prod
RichFaces is more than just a component
library for JavaServer Faces. It adds:




8. PrimeFaces
43
3.5
Dev
Test
Stage
Prod
Skin ability (easily change and
update application look and feel)
Component Development Kit
(CDK) to assist in constructing
JavaServer Faces components
Dynamic Resource Framework
Both page wide, and component
based Ajax control components.
PrimeFaces is an open source JSF
Dev
IWRSSoftware Architecture Document
9. Java
Persistence
API
(Hibernate)
4.0.0
component suite with various extensions.
• Rich set of components (HtmlEditor,
Dialog, AutoComplete, Charts and many
more).
• Built-in Ajax based on standard JSF 2.0
Ajax APIs.
• Lightweight, one jar, zero-configuration
and no required dependencies.
• Ajax Push support via websockets.
• Mobile UI kit to create mobile web
applications for handheld devices.
• Skinning Framework with 35+ built-in
themes and support for visual theme
designer tool.
• Extensive documentation.
• Large, vibrant and active user
community.
• Developed with "passion" from
application developers to application
developers.
Hibernate is an object-relational mapping
(ORM) library for the Java language,
providing a framework for mapping an
object-oriented domain model to a
traditional relational database. Hibernate
solves object-relational impedance
mismatch problems by replacing direct
persistence-related database accesses
with high-level object handling functions.
Test
Stage
Prod
Dev
Test
Stage
Prod
Hibernate is free software that is
distributed under the GNU Lesser General
Public License.
Hibernate's primary feature is mapping
from Java classes to database tables (and
from Java data types to SQL data types).
Hibernate also provides data query and
retrieval facilities. It also generates the
SQL calls and attempts to relieve the
developer from manual result set
handling and object conversion and keep
the application portable to all supported
SQL databases with little performance
overhead
44
IWRSSoftware Architecture Document
10. OpenAM
10
OpenAM is an open source access
management, entitlements and
federation server platform.
Dev
Test
Stage
Prod
OpenAM is designed in response to
legacy access management bundles
thrown together via acquisition—with
differing architectures, APIs, libraries,
user-interfaces, and documentation that
pass integration costs and complexity on
to customers.
OpenAM is the world’s only open source,
purpose-built, all-in-one access
management platform able to secure and
share resources across enterprise, cloud,
social, and mobile environments.
Unique Benefits :



11. OpenDJ
45
2.4.6
It is the only developer-friendly
access management solution to
use a single, common
programming interface (REST)
that’s easy to invoke.
It is the only “All-in-One” Access
Management solution that
includes Authentication, SSO,
Authorization, Federation,
Entitlements, Adaptive
Authentication, Strong
Authentication, and Web
Services Security in a single,
unified product.
OpenAM is based on the Sun
OpenSSO codebase for
modularity, lightweight
flexibility, and massive scalability,
available to all. It’s an easy way
for form.
OpenDJ is a free, open source Lightweight
Directory Access Protocol (LDAPv3) and
Directory Service Markup Language
(DSMLv2) compliant directory service
written in the Java programming
language.
Dev
Test
Stage
Prod
IWRSSoftware Architecture Document
One of the key design principles of the
OpenDJ architecture is addressing
scalability and performance to deal with
high throughput and low latency
response requirements. Highly robust
replication helps to ensure data
availability for consistent, reliable access
to identity data at all times. In addition,
advanced features such as Assured
Replication can be used to guarantee
data availability in the event of server
failure. For geographically distributed
environments, OpenDJ supports WANoptimized replication for increased
bandwidth efficiencies.
12. Maven
3.0.5
13. Jenkins
1.502
14. Sonar
3.4.1
Apache Maven is a software project
management and comprehension tool.
Based on the concept of a project object
model (POM), Maven can manage a
project's build, reporting and
documentation from a central piece of
information.
Jenkins is an open sourcecontinuous
integration tool written in Java.
Jenkins provides continuous integration
services for software development. It is a
server-based system running in a servlet
container such as Apache Tomcat. It
supports SCM tools including CVS,
Subversion, Git, Mercurial, Perforce and
Clearcase, and can execute Apache Ant
and Apache Maven based projects as well
as arbitrary shell scripts and Windows
batch commands.
Dev
Sonar is an open platform to manage
code quality. As such, it covers the 7 axes
of code quality:
Dev



46
Dev
Architecture and Design
Duplications
Unit Tests
IWRSSoftware Architecture Document




15. Rational
ClearQuest
Web
47
7.0.1.2
Complexity
Potential bugs
Coding rules
Comments
IBM Rational ClearQuest is application
lifecycle management (ALM) software
that provides flexible change and defect
tracking, customizable processes, realtime reporting and lifecycle traceability
for better visibility and control of the
software development lifecycle. This
solution provides scalable, multiplatform
support to any size organization, so you
can continue to use your customized
processes as your organization’s needs
evolve. Rational ClearQuest supports the
IBM AIX, HP-UX, Linux, Sun Solaris and
Microsoft Windows operating systems.
Rational ClearQuest can improve visibility
and control of software development
projects.
 Enhance software quality with
built-in defect and changetracking capabilities.
 Customize and automate
workflows for greater efficiency
and predictability. Develop best
practices with the ALM template.
 Simplify compliance
management with tools that help
you efficiently manage
compliance processes and track
approvals.
 Gain visibility into projects with
real-time reports for better
decision making.
 Leverage enhanced
integrations with several other
IBM lifecycle products for a
complete ALM solution.
Test
IWRSSoftware Architecture Document
11 Appendix A:
REST Webservice
1. HTML form componentsare directly bound
to REST service. Since REST web service
will be deployed on the backend all
validations will happen on the backend.
This will have performance impact on the
application.
2. With RESTful service all validation errors
are send back to client/consumer as XML
data, the client needs to decode the XML
(error) and display to the user. This adds
complexity to the validation process.
3. RESTful service implementation can be
consumed by any webservice client (Java,
.Net, etc)
4. In RESTful implementation, the transaction
control needs to be implemented by
application which adds complexity. REST
standard does not talk about transaction
implementation.
5. Tohu is a framework on top of Drools that
allows interactive web applications to be
built from rule definitions. Tohu uses AJAX
calls and does not support RESTful web
service implementation.
6. RESTful web service is based on HTTP
protocol that implies installing HTTP
servers in the middle tier.
48
EJB
1. User input data from the screen/form is
bound to the JSF bean as Java object, it
can be directly exchanged with EJB
without any further conversion also HTML
form data can be validated using out of
box JSF validations. Using this approach
avoid extra calls to IWRS backend service.
2. Java object can be directly exchanged with
the EJB; any validation error from the
server side can be thrown as a user
defined exception to the client. The client
can catch the exception and display the
user friendly validation error to the user.
This makes validation process simpler.
3. The client needs to be Java
implementation.
4. In EJB implementation, transactions are
controlled by container; developer does
not have to write code.
5. With EJB implementation, Tohu can
remain frontend component and once
user completes registration process, data
can be passed from Tohu to EJB.
6. EJB is based on IIOP protocol which is part
of JEE container. With EJB 3, development
and deployments of EJBs are much
simpler.
IWRSSoftware Architecture Document
Download