4. 4
4
4
General outline
Toilets Fire Exit
Mobile Phones
and “chat”
Messages
Lunch
Schedule for all days
Start 09:15am
Morning break 10:45am
Lunch 12:15pm
Afternoon break 03:15pm
End 05:15pm
TAP Architecture > Learning Objectives
6. 6
6
6
Overview
Triple’A Plus
Triple’A Plus is a multi-layer architecture solution :
WUI
Presentation
Layer GUI
Application
Layer
Persistence
Layer
Integration
Layer
Business
Components
Computation
Engines
RDBMS
Gateway Design
Studio
TAP
Temenos Solution Third Party Solution
Report Designer
Reporting Platform
Document Repository
Back Office / Legacy
Web Chart Engine
API
Mobile
Layer Tablet
Temenos
Connect
TCIB
TAP Architecture > Administration > Technical overview
7. 7
7
7
Presentation Layer
Several interfaces compose the presentation layer:
GUI: A thick-client/server based Administration console for business
infrastructure information (currently being migrated to the WUI)
WUI: The Web User Interface (WUI) provides a unique access point to
end-user product features, using customizable HTML pages and Ajax
Web 2.0 interactive elements
• Design Studio is the tool to adapt/customize the WUI front end.
API: The main implementation used is OData. It provides a unique
access point to manage TAP data
• Design Studio is the tool to adapt/customize the OData access.
TAP Architecture > Administration > Technical overview
8. 8
8
8
Presentation Layer
Other interfaces based on edgeConnect technology
TAPTablet is the first application available on mobile device. This
application is fully oriented Relationship manager
TCIB stands for Temenos Connect Internet Banking. This application
offers on-line access to core banking functions and wealth functions
Third Party applications & libraries enrich the presentation layer:
Web Chart: Domo PopChart renders charts in several image types
Report Designer: default reports are accessible from the WUI/GUI.
• Actuate eDesigner is the tool to adapt/customize the report definition
TAP Architecture > Administration > Technical overview
9. 9
9
9
Application Layer
The application layer is composed by:
Java Business Components: Covering all the business aspects and
functionalities of the WUI
• Each business module of the WUI is backed with its own java
business components
A set of Java services (also called Java Façade) offering access to all
the user interface features to be integrated into a Service-Oriented
Architecture or a Web portal
Triple’A financial computation engine
Third Party applications & libraries enriching the application layer:
Reporting (Actuate Server) and Business Intelligence Platform
TAP Architecture > Administration > Technical overview
10. 10
10
10
Persistence Layer
The persistence layer operates with a central database where
permanent data, operational and computed, used by the Triple’A
Plus components is stored
Several databases hold the Triple’A+ Data
Triple’A database supports TSL extensions
Additional tables & table fields added to support user preferences,
meta-dictionary changes,…
JackRabbit - A document repository:
T’A+ integrates via new interfaces document repositories with as
implementation example the JackRabbit open source solution
Actuate Reports can be stored and indexed since R11 in JackRabbit
TAP Architecture > Administration > Technical overview
11. 11
11
11
Integration Layer
As a front/middle-office banking solution, T’A+TM offers a wide range
of interfaces to integrate the solution with the banks legacy systems
Gateway / Gateway Pack: allows enterprise data management,
batch/xml import & exports
Back office interfaces with T24, Olympic, Avaloq,
Generic interfaces to integrate with other legacy systems
iMDI interfaces to gather external data sources (Reuters,
Bloomberg,…)
TAP Architecture > Administration > Technical overview
12. 12
12
12
Business components
A Portfolio Management System (PMS)
Back to Frond functions (Analysis, Return, Performance,…)
Front to Back functions (Ordering, Rebalancing,… )
Simulation function (Proposal Generator)
Administration (Strategy and Constraint)
Alerts, Monitoring and Notifications
A Reporting System
Reporting database
Client module (Live!Report) installed on the Thick-Client
Repository (Live!Report) deployed within the Report server (Encyclopedia in
Actuate)
Design Studio (based on Eclipse) to perform any customization of
the application
on business side ( Web pages, business models and configuration)
on technical side ( J2EE server configuration, TAP configuration)
TAP Architecture > Administration > Technical overview
13. 13
13
13
Technical components*
Legacy
System
Application layer
TAP Core
Servers Interface
layer
Gateway /
Gateway
Pack /
TTI
Presentation layer
Web Chart
Server
Reporting
WUI/API
Persistent layer
RDBMS
aaarepdb
permtsldb
temptsldb
aaamaindb
aaalogindb
ocsmaindb
prmmaindb
External
Document
Repository
GUI
Tablet / TCIB
edgeConnect
API
DSTAP
TSL
Client
API
J2EE Server
PMS
PRM
/ /
WUI API
Tablet TCIB
Report
* CRM not described as in maintenance mode
TAP Architecture > Administration > Technical overview
14. 14
14
14
Supported Platforms in R14
Description
Technical
version
J2EE application server
IBM WebSphere Application Server 7.0
Oracle WebLogic Server 11g
JBoss EAP 6 (OCS imp 2 only)
7.0.0.29
10.3.6
6.2
Database Management System Sybase ASE 15.7 15.7.SP103
Operating system
IBM AIX 6.1 or 7.1
Solaris 10 (SUN SPARC or Fujitsu SPARC64)
Windows 2008 / 2012 Server
Red Hat Enterprise Linux 6.4
Client applications
Internet Explorer IE 9.0, IE 10, IE 11
Firefox 27
Flash and Acrobat Reader plug-ins
Windows XP, 7, 8.1 for the GUI
TAP Architecture > Administration > Technical overview
15. 15
15
15
Third Party Products
Required Sybase Adaptive Server Enterprise
Sybase Open Server (Triple’A PMS only)
Java 6
Websphere application server or Oracle Weblogic
IBM Websphere TX 8.3
Actuate BIRT iServer 11
Domo PopChart Server 7
Optional Portfolio Risk Module (Fincell)
RenderX (Unicode & RTL languages)
TAP Architecture > Administration > Technical overview
16. 16
16
16
TAP Release management
TAP is made of Major release and Hotfixes
Depending on the Temenos product management strategy, we may
have between 2 to 4 release per year
Usually a release is delivery in the end of a quarter
Marketing version (R14) differs of Technical version (8.0)
Some example
TAP Release TAP version DSTAP version
R13 7.0.01 8.0.0
R14.03 7.1.01 9.0.01
R14.08 8.0.0 9.0.04
TAP Architecture > Administration > Technical overview
18. 18
18
18
Preamble
The chapter is a focus on the PMS and CRM part of the application
Topics presented:
Triple A Core Servers and databases
Triple A Service Layer and Job Launcher
Triple A Web server and databases
Overview of the installation framework to deploy Triple A Plus
TAP Architecture > Administration > Specifications
19. 19
19
19
Triple A Core Server – Main characteristics
Executes functions on request from other programs
Accessible through Sybase stored procedures
Business content defined by user format
Developed in C/C++ language
Based on Sybase Open Server libraries
Multi-threaded
Multi-purpose: it can have different roles
Several instances of this program can run simultaneously
(in theory no limitation on the number of instances)
TAP Architecture > Administration > Specifications
20. 20
20
20
Triple A Core Servers – Roles
Four different roles
Financial: Computation based on the application & domain
parameters, and on the formats script definitions
Can be Multiple
Fusion: Fusion of the portfolios
Can be Multiple
Dispatch: Dispatch fusion and report preparation to other servers
Must be Unique
Report: Prepare the data required for the reports
Can be Multiple
A Triple A Core server can have more than one role
TAP Architecture > Administration > Specifications
21. 21
21
21
Triple A Core databases – Description
Product Database Default name Contents Notes
Triple A
Core
Login aaalogindb
Information defining
the environments
(database, financial
servers) available to
the user
This database is defined
by the environment
variable AAALOGINDB
Main aaamaindb
Permanent data used
by the software
containing all PMS
data
It is the most important
database in term of size
Report aaarepdeb
Data used by the
reporting system,
mainly temporary
Reports are stored in it
TAP Architecture > Administration > Specifications
22. 22
22
22
Triple A Service Layer – Presentation
Triple A Service Layer (TSL) is an infrastructure introduced in
R11and replaces TASC (Triple A Smart Component) available in
the previous release (1.30.6 and above)
TSL infrastructure consists in the following components:
TSL Core:
• TSL business data package (Triple A Core formats, screens, etc.)
• TSL databases and objects
• TSL and TASC (Triple A Smart Component) financial server services
TSL Web:
• TSL application server services
• TSL batch job launcher (otf-shell command tool)
TAP Architecture > Administration > Specifications
23. 23
23
23
Triple A Service Layer – General infrastructure
T’A+ Core
Databases
TSL
T’A Core
Financial
Server Services
Layer
shell command
TSL
cmd
Web Application
Layer
Services
Layer
Meta
Dictionary
Data PCK:
- Formats
- Screens
Static DB
Volatile DB
TAP Architecture > Administration > Specifications
24. 24
24
24
Triple A Service Layer – Features and databases
Features:
Optimizes as much as possible the number of calls to the financial
servers & to the database server
Decreases the volume of data transferred between clients & servers
Persists the computed data directly in the TSL db: data persisted is
used as global & local cache
Databases:
TAP Architecture > Administration > Specifications
Product Database Default name Contents Notes
Triple A
Service Layer
Permanent permtsldb
Data loaded during
the nightly batch
(precomputed data)
Also called “static
database”.
Life of all objects can be
until 24 hours depending
the Business requirements
Temporary temptsldb
Data loaded during
the activity on the
system
Also called “volatile
database”.
Short life of all objects
25. 25
25
25
Triple A Service Layer – Flow
Server Side
Application Layer
Financial
Servers
TSL
Data Layer
Triple’A
aaamaindb
Triple’A
tsldb
Presentation Layer
UDP
WUI
TSL
Financial function
30 rows
Done !
30
rows
Client
Request
30 rows
Show me the
operation history
TAP Architecture > Administration > Specifications
26. 26
26
26
Triple A Service Layer – Global/Local cache concept
WUI Application
server
TSL
temptsldb
Fmt3
Fmt2
Fmt1
OTF shell
External
scheduler
(*) If pre-computation
jobs defined
aaamaindb
Create private
transient table
(*) Check availability
of pre-computation
Paginate respecting
sort order
(*) Copy results and
domain information
Submit RPC
for missing data
permtsldb
X format
Y format
Z format
Append results and
domain information
Financial server
Pre-computation
periodical refresh
(*) Submit financial
function RPC
(*) Store
pre-computation
TAP Architecture > Administration > Specifications
27. 27
27
27
Triple A Service Layer – Vertical search mechanism
WUI
Ajax auto-complete
WUI
Search pattern
vs_instrument
id sqlname_c language_code pattern
instrument
id code name …
denom
denomination
EN
FR
DE
tasc_accent_conv
from_char to_char
<meta-dict tables>
<meta-dict tables>
<meta-dict tables>
fill_tables_for_search
where pattern like … where pattern like …
TAP Architecture > Administration > Specifications
28. 28
28
28
Triple A Service Layer – Rule based engine
Dispatch
Server thread
tasc_global_recomp_obj tasc_entity_recomp_obj tasc_search_recomp_obj
<Triple’A Plus Entity>
<Triple’A Plus Entity>
<Triple’A Plus Entity>
<Triple’A Plus Entity>
object_modif_stat
data_dependency
TSL
Extensions
Vertical
search
Global cache
<user defined table>
External
system
External
feed
<meta-dict tables>
<meta-dict tables>
<meta-dict tables>
Scheduler tasks
TAP Architecture > Administration > Specifications
29. 29
29
29
Job Launcher – Description
It is a component designed to execute in a synchronous or
asynchronous way jobs from other components.
JobLauncher gives its clients the ability to launch jobs that will load,
process, transform, send or store data.
Principle: a job instance is structured into job executions
Pre JobExecution
Main JobExecution 1 … Main JobExecution n
Post JobExecution
Split up the job into
parallelizable chunk of
work. 0-1 instance
Perform the core work
Merge the chunks into 1 part
TAP Architecture > Administration > Specifications
30. 30
30
30
Job Launcher – Overview
otf-shell
VM
Job Launcher
Batch Manager
Batch
Definition
Loader
JobConfiguration
Mapper
JobType
Selector
JobLauncher
ControlService
Facade
Parameters &
Batch id
Application Server
WUI Pageflow Monitoring WUI
JobInstances
JobLauncher
ControlerService
JobInstance
Executor …
JobInstance
Executor
PreJob
Domain
Loader
Data
Slicer
JobLauncher
Monitoring
Monitoring
Console
db
PreJob
Domain
Loader
Data
Slicer
SubJob
chunk
PostJob
Sub Job Sub Job
PostJob
Sub Job Sub Job
SubJob
chunk
SubJob
chunk
SubJob
chunk
SubJob
chunk
SubJob
chunk
TAP Architecture > Administration > Specifications
32. 32
32
32
Formats & Functions
Entities
TSL Business Services / Functional Architecture
Services API
Business Functions
Design Studio
Triple’A domain
Import
Generic Triple’A Entities Access
Domain Datasets
Based on TSL / Triple’A
Meta-Dictionary
TSL
Extended T’A
Meta-Dictionary
Entities Structure
Enumerations
Translations +
Formats / Elements
Domain Datasets
Based on Triple’A Formats
and Domain
AAA
Main
Database
PMS Data
Entities access:
Data management (CRUD, Completion, Validation, Entity search)
Business functions:
Initialization, Execution and persist result, Data Read aggregate Results
TAP Architecture > Administration > Specifications
33. 33
33
33
Flow data access architecture
Configuration through
Design Studio
WUI
Process
OData Action
Spring FMK
Abstract Process
Flow Service
TAP OData Producer
OData FMK
references
Remoting Datasets
Annotation Structure
TAP Core Entity
and
Function View
maps
contains
contains
Remoting BO
BO Datasets
Structure
Client OData
Call HTTP
uses
uses
Uses
uses
Databases
Services
(IV, DV, IC, Search…)
TASC API
Call HTTP
TAP Core Entity
and
Function View
maps
Core Server
uses
uses
references
calls
WUI Pageflow
WUI Browser
Call HTTP
uses
specific
cases
AAA Datasets
Structure
uses
uses
TAP Core Entity
and
Function View
maps
TAP Architecture > Administration > Specifications
GUI Client
TDS
34. 34
34
34
Flow data access architecture – explanation
On Web side, whichever the case is executed, the data collected
from TAP Core servers or the database passes though the Services
Layer embedded in the Flow Service implementation
WUI
Data displayed are managed throughout datasets (“AAA Datasets”) and
Business processes (also called WUI processes)
Processes are implemented in a transition of a pageflow
API with OData implementation
Data displayed are managed throughout datasets (“Remoting datasets”) and the
chains are declared in the annotations of the datasets
A chain is a group of actions therefore a chain defined the behavior of the OData
call (TAP OData Producer)
API with TASC implementation
Data displayed are managed throughout datasets (“BO datasets”) and the
“Remote BO” services call directly either the Flow Engine or the Service Layer
TAP Architecture > Web > Components
35. 35
35
35
TAP Client module
TSL Client
As from R13, TSL Client replaces the Formatted Data Extractor (FDX)
and TASC-Driver tools that were used in OCS 1.30.6 but were no
longer supported in Release 11 and Release 12.
The TSL Client is a combination of Java classes that extracts data from
TAP. TSL components are used by the TSL Client to provide high
performance extraction of the data. The definition of the data to extract
is expressed by input files that are mainly in XML format
TAP Architecture > Administration > Specifications
36. 36
36
36
Triple A Web – J2EE Server
The J2EE server manages:
The rendering to the front-end
The PMS business functions
Business components deployed are:
PMS modules (Valuation, Ordering, Rebalancing, Strategies…)
PG is a module that provides Relationship Managers with the ability to
prepare and send active trading advice to their clients.
Reporting is a technical feature allowing the reporting of portfolios for
any clients.
Other transversal modules such as Monitoring, Queries, Alerts,…
TAP Architecture > Administration > Specifications
37. 37
37
37
Triple A Web – Database
The default name of the Triple A Web database is ocsmaindb
This database is still available to continue to support the CRM part
(Client Data Management system) now under maintenance
This database is used to store the Audit trail running in the J2EE
server
TAP Architecture > Administration > Specifications
38. 38
38
38
Deployment – Triple A Core and Service Layer
Triple A Core and Triple A Service Layer are based on the same
installation framework.
This installation framework is made up of 3 parts:
A dedicated script called “install_aaa_files.sh” to copy all shell and SQL
scripts, binaries, libraries and configuration files into the Runtime folder.
A central file called “aaa_install.cfg” contains the Core and TSL
databases definition. This configuration file is loaded by the framework
only during an installation or a migration of the system
A dedicated script called “install_ddl.sh” to manage the database objects
deployment (procedure, views, tables,…)
TAP Architecture > Administration > Specifications
39. 39
39
39
Deployment – Triple A Web
Triple A Web deployment is based on the Deployment Package
Installer (DPI) mechanism but also implements the maven features.
This installation framework is composed of 3 modules:
The environment is built based on information defined in the
all-in-one.dpi.properties file. This file is loaded by the UpdateInstaller.jar
file when installing/migrating/refreshing the system
A zip file containing the release and the maven repository
The packager concept allowing the construction of the customization
package is including in Design Studio
TAP Architecture > Administration > Specifications
40. 40
40
40
Quiz
How many layer does Triple A Plus make up ?
What is the purpose of TSL databases ?
What are the functionalities of the Triple A Core server having the
Dispatch role?
TAP Architecture > Administration > Specifications
42. 42
42
42
Preamble
TAP Architecture > Administration > Security
Triple A Plus security defers on the frond end used (GUI and WUI)
Core TSL Web
Authentication
based on the Sybase
security
N/A based on JAAS
Authorization
based of the
application (Profile)
N/A
based on the
application (user, roles
and/or profiles
44. 44
44
44
Overview with the CRM solution
Authentication layer
Authorization layer
CRM
database
PMS
database
CDM user
WUI
manager/
third_party
GUI user
GCL Data Profile
Function
Security
Profile
1
1 1
1
n
1
n
TAP Core functions
Business
Functions
Menu
Functions
Reports
Report
Profile
Screen
Profile
Valuation
Operation
History
Orders
…
TAP Architecture > Administration > Security
45. 45
45
45
Authentication layer – Connection description from the GUI
GUI
master
aaalogindb
aaamaindb
TAP Architecture > Administration > Security
User & Password
defined in
syslogins
1
Check if User/Password is valid.
(step done by the login “aaa_login_manager”)
User
defined in
client_connect
and sysusers
User
defined in
appl_user
and sysusers
Check if the user is linked to a TAP Core server
Check if the user can open the GUI
(Is it a active user?)
2
3
User authenticated
46. 46
46
46
Authentication layer – GUI or isql/Triple’A servers
The authentication mechanism is based on the Sybase security
framework.
To connect to Triple’A Core System, a user is defined in several
places:
User is defined in the PMS main database, “appl_user” table.
User is defined in the PMS login database, “client_connect” table.
User is defined in each “sysusers” (Sybase User) table of each Triple’A
Core databases.
User is defined in the Sybase Master database, “syslogins” table
The password is only stored in the Sybase Master database,
“syslogins” table
TAP Architecture > Administration > Security
47. 47
47
47
Authentication layer – Connection description from the WUI – Realm AAA
TAP Architecture > Administration > Security
WUI
J
A
A
S
O
T
F
-
S
e
c
u
r
i
t
y
I
m
p
l
e
m
e
n
t
a
t
i
o
n
master
aaamaindb
J2EE Server
code defined in
managers,
appl_user &
third_party
WUI Flag activated
Databases
JAAS login module directs the
authentication request to OTF
Otf-security.xml is read to know the
realm (security manager)
Authenticated if user/password is valid
using OTF (third_party in aaamaindb)
Authenticated if user/password is valid
using OTF( manager in aaamaindb)
1
2
3a
3b
R12
48. 48
48
48
Authentication layer – Connection description from the WUI – Realm CDM
TAP Architecture > Administration > Security
WUI
J
A
A
S
O
T
F
-
S
e
c
u
r
i
t
y
I
m
p
l
e
m
e
n
t
a
t
i
o
n
ocsmaindb
aaamaindb
J2EE Server
code defined in
managers
& appl_user
code defined in
gcl_users
Databases
Security service directs the
authentication request to OTF
Otf-security.xml is read to know the
realm (security manager)
Authenticated if user/password is valid
using GCL (gcl_user in ocsmaindb)
Know the code to use in aaamaindb
based on URI defined in shared privilege
field in GCL
1
2
3
4
49. 49
49
49
Authentication layer – Connection description from the WUI – SSO
TAP Architecture > Administration > Security
WUI
J
A
A
S
O
T
F
-
S
e
c
u
r
i
t
y
I
m
p
l
e
m
e
n
t
a
t
i
o
n
ocsmaindb
aaamaindb
J2EE Server
code defined in
managers
& appl_user
code defined in
gcl_users
Databases
Security service directs the
authentication request to the LDAP
(SSO)
Depending the implementation (Full
deployment or Only PMS), associated
privileges to the user are loaded
1
2
LDAP
SSO
SSO with CRM (CDM)
requires a specific customisation
50. 50
50
50
Authentication layer - WUI or RMI/Soap connection - 1
The authentication mechanism depends on the implementation.
There is 3 possible implementations:
If the CRM part is deployed (e.g. CDM), the system is based of the
CDM security. User and Password are stored in the Web database
(ocsmaindb, “gcl_user” table).
If the CRM part is NOT deployed, the system is based of the AAA
security. User and Password are stored in the Core database
(aaamaindb, “manager” table)
External security system (e.g. LDAP), the system is customized and the
User and Password are stored in the external security system
TAP Architecture > Administration > Security
51. 51
51
51
Authentication layer - WUI or RMI/Soap connection - 2
In TAP-Web, the framework managing the security is called
Odyssey Technical Framework (OTF).
The security concept is divided in 3 categories:
Realm
• Responsible for the authentication
• Manage users, group & roles
Domain
• Responsible for the authorization
• Manages resources, control attributes (e.g. select, create, update,
delete) and access control lists
Security Manager
• Centralizes all access to Realms and Domains
• Application developer’s interface
TAP Architecture > Administration > Security
52. 52
52
52
Authorization Layer - GUI or isql/Triple A Core servers
Any action to the Core and TSL databases are performed through
the stored procedures and views. All stored procedures and views
are protected by a Sybase group.
A Sybase group provides a convenient way to grant and revoke
permissions to more than one user.
The Triple A Core and TSL databases are based on two groups:
• triplea
• tasc_tech
Any GUI/isql user must belong to the group “triplea”
The “tasc_tech” group is reserved for the technical user called
“tasclogin”
TAP Architecture > Administration > Security
53. 53
53
53
Authorization Layer -– Multiple technical users
Starting from R12, several TAP Web instances connected to the
same TAP Core instance is supported
Here we will have 3 different TASCLOGIN
“eurotasclogin”, “asiatasclogin” and
“batchtasclogin*
Theses users will belong to the Sybase group
“tasc_tech”
These users will be defined in the aaa_install.cfg file
as below:
TAP Web
R12
Europe
TAP Web
R12
Asia
TAP Core
R12
Batch
TAP Web
R12
# User_Name Default_Database Environ_Name Client_Machine Appl_Owner
Server_Name Group TECHNICAL
U BATCHTASCLOGIN the_aaamaindb theEnv UNDEFINED <NO>
FinServer tasc_tech <YES>
U EUROTASCLOGIN the_aaamaindb theEnv UNDEFINED <NO>
FinServer tasc_tech <NO>
U ASIATASCLOGIN the_aaamaindb theEnv UNDEFINED <NO>
FinServer tasc_tech <NO>
TAP Architecture > Administration > Security
54. 54
54
54
Data Profile
Format Profile
Report Profile
Print Profile
Additional
Data Security
Profile
Function Security
Profile
Language
User
Data Security
Profile
Authorization layer – PMS system is based on profile
TAP Architecture > Administration > Security
GUI
WUI
Data Security
Profile
1 1
1
Manager
Screen Profile
55. 55
55
55
Authorization layer – Manager Vs Third-part access
TAP Architecture > Administration > Security
Data Security
Profile
Screen Profile
Function Security
Profile
User
WUI
Manager
WUI
Third Party
1
Manager
Third Party
1
1
1
Additional Data
Security Profile
56. 56
56
56
Authorization layer – PMS Profile description
Profiles are used to manage access to data, functions, formats,
screens and reports.
Defining profiles is a task for the Administrators of Triple A Core
because it is part of the security management functionality.
Users defined in Triple A Core:
must be assigned to the following:
• Data Security Profile: controls access to data
• Function Security Profile: controls access to functions
• Format Profile: controls access to formats
can also be linked to the following:
• Screen Profile: controls access to screens
• Report Profile: controls access to reports
• Printer Profile: controls access to printers
TAP Architecture > Administration > Security
57. 57
57
57
Authorization layer – PMS data access
All data are secured through a DSP (Data Security Profile)
Starting from R12, two DSP are available per user called Data
Security Profile and Additional Data Security Profile
Purpose
Used to define a fine-grained security
TAP Architecture > Administration > Security
Manager
DP (DSP1-A, DSP2-Gen)
Client
DP (DSP2-A, DSP1-Instr)
DSP1-A DSP2-A
DSP2-Gen DSP1-Instr
PTF1
PTF2
Instr-A
Instr-X
Instr-Y
PTF3
58. 58
58
58
Authorization layer – PMS business functions
All business functions are also secured
This security is applied through the function security profile.
Example: the end-user starts a valuation.
By executing this business function, the system checks if the user
has the rights.
TAP Architecture > Administration > Security
59. 59
59
59
Authorization layer – PMS business profile
This concept is only valid for the WUI
This functionality allows to display to a WUI user (manager or client)
different menus and web pages.
The technical attribute is “wui_profile_e”
Manager table Client table (third_party)
• Default
• RelationshipManager
• MarketingOfficer
• FinancialAnalyst
• Developer
• CdmSo
• PmAdmin
• RetailManager
• Audit
• Admin
• PortfolioManagerForT24
• Default
• Client
TAP Architecture > Administration > Security
60. 60
60
60
Quiz
What are the difference between the PMS and CRM
on the Authentication part using the WUI?
Same question but on the authorization part using
the WUI?
TAP Architecture > Administration > Security
62. 62
62
62
Data
Layer
Triple’A PlusTM – database accesses overview
Core DB Web DB
TSL DB
temptsldb
aaamainb
aaarepdb
aaalogindb
GUI
J2EE
Server
Gateway
Native
Import
Export
Triple’A
Servers
Admin
Scripts
isql
WUI
TAP Architecture > Administration > Databases
Admin
Scripts
Otf-shell
permtsldb ocsmaindb
63. 63
63
63
Databases description
Databases Default name Contents
Core
Login aaalogindb
Information defining the environments (database,
financial servers) available to the user
Main aaamaindb
PMS database.
Contains the meta-dictionary and all business
entities (including the PMS security)
Report aaarepdb
Data used by the reporting system, mainly
temporary
Service Layer
Permanent permtsldb
The objects deployed in this database are pre-
computed values and business extended entities
Volatile temptsldb Objects with short life span
Web Ocs ocsmaindb
CRM database.
Contains CRM business entities (including CRM
security) and report data for mass reporting.
TAP Architecture > Administration > Databases
64. 64
64
64
Triple A Core – PMS database
PMS database is composed of tables for different purposes
TAP Architecture > Administration > Databases
Tables Prefix Description
Meta-Dictionary
dict_
Tables containing the description of the
application.
All objects like entities (physical and
logical) are described with their
attributes, permitted values,
translations,…)
xd_ Tables describing the meta-dictionary
User Defined Attributes ud_
Tables dedicated for the customisation.
Some entities might be customized by
adding a new fields in a ud_table
PMS infrastructure N/A
Core data model (infrastructure tables,
backbone tables, Triple’A Core specifics
tables)
65. 65
65
65
Triple A Service Layer – Permanent database
Permanent database is composed of tables for different purposes
Tables Prefix Description
Infrastructure N/A Job launcher, configuration
Entity extended attributes x_
Fields are mainly intended for the WUI
dashboard and pre-defined queries
Vertical search vs_
Ajax implementation. Automatic
completion left to right
Pattern search ps_
Ajax implementation. Automatic
complementation based on a pattern.
Not yes implemented.
CRM publication cdmq_
TCM and CDM tables filled by the TSL
publication process
Global Cache Format Name
Tables containing data pre-computed.
One table per format.
TAP Architecture > Administration > Databases
66. 66
66
66
Core and TSL data model – Logical vs Physical
TAP Architecture > Administration > Databases
Logical Model (Meta dictionary or Abstract objects)
Database Server = Physical Model
GUI
Client
Triple’A
Server
Report
Client
Triple’A Gateway
Import
Client
Export
Client
Other
modules
WUI
PMS
67. 67
67
67
PMS Core data model
Infrastructure
Currency
Geographic
Third Party
Manager
Sector
Rating
Type
F&T Convention
Calendar
…
Triple’A Specific
List
Format
Domain
Document
Report
Scenario
Notepad
Strategy
Accounting Plan
…
Backbone
Portfolio
Execution
Ext Order
Operation
Position
Balance Position
Instrument
TAP Architecture > Administration > Databases
68. 68
68
68
PMS Core data model example = operation
Buy Sell Income Invest. ... Fee
Extended Operation
position
Logical
View
Physical
View
balance position
ud_operation
operation
TAP Architecture > Administration > Databases
70. 70
70
70
Meta-Dictionary – Description – Main tables
dict_entity & dict_attribute tables contains:
The description of all tables and the attributes of the data model
(instruments, ud_instruments, x_instruments, v_instruments,…)
dict_perm contains all permitted values
(statuses, natures of instruments,…)
dict_type are the datatype used by the application
(amount_t, type_t, flag_t,enum_t,…)
dict_label are the name visible using the GUI/WUI (menus,
functions,…)
TAP Architecture > Administration > Databases
71. 71
71
71
Data configuration
In TAP Core, the concept of SQL User Data is available to offer the
possibility to customize a set of attribute in the system like
System parameter
Permitted value
Attribute
…
The main purposes of these files are:
Persisting the User Change in the database
Guaranteeing the consistency of the system
Keeping the customizations during any upgrade of the system
TAP Architecture > Administration > Databases
72. 72
72
72
Database customization – Concepts
Most Triple A Plus logical entities are customizable: this allows to
add easily new attributes to the database model to cater to any
business requirements.
On the Core database (PMS database), the customization is
performed through the User Defined (UD) Attribute concept
On the TSL databases, it is the extension attribute associated to a
PMS entity.
On the Web database (CRM database), it is the extension table
concept excepted for CDM (blob object)
TAP Architecture > Administration > Databases
73. 73
73
73
Database customization – PMS part
User Defined Attribute entity (PMS database):
Extended Attributes (TSL Permanent database) :
TAP Architecture > Administration > Databases
id code …
1 PTF_1
2 PTF_2
3 PTF_3
ud_id ud_new_field …
1 xyz
2 NULL
3 abcd
portfolio table ud_portfolio table
id code …
1 PTF_1
2 PTF_2
3 PTF_3
portfolio table
in aaamaindb
x_portfolio table
in permtsldb
x_id x_ptf_cur …
1 EUR
2 EUR
3 EUR
74. 74
74
74
Database customization – User defined Entities
As from R12 is supported the concept of user-defined entities (UDEs)
UDE provides an extension of the standard data model with a new entity.
These custom entities are managed like standard ones. This includes:
• Administration in the GUI.
• Data importation through Triple'A Plus Core interface processing.
• Back-end services accessed from the WUI
Modelling and creation has to be done through Design Studio
Definition of this new entity (including business and primary keys)
All permitted values and flag attributes completely described.
Label describing the database structure (entity, attributes,…)
At the end, DS generates a TAP Core native import file ready for a
load into TAP Core meta dictionary
TAP Architecture > Administration > Databases
75. 75
75
75
Database customization – DDL Generator
A new Data Definition Language Generator has been developing to
have a uniform management of all entities in TAP Core
Generated files are stored in AAA_HOME/ddl/src
(stored procedures : *.psc / views: *.vsc files)
Meta Data
Custom Meta Data T’A Meta Dict
Database
Table, Triggers, Indexes,
Constraints, Foreign keys,
Views, Stored Procedures
Metadict Definition
dict_entity,
dict_attribute,
…
DDL Generator Tool (RPC)
TAP Architecture > Administration > Databases
76. 76
76
76
Triple’A Plus secure objects may offer a view over several entities.
From the onset, each major entity has been associated with a second
entity (1:1 relationship) that is a container for user defined fields.
Since R11, through its Triple’A Service Layer (TSL), brings the
extended entity attributes (aka computed attributes)
These fields (or attribute in relational terms) belong to a table stored in
a separate database to that of the base entity and the UD table of an
entity, the TSL permanent database
PMS database – Secured Object
Base entity
Secure
object
Entity
User-defined
attributes
Entity
Extended
attributes
aaamaindb permtsldb
TAP Architecture > Administration > Databases
77. 77
77
77
Extended attributes are data computed
Only some of entities (e.g., portfolios, third parties, etc.) have
extended attributes.
All extended attributes are computed attributes defined through
formats (computed during night batches executed through TSL)
Based on the parent-child inheritance principle, extensions are
computed by formats at the child level and stored in a format at the
parent level
The parent format contains empty formats elements defining the
computed attributes
The child format must return to the parent one result and never a set
TAP Architecture > Administration > Databases
78. 78
78
78
Extended attributes are based on formats
Parent Format defining computed attributes
Child Format
Computed
Attribute 1
Child Format
Computed
Attribute 2
Child Format
Computed
Attribute N-1
Child Format
Computed
Attribute N
TAP Architecture > Administration > Databases
79. 79
79
79
TSL Extensions
Calculation
Extended attributes – Computation mechanism
Base entity
Secure
object
UD attributes
Extended
attributes
Extended attributes
One to one
attributes
mapping
Parent Format
SQL Format 1 Child Format n
Child Format 1
One result
returned
TAP Architecture > Administration > Databases
80. 80
80
80
Quiz
Does a direct access between the FS
and TSL databases?
What are the different concepts to customize
the TA+ data model?
What is the purpose of the DDL generator tool?
TAP Architecture > Administration > Databases
81. 81
81
81
Unit summary
Triple A Plus global architecture
Focus on security concepts
Focus on the databases (access, how to customize,
objects)
TAP Architecture > Administration
84. 84
84
84
Import / Export Gateway Overview
Standardized interfaces and data layouts to facilitate data flow in
and out of Triple A Plus
Automated tools built on IBM’s Websphere TX technology.
Import
Ability to insert, update & delete configuration and user data in Triple A by
• Calling batch Import tools from the command line
• Accessing Online Import Adapter from WTX
Export
Ability to export configuration and user data by
• Calling batch Export tools from the command line
Subscription
Event Driven Interface to
• Trigger data to other systems via WTX
• Fulfil System Audit Requirements
TAP Architecture > Interfaces > Technical overview
85. 85
85
85
Gateway PACK – Overview
Schema View
Triple A Core
Native Import File
Import/Gatit
transform
CMD INSERT currency
ATT code name geographic
DAT USD "US dollar" US
DAT CHF "Swiss franc" CH
TAP Architecture > Interfaces > Technical overview
86. 86
86
86
Gateway PACK – Description
The Architecture contains five entry points for loading data into
Triple A Core
XML – Online Mode – Back to Front
XML – Batch Mode – Back to Front
XML – Online Mode – Front to Back
Native Import File – Batch Mode
Native Import File – Online Mode
Online Mode is using the Gateway Adapter for importing data into
Triple A Core
Batch Mode uses the Native Import mechanism even if the
incoming source is an XML file
TAP Architecture > Interfaces > Technical overview
91. 91
91
91
A DLL (Windows) or Shared Library (Unix) which provides a
mechanism
to import into Triple’A
to export data from Triple’A
Gateway (Application) Adapter
WTX
File of
Records
Gateway
Application
Adapter
Mapped
Data
Errors
Online
Interface
Triple’A
Mapped
Data
Output
of
imp/exp
Output
of imp/exp
TAP Architecture > Interfaces > Gateway
92. 92
92
92
Components are:
libgatit.so – Application adapter
libolit.so – Online Interface
rolitd – RPC Server facilitating communication between libgatit and libolit
librolit.so – RPC Client library that communicates with rolitd
aaa_rolit.sh – Shell Script used to launch rolitd
Gateway composition
libgatit.so
Application adapter
WTX Launcher Process
Batch
Imp/Exp
Batch
Imp/Exp
rolitd RPC Server
libolit.so
T’A
Online
interface
RPC
Layer
aaamaindb
librolit.so
aaa_rolit.sh
TAP Architecture > Interfaces > Gateway
93. 93
93
93
IBM Websphere Transformation eXtender
What
A transaction-oriented Data Integration Solution. (Enterprise Application
Integration Product).
Composed of
• A client-based design environment (Windows)
• Several server-based execution options (Unix and Windows)
Components
Maps (*.mmc)
• Executable Component which performs Data Transformation and Routing
• Typetrees are the Format Definition of data source/destination
Command Server
• Provides a command-driven capability for the execution of maps.
Event Launcher
• Provides a real-time, event-driven model for executing maps and systems of maps
• System (*.msl): Collection of Maps to be run within an Event Launcher
TAP Architecture > Interfaces > Gateway
94. 94
94
94
IBM Websphere TX - Map
Environment Configuration
Triple’A Native Import
WTX Map (*.mmc)
Inbound
Typetrees
Transformation
Rules
Outbound
Typetrees
Currency
Format
Configuration
File
Format
Log File
Triple’A
Native Import
Format
Back-Office via MQ
Import Log
TAP Architecture > Interfaces > Gateway
95. 95
95
95
IBM Websphere TX - Command Server
$AAAHOME/aaa mercator GWPACK_HostComp.mmc -IF1 BackOfficePositions.imp -OF1 HostComp.txt
Ascential DataStage(TM) TX Solaris(TM) Command Server - version 7.5(119_1_ec68907)
Copyright (c) 2004 Ascential Software Corporation.
Map file: /GWPACK/maps/GWPACK_HostComp.mmc -IF1 BackOfficePositions.imp -OF1 HostComp.txt
In # 1: 20358 Out # 1: 5358 Time: 0:00
Map completed (0): Map completed successfully (0.609 seconds)
TAP Architecture > Interfaces > Gateway
WTX Map (*.mmc)
Inbound
Typetrees
Transformation
Rules
Outbound
Typetrees
Currency
Format
Configuration
File
Format
Log File
Triple’A
Native Import
Format
Back-Office via MQ
Import Log
96. 96
96
96
IBM Websphere TX - Event Launcher
TAP Architecture > Interfaces > Gateway
System #1: Back Office Data
Map:
Positions
Data
System #2: Order Management System
Map:
Order
Cancellation
Map:
Update
Triple’A
98. 98
98
98
Overview
Provides
Functional XML Schema’s to facilitate ease of Integration
Automated mechanisms for complete Interface Management
• Importing & Exporting Data
• Online and Batch Modes
• Error Management
Recycling
Reporting
• Statistics
• A Control Menu
Functionally Composed of two parts
Back-to-Front (B2F) for loading Back-Office data into Triple A Core for
initial load and daily updates
Front-to-Back (F2B) for feeding an Order Management System with
Order Instructions generated in Triple A Core
TAP Architecture > Interfaces > Gateway Pack
99. 99
99
99
Gateway Pack – Architecture Overview
Built on IBM Websphere TX Technology
Files are:
WTX Event Systems and Maps
Shell Scripts
Triple A Core Subscriptions
Processes
Launcher monitors incoming data into the Gateway Pack structure and
automatically executes the appropriate WTX maps.
Rolit imports data into Triple A Core when running an online importation
Subscription monitors subscription events in Triple A Core
Recycling restarts the importation of output files containing errors.
TAP Architecture > Interfaces > Gateway Pack
100. 100
100
100
Gateway Pack – Systems
Defined Systems are split by Functional Interface Requirements
During Implementation systems which are not required should be
removed from the Event Launcher
GWPACK.msl
Back-to-Front Interface Maps
GWPACK_F2B.msl
Front-to-Back Interface Maps for Securities Order Management.
GWPACK_F2B_MM_FX.msl
Front-to-Back Interface Maps for Money Market and Foreign Exchange
Order Management.
GWPACK_iMDI.msl
Interface Maps for “Intelligent Market Data Interface.”
TAP Architecture > Interfaces > Gateway Pack
103. 103
103
103
Subscription - Overview
Subscription is a feature that facilitates monitored events and sends
event notifications whenever the predefined events occur.
TAP Architecture > Interfaces > Gateway Pack
Kind of events Information
Event
• Defined events are monitored and recorded to the “event” table.
• Each time an event or group of events is written to the “event” table, and
entry is recorded in an “event update” table.
• A Daemon Process polls the “event update” table. Matching events are sent
to a Gateway map before updating or deleting events from the “event” table
Example: Order Life Cycle – Transactions with a status “order” are
automatically sent through the subscription interface to an Order Management
System
Audit
• Defined events are monitored and recorded to the “audit” table.
• Data content is stored as a blob and contains all “before & after” values on
the entity
Example: Log all changes to user information (who? Time? Old/New value?
etc.)
104. 104
104
104
Subscription - Event Architecture
Subscription Table
Event 1: Watch for Inserts on ExtOp Table
Event 2: Watch for Updates on ExtOp Table
Event 3: Watch for Deletes on ExtOp Table
Event Table
Event 1: Inserts on ExtOp Table
Event 2: Updates on ExtOp Table
Event 3: Deletes on ExtOp Table
GUI SRV IMP
Event Update Table
Date/Time of last Update
External Application
(swift, reuters, …)
1. At Start-up (aaa subd), the Subscription table is loaded into Memory
2. When event occurs an entry is inserted into the ‘Event Table’ (ET)
3. A Record is inserted into the ‘Event Updates’ Table
4. Subscription Daemon polls the ‘Event Updates’ Table
5. If record found, all new events read from ET
6. Data transformed in WTX & sent to defined destinations
7. Event Deleted from ET & Event Updates Table.
Possible Operation Status Update
1
2
3
4
5
6 6
7
Triple’A Daemon
WTX API
Triple’A
aaamaindb
7
TAP Architecture > Interfaces > Gateway Pack
105. 105
105
105
Subscription - Audit Architecture
Subscription Table
Event 1: Watch for Inserts on ExtOp Table
Event 2: Watch for Updates on ExtOp Table
Event 3: Watch for Deletes on ExtOp Table
Audit Table
Event 1: Inserts on ExtOp Table
Event 2: Updates on ExtOp Table
Event 3: Deletes on ExtOp Table
GUI
SRV
IMP
1. At Start up, the Subscription is loaded into Memory
2. When an Event occurs, an insert is performed in the Audit Table
3. To Extract the data, the command “aaa AUDIT” must be executed
to send the data to WebSphere TX Extender
1 2
3
WTX API
aaa
AUDIT
TAP Architecture > Interfaces > Gateway Pack
106. 106
106
106
Gateway PACK - Overview
Main Goal:
map XML files validated by the different XML schemas to Triple A Core
importation files.
XML schemas group information into Functional views
and not Entity views as it is in a Triple A Core importation file.
Facilitates
automated importation of Native Import Files where XML schemas are
not supported.
Online and Batch interfacing
Error Checking, Recycling, Archiving
TAP Architecture > Interfaces > Gateway Pack
107. 107
107
107
Gateway PACK B2F – XML Online
TAP Architecture > Interfaces > Gateway Pack
1. XML Document arrives in /xml_online Directory
• Processed by Master Map which validate schema
and calls underlying map
• imported directly using libgatit
2. Output put file generated by Import Processed
• output_processed contains full output file
• output_report contains report of failures & stats
• output_xml xml representation of output_report
• statistics contains entity statistical data
• reload_output is failed records for recycling
3. Statistics updates Daily Global Statistics file with
• type & nature data
• SUC/ERR records
4. Recycling is a separate Daemon.
• The file containing only failed records resubmitted
• The output is sent to ProcessOutput
Gateway Adapter
(libgatit)
Online
GWPACK
_Master
_Online
/xml_online XML2TA_
Position
XML2TA_
FI
XML2TA_
Infra
XML2TA_
Client
XML2TA_
Transaction
ProcessOutput
Output Report File
/output_report
Output XML File
/output_xml
Output File
/output_processed
GWPACK_
ProcessOutput
Output Import File
/output
Recycling
Output File
/reload_output
Online Import File
/online_import
Daemon
Statistics
Statistics File
/statistic
GWPACK_
Statistic
Triple A
Core
Gateway Adapter
(libgatit)
108. 108
108
108
Gateway PACK B2F – XML Batch
1. XML Document arrives in /xml_batch Directory
• processed by Master Map which validates the schema calls underlying map
• import file placed in /batch_import & processed by GWPACK_Import_Batch
2. Output put file generated by Import Processed
• output_processed contains full output file
• output_report contains report of failures & stats
• output_xml xml representation of output_report
• statistics contains entity statistical data
• reload_output is failed records for recycling
3. Statistics updates Daily Global Statistics file with
• type & nature data
• SUC/ERR records
4. Recycling is a separate Daemon.
• The file containing only failed records resubmitted
• The output is sent to ProcessOutput
TAP Architecture > Interfaces > Gateway Pack
Batch
GWPACK
_Master
_Batch
/xml_batch XML2TA_
Position
XML2TA_
FI
XML2TA_
Infra
XML2TA_
Client
XML2TA_
Transaction
Native Import
ProcessOutput
Output Report File
/output_report
Output XML File
/output_xml
Output File
/output_processed
GWPACK_
ProcessOutput
Output Import File
/output
Statistics
Statistics File
/statistic
GWPACK_
Statistic
Triple A Core
Import
Import File
/batch_import
GWPACK
_Import
_Batch
Recycling
Output File
/reload_output
Daemon
109. 109
109
109
Gateway PACK B2F – Native Import File
1. Native Import File arrives in Directory
• Processed by specific ExtImport map which validates the schema and
• imports data
2. Output put file generated by Import Processed
• output_processed contains full output file
• output_report contains report of failures & stats
• output_xml xml representation of output_report
• statistics contains entity statistical data
• reload_output is failed records for recycling
3. Statistics updates Daily Global Statistics file with
• type & nature data
• SUC/ERR records
4. Recycling is a separate Daemon.
• The file containing only failed records resubmitted
• The output is sent to ProcessOutput
Gateway Adapter
(libgatit)
Online
GWPACK_Master_
ExtImport_Online
Import File
/extimport_online
ProcessOutput
Output Report File
/output_report
Output XML File
/output_xml
Output File
/output_processed
GWPACK_
ProcessOutput
Output Import File
/output
Triple A Core
Batch
GWPACK_Master_
ExtImport_Batch
Import File
/extimport_batch
GWPACK_
Import_Online
Import File
/online_import
GWPACK_
Import_Batch
Import File
/batch_import Native Import
Recycling
Output File
/reload_output
Daemon
Statistics
Statistics File
/statistic
GWPACK_
Statistic
1
1
2
3
4
TAP Architecture > Interfaces > Gateway Pack
110. 110
110
110
Gateway PACK F2B – XML Online F2B
1. XML Document arrives in /xml_f2b Directory
• Processed by F2B specific XML2TA_F2B map which
validates the schema and
• imported directly using libgatit
2. Output put file generated by Import Processed
• output_processed contains full output file
• output_report contains report of failures & stats
• output_xml xml representation of output_report
• statistics contains entity statistical data
• reload_output is failed records for recycling
3. Statistics updates Daily Global Statistics file with
• type & nature data
• SUC/ERR records
4. Recycling is a separate Daemon.
• The file containing only failed records resubmitted
• The output is sent to ProcessOutput
Gateway Adapter
(libgatit)
ProcessOutput
Output Report File
/output_report
Output XML File
/output_xml
Output File
/output_processed
GWPACK_
ProcessOutput
Output Import File
/output
Recycling
Output File
/reload_output
Online Import File
/online_import
Daemon
Statistics
Statistics File
/statistic
GWPACK_
Statistic
Triple A Core
Gateway Adapter
(libgatit)
F2B
XML2TA_F2B
/xml_f2b
1
2
3
4
TAP Architecture > Interfaces > Gateway Pack
111. 111
111
111
Quiz
How many components does the Triple A Core
Gateway make up?
In which table is an even inserted ?
What is the purpose of Gateway Pack ?
TAP Architecture > Interfaces
112. 112
112
112
Unit summary
Native Triple A Core Import /Export
Triple A Core Gateway
Gateway Pack
TAP Architecture > Interfaces
115. 115
115
115
Cocoon
Cocoon Framework
Framework built around the Model–View–Controller (MVC) paradigm
Implements this paradigm around the notion of component pipelines, each
component on the pipeline specializing on a particular operation
WUI cocoon sitemap (sitemap.xmap)
Core of WUI cocoon web application.
Configuration of the different Cocoon components
Definition of the client/server interactions in what Cocoon refers to pipelines
WUI cocoon components configuration (cocoon.xconf)
Specification of how the different Cocoon components interact with a given
request to produce a response.
Defined by a Cocoon pipeline.
A typical pipeline consists of a generator, followed by zero or more transformers,
and finally a serialization.
TAP Architecture > Web > Overview
116. 116
116
116
WUI Core, Technical framework and Configuration files
WUI Core
Core of the Triple A Web application, classes implementation
Configuration files
Mostly xml files used for communication to third application (Triple A Core), data
sources settings, computations configuration (engines, data providers, …) and
interactions between components
Tag libraries
a set of tags packaged and distributed together to accomplish related tasks
without calling directly WUI core
Odyssey Presentation Framework (OPF)
a set of tags packaged and distributed together to display information
TAP Architecture > Web > Overview
117. 117
117
117
WUI Blocks and Pageflow
WUI Blocks
Two kind of blocks : Design Studio WUI block files and Manual WUI block files.
Access to the Pageflow engine and configuration files
Customization consists in replacing the standard package by a customized
package.
Package are created using Design Studio
Pageflow
Pageflow configuration file contains the list of states, transitions, and actions a
user can go through to perform a specific business task.
Pageflow engine is a state machine and executes the requested transition from
it to another state, and returns the view URL associated with this state.
Depending the context, the pageflow engine loads the appropriate configuration
file
TAP Architecture > Web > Overview
119. 119
119
119
Apache Cocoon
OCS WUI is based on the Apache Cocoon framework and as such
defines Cocoon pipelines and tag libraries.
Apache Cocoon, usually just called Cocoon, is a web application
framework built around 3 main concepts.
Pipeline
Separation of concerns
Component based web development
The framework focuses on XML and XSLT publishing and is built
using the J2EE platform
It allows rapid content publishing in a variety of formats including
HTML, PDF, WML, SVG…
TAP Architecture > Web > Cocoon
120. 120
120
120
Definition: Design Pattern that helps solve
some of the problems generated by defining
an approach to handling the relationships
among the data, application and presentation
Cocoon & Model View Controller (MVC)
Model
Controller
View
Check
model
state
Notification of
change in
model state
View Selection
Change
model
state
User Interactions
Model: represents the data and the
fundamental business rules that
determine how the data can be
accessed and maintained
View: manages the presentation of the
model. A model can have multiple
views
Controller: picks up the user
interactions & converts those into
actions for the model to handle &
changes the view accordingly
TAP Architecture > Web > Cocoon
121. 121
121
121
Apache Cocoon – Separation of Concerns (SoC)
Management: refers to the decision makers, those who determine what
is going onto the site and how it should appear
Logic: who are responsible for developing the code that accesses dbs,
encapsulates business rules
Content: who are responsible for creating and owning the raw site
content
Style: who are responsible for presenting the content, its look and feel
TAP Architecture > Web > Cocoon
Management
Logic Content Style
sitemap.xmap
Cocoon.xconf
XML
XSP
Taglibs
XSLT
CSS
Logicsheet
XSLT
Java
122. 122
122
122
Cocoon Components Libraries
Pipeline Model - Overview
Client Cocoon
Http request
Cocoon:Sitemap Cocoon:Pipeline
Translate request
to pipeline
Select pipeline
Http response
WML
SVG
PDF
HMTL
Act Generate Transform
Transformer
Serialize
Serializer
Generator
Action
Request Response
SAX
SAX
Sitemap
TAP Architecture > Web > Cocoon
Generator: starting point for the pipeline (Content generation)
Transformer: transforms data flowing through the pipeline.
Serializer: serializes SAX events to byte/character stream.
123. 123
123
123
Pipeline model – Content vs Data
A pipeline consists of a chain of processing elements arranged so
that the output of each element is the input of the next
The information that flows in these pipelines is often a stream
succession of data elements made available over time
XSP page XML document containing tag-based directives that
specify how to generate dynamic content at request time.
Most of WUI pages are XSPs
Composed of tag libraries
The templates are applied to the xsp page before the java compilation
TAP Architecture > Web > Cocoon
Generator ... Serializer
Transfor-
mer 1
Transfor-
mer 2
Transfor-
mer n
volume of information
content/presentation
124. 124
124
124
Pipeline Model – Description
Cocoon relies on the pipeline model: When a request is received,
Cocoon determines a pipeline in which the request will go through a
sequential chain of events to generate a response
The pipeline and sequence is determined by url matching
Cocoon main configuration file is called sitemap
A pipeline is used to specify how the different Cocoon components
interact with a given request to produce a response.
Every pipeline
begins with a generator,
continues with 0 or more transformers that transform data flowing
through the pipeline
and ends with a serializer that serializes SAX events to
byte/character stream
TAP Architecture > Web > Cocoon
125. 125
125
125
Apache Cocoon – pipeline – Generator
The Web model is rather simple. One request,
one response! In Cocoon, the way the
response is constructed always starts with a
generator. XSP technology simply allows
writing generators in XML.
The following diagram summarize the process
of turning an XSP page into a generator:
1. A request is received by Cocoon
and it determines, from the sitemap
configuration, that an XSP page
should serve it.
2. The first time or after any update in
the sources, Cocoon 2 must
compile the required XSP page,
involving the following steps:
3. Parsing the XSP document
4. Transforming the XSP page using a
dedicated XSLT style sheet, to
generate Java source code
5. Storing the resulting Java file, after
neatly indenting and formatting the
source using a code formatter
6. Compiling the source into a
Generator
7. Loading and executing the compiled
Generator within the request
pipeline
TAP Architecture > Web > Cocoon
my.xsp
my_xsp.java
my_xsp.class
XSLT
ServerPages
Generator
Transformer
Serializer
XSP
Compile
Pipeline
Pipeline
request
126. 126
126
126
XSP definition
Definition: eXtensible Server Page is a XML based language, which
offers the possibility of dynamically arranged Java code into XML
documents
Developed for the Web Publishing Framework Cocoon
The focus of XSP is the separation of content, logic and
presentation.
XSP pages are transformed into Cocoon producers, typically as
Java classes
TAP Architecture > Web > Components
127. 127
127
127
Sitemap concepts
The sitemap is at the core of Cocoon
Location where the web developer
configures the different Cocoon components,
defines the client/server interactions in what Cocoon refers to as the pipelines.
Used to resolve requests for resources:
Matches requests to a set of processing commands inside a pipeline
Can also contain links to sub sitemaps that configure specific parts
of the application
The sitemap files are then used to indicate
How WUI pages can be found in the OCS file architecture when an action is performed.
TAP Architecture > Web > Cocoon
129. 129
129
129
Overview
The Odyssey Presentation Framework (OPF) contains general user
interface components.
TAP Architecture > Web > Components
Interface Description
Presentation
Layer called in TAP Uniform Data Presentation
managing the display of data (tag libraries and
XML transformation)
Menu to create a multi-language & secured menus
Multi-profile to handle the different WUI user profiles
Scope
to ensure consistent variable management
across the whole application
User preferences user choices as language, time zone,...
130. 130
130
130
Presentation – Uniform Data Presentation (UDP) definition
Generic presentation layer which mainly deals with
data acquisition,
data transformation and
data output.
Supports the table models returned by the Triple Service Layer
Data is manipulated in the same way, irrespective of the system
that generated it.
This layer implements the filtering, formatting, parsing, pagination,
grouping, aggregation and sorting algorithms only once for all the
data.
Further more functions like displaying columns in the correct order,
computing new columns on the fly, computing aggregated group
values,… are managed with this tag library.
TAP Architecture > Web > Components
131. 131
131
131
Presentation – Tag library definition
The term "taglib" comes from JSP, which inspired XSP.
An XSP logic sheet is a "tag library" in the sense that it defines a set
of custom XML tags which can be used within an XSP program to
insert whole blocks of code into the file.
Cocoon comes with several pre-defined "taglibs", such as the
request taglib.
Two kind of tag libraries are used in TAP Web application:
"render"/"format" portion of document: xgui taglib, udp taglib, xbuild taglib, cdmcomp taglib,
etc.
"talk" to the Odyssey back-end components (also called “business”): Contact taglib
TAP Architecture > Web > Components
132. 132
132
132
Presentation – XGUI definition
Core presentation tag library that permits to define the content of a
page
Used on top of the presentation layer to generate a displayable
page: XML Description of a user interface screen
All WUI pages are described with XGUI
Uniform usage of widget across complete application
Uniform rendering of these widgets
Uniform behavior of these widgets
XGUI library generates optimized HTML code and several UI widgets are
available.
TAP Architecture > Web > Components
133. 133
133
133
Menu – ACL definition
The User Interface (UIF) as part of the PF is responsible for the
handling of the menu functionality
Menus are defined in xml document and un-marshalled by UIF once
per user session after a page is requested
Menus are reloaded if the user changes his WUI profile during his
session
The menu xml definition language is enriched with an optional
security attribute acl (Access Control List)
When building the menu hierarchy for the user, the acl is checked
against the configured OTF security domain (security-domain defined in
the RootMenu.xml file)
• If the user is not authorized to access this resource, the menu will
be disabled
The security check prevails on all enabling mechanism
TAP Architecture > Web > Components
134. 134
134
134
Multi-profile
WUI implements the Multi-profiles strategy. A profile is implemented
for business purpose.
The default packaging provides 4 different profiles
• Default
• RelationshipManager
• PortfolioManagerForT24
In a WUI Block, each profile corresponds to a specific folder located
in /oams-profiles folder
Profiles might be organized hierarchically: it is possible to have
profiles having the same parent profile
TAP Architecture > Web > Components
135. 135
135
135
Scope – Definition
The UIF-Context module provides the necessary infrastructure to
manage scoped variables
This mechanism is similar to the Cocoon action-set concept to
execute Java code before the request is processed
Principle
To hold variables across multiple requests and to pass information
along through components (such as XSP pages), Web applications
written in Java use the session object.
UIF-Context module extends this mechanism by providing the scope
object
TAP Architecture > Web > Components
136. 136
136
136
Scope – Lifetime and hierarchy
There are four different scopes implemented by UIF-Context
TAP Architecture > Web > Components
Scope Description
User
• Lifetime equivalent to the user’s session lifetime.
• A UserScope variable is accessible from any activity/page/module level until the
user logs out or the user session expires
Activity
• Accessible when the requested URLs point to the same business activity.
• One ActivityScope is created per accessed business activity.
• UserScope variables must be used to share information among distinct activities.
• Changing of activity does not invalidate the other ActivityScopes, so the user can
come back to a previously used activity and continue working in the same
context.
Page
• Remains valid as long as the same page is requested
• It is used for implementing HTML form round-trips or when changing the output
format of a page
• Pageflows use the PageScope as a "pageflow scope"
Module
• Same lifetime validity as PageScope but variables are visible inside the module
only.
137. 137
137
137
Pageflows
A pageflow defines the flow of control for a set
of pages that execute within a web application
It is represented by a connected graph.
Pageflow Graph: eq. to State Diagram.
• Defines the sequence of states and transitions
between states i.e. navigational representation of
a pageflow.
State: Specific status of business task being
performed. Must be unique within the graph
Transition: Operation the user can do from a
specific state of the pageflow
Process: Business action executed when a
transition is navigated. 2 types: Standard &
Validation Process
Redirector: Choice point implemented by the
result of the last executed process
View: Page to be displayed to the user on a
pageflow state
Pageflow Graph
TAP Architecture > Web > Components
138. 138
138
138
Page layout
A WUI page is organized as follows:
WUI Page
Header
Body
Company /
Product logo
Primary navigation bar Dock items User info
Toolbar / Global commands
Domain Context
Summary View
Detailed View
Second navigation bar
Footer
Horizontal navigation
• Pageflow based
Body
• Domain context with
autocomplete search
• Synchronized Summary &
Detailed views
• Personalization allowing to
display/hide columns, sort
information
TAP Architecture > Web > Components
139. 139
139
139
User Preferences component
The chosen language, time zone, and current user profile are stored
in Triple A Core database
Since R11, they have been extended to include persistence of
column selection
column order and
sorting options in tables.
They apply on all type of WUI page output (HTML, XLS, PDF)
TAP Architecture > Web > Components
141. 141
141
141
Introduction
Design Studio is an IDE workbench with a number of features
specifically designed to support building and maintaining the Web
front-end of Triple’A Plus
Based on Eclipse,
Follows the OMG Model Driven Architecture (MDA Approach
Generates technical artifacts (XSP, Java Code, XML configuration files)
Includes the following designers:
Domain designer to represent the business objects manipulated by the
other designers
Page, module and page fragment designers to graphically configure the
Web User Interface, and create reusable page building blocks
Page Flow designer to assemble pages in a logical and guided flow
Business rule designer to easily specify the rules used in page flow and
workflow transitions, but also for validation or specific computations
TAP Architecture > Web > Design Studio
142. 142
142
142
Design Studio vs Cocoon
Design Studio and Cocoon follow the MVC paradigm
With Design Studio,
Controller are Pageflow (PMS) and Pageflow/Workflow (CRM)
Model are datasets
View are Pages, Modules and Fragments
TAP Architecture > Web > Design Studio
143. 143
143
143
Configuration and Designers
Design Studio is enhanced to fully support PM&A and PG functions
and integration with T’A Core
Configuration:
Workspace Configuration is simplified
New Server view to deploy the models projects on the application
server or Embedded Server
Domain Designer allows to
manage new domain entities like Business Type
manage dataset like a class
with the pms-model project:
• import T’A Formats & Meta dictionary
• manage new User Defined Entities to create in Triple’A
• manage TAP API (remoting infrastructure available in the next release)
TAP Architecture > Web > Design Studio
144. 144
144
144
Designers and Other
Page/Module/Fragment Designer allows to
Design complex tables with grouping, sorting, aggregation, …
capabilities
Design matrices
Include hand coded xsps
Menu Designer allows to
Manage menu and entry point to the pageflow
Security menu (ACL)
TAP Architecture > Web > Design Studio
145. 145
145
145
Functionalities
Dependencies Management:
Design Studio embarks the Maven plugin for Eclipse to manage the project
dependencies and libraries’ versions
A local repository of the libraries in use in the WUI is created when installing
Design Studio
The models & templates projects contain a maven configuration file (pom.xml)
that defines also their output artifact (jar, war, ear, …)
Collaborative Work:
Multi-user collaboration on DS is possible as Design Studio includes a
Subversion (SVN) client, allowing the typical check-out and check-in team
operations to a central Subversion server.
TAP Architecture > Web > Design Studio
146. 146
146
146
Templates
Templates:
Design Studio proposes several types of templates project to support
the customization and cover the development lifecycle
customization workspace templates model to generate all the projects
structure to allow creating
• WUI blocks (incl. menus, activities, modules, patches)
• WUI libraries
• WUI processes
An Embedded Server template model to create a light http server
where the generated artifact of your model project will be deployed
A customization packager template model to create the final
customization package to be deployed on an external environment
TAP Architecture > Web > Design Studio
147. 147
147
147
Quiz
What is the name of the Cocoon configuration file?
What is the concept allowing to secure the WUI menu ?
What is the procedure to create a WUI customized package?
TAP Architecture > Web
150. 150
150
150
Reporting Architecture and Features
GUI
WUI
Custom
Batch Tool
(Java API)
Application Server
AWSC-SOAP
API
Actuate
Server
Standard Reports
OFC
Services Report
DB
AAA_RS JAVA
On Demand
Batch Service
Triple’A
Server
Main
DB
Rep
DB
On Demand
Reporting Manager
TAP Architecture > Reporting
Custom
Batch Tool
(TSL Client)
TASC
API
API
(TASC / OData)
151. 151
151
151
Reporting Features – Description
The main features of Reporting with Live!Reports are:
Creating reports from existing TAP Core financial functions.
Online reporting from the WUI / API and GUI. PDF previews are
possible.
Batch reporting with Report Launcher or AAA_RS Java batch service.
The on-demand reporting can be launched from
the GUI through the AAA_RS Java or
the WUI / API through TAP components such as Job-Launcher and
Reporting Manager.
The batch reporting can be produced using the AAA_RS Java
Batch Service.
TAP Architecture > Reporting
153. 153
153
153
On-line reporting from the WUI – Description
In Triple’A Plus, all available reports rely on Triple’A Plus Core
financial functions, which implement extended parameters for
publication mode or output setup.
Triple’A Plus Reporting supports
tiled mode (the output is composed of a single report with a separate
section for each portfolio) and
burst mode (the output is composed of a separate report for each
portfolio).
From the WUI, the Portfolio Manager (PM) can run an on-line
business report to obtain a hardcopy of the financial statement.
The PM runs the report from a financial function and provides a set of
parameters that define the report's context.
TAP Architecture > Reporting
154. 154
154
154
TSL Reporting FlowService
Triple’A Plus Reporting consists of a customizable and extensible
reporting architecture that generates online reports from the Triple'A
Plus Web User Interface (WUI).
The main components of this solution are:
The TSL reporting flow service: The WUI will call this service to start
the report generation.
The Reporting Manager that manages the reporting pipeline: validation
and default values, service execution, report generation, and finally
report storage.
The Report BPI job tsl-live-reporting-job.xml that is responsible to run
reporting generation sub-job asynchronously and in parallel
TAP Architecture > Reporting
155. 155
155
155
TSL Reporting FlowService
TSL
ExecuteReportingFlowService
BPI Job
tsl-live-reporting-job
Actuate
Birt
iServer
YourReport.ROI
WUI
ReportingContext
pageflow
Triple’A
Main DB
Triple’A
Server
JCR Content
Repository
Reporting
DB
1. Report generation is managed by the ReportContext
pageflow which invokes the ExecuteReportingFlowService
2. The ExecuteReportingFlowService starts the
BPI job tsl-live-reporting-job
3. The tsl-live-reporting-job is responsible to call
the Actuate Birt iServer
4. Actuate iServer executes the report
5. The report executes the financial
functions required to fill the report
content via stored procedures
defined in the aaamaindb
6. The financial function result is stored in
the aaarepdb
7. Actuate returns the PDF report to the
tsl-live-reporting-job
8. The pdf report is stored in the content
repository
TAP Architecture > Reporting
156. 156
156
156
Quiz
How many user reporting interfaces are available
in TA+?
What are the main difference between
the “on-demand reporting” through the GUI and the WUI?
TAP Architecture > Reporting
157. 157
157
157
Unit summary
What are the different way to perform a reporting
Focus on the online report using the GUI and the WUI
TAP Architecture > Reporting