Clarity Technical Know-How Volume One Michael Hoefer VP & Chief Architect, Clarity PPM
Terms of This Presentation This presentation was based on current information and resource allocations as of October 2009 and is subject to change or withdrawal by CA at any time without notice. Notwithstanding anything in this presentation to the contrary, this presentation shall not serve to (i) affect the rights and/or obligations of CA or its licensees under any existing or future written license agreement or services agreement relating to any CA software product; or (ii) amend any product documentation or specifications for any CA software product. The development, release and timing of any features or functionality described in this presentation remain at CA s sole discretion. Notwithstanding anything in this presentation to the contrary, upon the general availability of any future CA product release referenced in this presentation, CA will make such release available (i) for sale to new licensees of such product; and (ii) to existing licensees of such product on a when and if-available basis as part of CA maintenance and support, and in the form of a regularly scheduled major product release. Such releases may be made available to current licensees of such product who are current subscribers to CA maintenance and support on a when and if-available basis. In the event of a conflict between the terms of this paragraph and any other information contained in this presentation, the terms of this paragraph shall govern. 2 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
For Informational Purposes Only Certain information in this presentation may outline CA s general product direction. All information in this presentation is for your informational purposes only and may not be incorporated into any contract. CA assumes no responsibility for the accuracy or completeness of the information. To the extent permitted by applicable law, CA provides this document as is without warranty of any kind, including without limitation, any implied warranties or merchantability, fitness for a particular purpose, or non-infringement. In no event will CA be liable for any loss or damage, direct or indirect, from the use of this document, including, without limitation, lost profits, lost investment, business interruption, goodwill, or lost data, even if CA is expressly advised of the possibility of such damages. 3 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Abstract Clarity can be a large system with many moving parts. Have you ever wondered what goes on under the hood? In NSA? Between servers in a cluster? Do you wonder what a Beacon is for and what it talks to, or why multicast is so important? How are jobs scheduled and executed? How are business processes triggered? And how does Clarity Studio manipulate the underlying database schema? Technical Know How Volume 1 is designed to explain how Clarity is built and functions, and includes a Q and A session with the Chief Architect for CA Clarity. 4 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Agenda > Under The Hood > Messaging > Report Servers > LDAP and SSO > J2EE > Studio Data Model > Questions and Answers 5 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Under the Hood 6October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
System View Beacons reside on servers, optionally on some, broadcasting their existence. Sys Admin registers and controls the Beacons. Beacons control local services, invoke commands, retrieve log files and distribute updated files. If the Beacon or a required third-party changes, manual installation is required on each node. Clarity App Server Beacon Database Server Beacon Clarity Admin Server Beacon Clarity BG Server Beacon BO Server Runtime Dependency Admin Dependency 7 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Resource Usage > Traffic Load Balancer Provided: Stateless failover. Required: Session affinity. Sessions persist in database. Clarity App Clarity App Clarity App Clarity App > Caches Read-only populated from database only. Database & Storage Broadcast messages to invalidate entries only. Transactional data is not cached. Clarity BG Clarity BG Clarity BG Clarity BG 8 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
> Thread Usage Always pooled or singletons. Guarded usage of ThreadLocal for session management, transaction management, logging. > Database Usage Always pooled, never kept. Proxool on Tomcat, native pooling on J2EE servers. CA JDBC Drivers only. (From DataDirect.) > Network Usage Unicast to database, report server, mail server, etc. Multicast from Clarity server to server using JGroups (www.jgroups.org). 9 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
> Memory Usage Heap space Stylesheet and Metadata caches Session data Transient data per thread Varies with usage and number of active users Permanent space Class definitions and constants Internal JVM compiled code Varies very little with usage Stack space Any data local to methods in the call stack Varies very little with usage 10 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Messaging 1October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Messaging In System Administration > Not much Only for discovery of Beacon clients. The list of servers in System Admin is populated via multicast. Control of those servers is TCP unicast. 12 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Messaging In Application > Cache Consistency Any time an instance in the Cache Controller changes, a message is broadcast to all App and Background servers to flush that item out of the cache. To prevent inappropriate session timeouts, a background thread runs periodically to broadcast active sessions to all application servers. User hits server A and then is sent to server B for longer than the official session timeout. If the user is sent back to server A after that, server A must believe the user has actually been active elsewhere or it will time the session out. 13 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
> Job Scheduling Simple: the schedulers, one per background server instance, sleep and wait for either a) A known start time for a scheduled job, or b) A broadcast message waking them up to tell them to check for something newly scheduled. Whenever a schedule awakes, it runs anything that is ready (acquiring a lock to synchronize properly). If no schedulers are running when something is scheduled (and a broadcast is sent), no problem. The schedulers catch up when they start up. 14 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
> Process Events More complicated: events are broadcast but also stored in persistence, with a message timeout. Message Time to Live, system administration setting. Default: 120 minutes. Important because different from schedulers, you do not want an event message to be lost if no process engines are running. Events are subscription-based. Events are actually created only if a particular process exists for a particular object (for Create events) or object instance (for update events). Broadcast messages are used to keep the process engine moving instantly, and not polling. 15 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Report Servers 1October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
About Business Objects XI > Packaged as CA Business Intelligence (CA BI 2.1) BO XI R2 SP4 4GB DVD CA-built installer shared by all CA products (CA BI 2.0 with Business Objects XI R2 SP3 still supported) > Supporting intersection of Business Objects XI PAS and Clarity PAS Solaris, Windows, AIX, Red Hat, SuSE No HP-UX (yet) Tomcat, WebLogic, WebSphere, Oracle, MS SQL 17 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
CA BI Server Integration Database Server 1. User schedules a report 3 2. BG server is notified 3. Job details are read and the report is executed in Business Objects via web services 4. User clicks the report output link in Clarity and is redirected to the BO web server. BO XI Server 5 BO InfoView Server 6 4 Web Browser 2 1 Clarity BG Server Clarity App Server 5. Report is retrieved 6. User views the report 18 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Security and Users in CA BI Database Server 1. User schedules a report. 3 2. BG server is notified. 3. Business Objects peer user created on demand with password known only to Clarity and is authenticated. 4. InfoView URL opened with authentication token. 5. Report is retrieved. BO XI Server 5 BO InfoView Server 6 4 Web Browser 2 1 Clarity BG Server Clarity App Server 6. User views the report. 19 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Report Users Clarity Users > Complications Do not currently prefix or otherwise modify user names, so names can collide if using the CA BI server for other applications. abelincoln in Clarity is abelincoln in Business Objects. Trying to use your existing Business Objects server? CA BI license is unlimited. Yours may not be. > Benefits It is actually secure, down to the individual user. Actual internal user accounts created on CA BI Server 20 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
About Actuate > Shipped separately Has its own licensed product DVD, Actuate iserver for CA Clarity PPM. Must copy the required Actuate files in the correct location within Clarity. > Integration is the same as its always been We had a lousy hiccup in 8.1 SP1 where we changed the integration to view reports outside of Clarity and externalized security similar to CA BI. Bad idea. As of 12.0 SP1 and 8.1 SP3 it is back to normal. Viewer is embedded in Clarity, security is handled in Clarity. 21 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
LDAP and SSO 2October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
LDAP and Clarity > Why? Users should never have to remember a password specific to an application, nor keep changing it regularly to keep it secure. > Two parallel optional integrations Authentication LDAP server and mapping information is provided. Use LDAP flag in system administration is selected. User synchronization LDAP server and mapping information is provided. Run the LDAP synchronization Clarity jobs. 23 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
SSO and Clarity > One step better than LDAP Users should not have to re-enter the same credentials when accessing different corporate applications. > Great Green Book Configuring CA SiteMinder for Clarity PPM, in progress. Describes usage of recent enhancement to no longer require separate application instances for browser vs. non-browser clients. 24 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Scheduler Client SOAP Client Web Server CA SiteMinder Browser Client > Staying Secure Clarity with Use SSO flag is completely unprotected and must be locked tight behind the SSO proxy. Fancier, custom, unofficial implementations are possible. Clarity Not hard-coded in any way to CA SiteMinder 25 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
J2EE 2October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
J2EE Integration > Packaging J2EE requires either web archives (.war) or application archives (.ear). We choose the latter. All of the code must be added to a large (~250mb+) niku.ear. Websphere has a hard time with this. > Session Management Clarity manages its own sessions. The same on Tomcat, WebLogic, WebSphere. J2EE HttpSession is not used. WebSphere memory replication is not used. WebLogic s equivalent is not used. Session identified by our sessionid cookie. Not jsessionid. 27 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Clarity System Administration and J2EE > Common Misconception Properties set in System Administration are not stored in the application niku.ear. The application.ear does not need to be repackaged and deployed when properties change. The same is true for the system admin application nsa.ear. The nsa.ear does however hard code the path to the local home directory where it can read and write to the master properties file. And yes, an.ear from one environment can be deployed into a different environment. 28 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Studio Data Model 2October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Custom Attributes and Objects > Horizontal or Vertical Model? Horizontal: Force.com Single underlying table with multiple columns for different data types. Abstraction layer between application code and the database, including a special query language. Fast, predictable. No joins. Vertical: Clarity More traditional usage of an RDBMS, with non-traditional catch: schema is manipulated on the fly. The relational database is used as a relational database. Fast or slow, depends on your queries. 30 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
> Stock Tables SRM_RESOURCES, INV_PROJECTS > Extension Tables ODF_CA_RESOURCE, ODF_CA_PROJECT > Simplified with Views ODF_RESOURCE_V, ODF_PROJECT_V > Custom Objects No stock table, just ODF_CA table and views ODF_CA_APPLE, ODF_CA_ORANGE ODF_APPLE_V, ODF_ORANGE_V Rights, Pages, Views, Actions & Links 31 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Questions 3October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA
Summary Under The Hood System views and resource usage Messaging Where multicast, why multicast Report Servers CA BI server integration LDAP and SSO J2EE Staying secure Properties are not stored in the.ear Studio Data Model What is created where and why 33 October 12th, 2009 Clarity Technical Know-How Volume 1 Copyright 2009 CA