1
Portal In Anger Ray Ploski Team Lead - Solutions Architecture, JBoss by Red Hat June 22, 2010
Agenda: Location of Atlantis Video of Big Foot Guided tour of Area 52 Meaning of Life
Slight Change of Plans Agenda: Location of Atlantis Video of Big Foot Guided tour of Area 52 Meaning of Life
Slight Change of Plans Agenda: Location of Atlantis Video of Big Foot Guided tour of Area 52 Meaning of Life
Portal in the Enterprise
Why Bother with Portals?
Why Bother with Portals? Adds complexity
Why Bother with Portals? Adds complexity Adds overhead
Why Bother with Portals? Adds complexity Adds overhead Too many APIs
Why Bother with Portals? Adds complexity Adds overhead Too many APIs Servlet Life Cycle
Why Bother with Portals? WSRP Adds complexity Adds overhead Too many APIs JSF Life Cycle Portlet Life Cycle Servlet Life Cycle
Why Bother with Portals? WSRP Adds complexity Adds overhead Too many APIs JSF Life Cycle Portlet Life Cycle Servlet Life Cycle Can t I just write one-off applications?
A Typical Scenario: Business Needs It Yesterday! Technology Choices driven by Business Line Faster turnaround times for deliverables
A Typical Scenario: Business Needs It Yesterday! Technology Choices driven by Business Line Faster turnaround times for deliverables United Nations of Technology
A Typical Scenario: Business Needs It Yesterday! Technology Choices driven by Business Line Faster turnaround times for deliverables United Nations of Technology Management Nightmare
A Typical Scenario: Business Needs It Yesterday! Technology Choices driven by Business Line Faster turnaround times for deliverables United Nations of Technology Management Nightmare Difficult to maintain staff skill sets
A Typical Scenario: Business Needs It Yesterday! Technology Choices driven by Business Line Faster turnaround times for deliverables United Nations of Technology Management Nightmare Difficult to maintain staff skill sets Often breaks the motto Don t Repeat Yourself in app code
Typical Enterprises Multiple Run Time Environments WebSphere Application Server, WebLogic, Tomcat, JBoss,.NET, PHP Vignette, Interwoven, Alfresco Multiple Development Frameworks JSP, Servlets, JSF, Struts, SpringMVC
Typical Enterprise
Typical Enterprise APP 1 APP 2 APP 3 APP 4
Typical Enterprise APP 1 APP 2 APP 3 APP 4 Security Personalization Identity Content Look and Feel Integration
Typical Enterprise Security APP 1 APP 2 Personalization Identity Content Look and Feel Integration Security APP 3 APP 4 Personalization Identity Content Look and Feel Integration Security Personalization Identity Content Look and Feel Integration Security Personalization Identity Content Look and Feel Integration Security Personalization Identity Content Look and Feel Integration
Typical Enterprise Security APP 1 APP 2 Personalization Identity Content Look and Feel Integration Security APP 3 APP 4 Personalization Identity Content Look and Feel Integration Security Personalization Identity Content Look and Feel Integration Security Personalization Identity Content Look and Feel Integration Security Personalization Identity Content Look and Feel Integration No Guarantee that Apps implement consistently
How Portal Comes into Play
How Portal Comes into Play Variety of technologies and frameworks
How Portal Comes into Play Variety of technologies and frameworks Developers typically choose frameworks most appropriate for their business line
How Portal Comes into Play Variety of technologies and frameworks Developers typically choose frameworks most appropriate for their business line Portal allows Standards and Frameworks
How Portal Comes into Play Variety of technologies and frameworks Developers typically choose frameworks most appropriate for their business line Portal allows Standards and Frameworks Customizations
How Portal Comes into Play Variety of technologies and frameworks Developers typically choose frameworks most appropriate for their business line Portal allows Standards and Frameworks Customizations Integration with 3 rd party systems
How Portal Comes into Play Variety of technologies and frameworks Developers typically choose frameworks most appropriate for their business line Portal allows Standards and Frameworks Customizations Integration with 3 rd party systems User Personalization
More Manageable Architecture
More Manageable Architecture APP 1 APP 2 APP 3 APP 4
More Manageable Architecture Security Personalization Identity Content Look and Feel Integration Portal Container APP 1 APP 2 APP 3 APP 4 Security Personalization Identity Content Look and Feel Integration
My Experiences with Portal Bridge Many different bridges to handle different web applications Content Management Vignette, Alfresco interop Security Integration with 3 rd party SSO Interop Integration with 3 rd party COTS
My Experiences with Portal
My Experiences with Portal Most larger companies have a need for a portal
My Experiences with Portal Most larger companies have a need for a portal Multiple teams working in parallel
My Experiences with Portal Most larger companies have a need for a portal Multiple teams working in parallel Blended content with legacy apps
My Experiences with Portal Most larger companies have a need for a portal Multiple teams working in parallel Blended content with legacy apps Communication between 2+ wars on same page
My Experiences with Portal Most larger companies have a need for a portal Multiple teams working in parallel Blended content with legacy apps Communication between 2+ wars on same page Leverage existing investments
A Typical Deployment Apache Web Servers JBoss Enterprise Portal Platform JCR Repository Gadget Servers External Portlets Identity Mgt JON Management Servers Other Mgt Tooling
Make it Scalable
Make it Scalable: Clustering
Make it Scalable: Clustering Two goals of clustering Scalability Fault Tolerance
Make it Scalable: Clustering Two goals of clustering Scalability Fault Tolerance Key elements of JBoss clustering Federated Naming (HA-JNDI) Session Replication Load Balancing Messaging Distributed Cache
Apache Integration Software Load Balancing JBoss Portal Platform can be fronted by a Hardware Load Balancer or a Software Based Solution
Intelligent Load Balancing with mod_cluster
Intelligent Load Balancing with mod_cluster Intelligent software HTTP load balancer
Intelligent Load Balancing with mod_cluster Intelligent software HTTP load balancer Based on mod_proxy, mod_ajp
Intelligent Load Balancing with mod_cluster Intelligent software HTTP load balancer Based on mod_proxy, mod_ajp Load-balancing logic uses App. Server generated Metrics / Events
Intelligent Load Balancing with mod_cluster Intelligent software HTTP load balancer Based on mod_proxy, mod_ajp Load-balancing logic uses App. Server generated Metrics / Events Memory Usage, active sessions, application disabled, server shutdown, etc.
Intelligent Load Balancing with mod_cluster Intelligent software HTTP load balancer Based on mod_proxy, mod_ajp Load-balancing logic uses App. Server generated Metrics / Events Memory Usage, active sessions, application disabled, server shutdown, etc. Uses MCMP (Mod Cluster Management Protocol)
Intelligent Load Balancing with mod_cluster Intelligent software HTTP load balancer Based on mod_proxy, mod_ajp Load-balancing logic uses App. Server generated Metrics / Events Memory Usage, active sessions, application disabled, server shutdown, etc. Uses MCMP (Mod Cluster Management Protocol) Uses Discovery to reduce static dependencies
Advertise Apache HTTPD Requests (ajp, http, https) App Server App Server
Advertise App Server Apache HTTPD Requests (ajp, http, https) App Server App Server
Advertise App Server Apache HTTPD Requests (ajp, http, https) App Server App Server
Advertise Server Metrics (MCMP) App Server Apache HTTPD Requests (ajp, http, https) App Server App Server
Advertise Server Metrics (MCMP) App Server Apache HTTPD Requests (ajp, http, https) App Server App Server
Standard Server-side Metrics JBossWeb ActiveSessionsLoadMetric BusyConnectorsLoadMetric RequestTrafficLoadMetric ReceiveTrafficLoadMetric System / JVM AverageSystemLoadMetric SystemMemoryUsageLoadMetric HeapMemoryUsageLoadMetric Other ConnectionPoolUsageMetric
Node Communication JBossCache and JGroups work together
Replication - Sharing State HTTPSession and Granularity
Scalability Factors: - Traffic and Work Load - State Replication
Make it Secure
Flexible and Open Security Capabilities Support for JAAS, JACC Various Login Modules integrate: Flat Files, Databases,LDAP Certificate-based Auth Ability to stack modules Support of SSL, MTOM Configuration isolated from your applications DynamicLoginModule allows app to determine security JBossWeb JBoss Portal Platform ClientLoginModule UsersRolesLoginModule DBServerLoginModule LDAPLoginModule LDAPExtLoginModule BaseCertLoginModule RoleMappingLoginModule CUSTOM_LoginModule JBossSX Invokers Data Store User Store
Extend User Profiles Beyond Your Authorization Store
Extend User Profiles Beyond Your Authorization Store Integration to LDAP or Database
Extend User Profiles Beyond Your Authorization Store Integration to LDAP or Database Extendible Interfaces (4 Services, 2 Interfaces)
Extend User Profiles Beyond Your Authorization Store Integration to LDAP or Database Extendible Interfaces (4 Services, 2 Interfaces) Roles
Extend User Profiles Beyond Your Authorization Store Integration to LDAP or Database Extendible Interfaces (4 Services, 2 Interfaces) Roles Users
Extend User Profiles Beyond Your Authorization Store Integration to LDAP or Database Extendible Interfaces (4 Services, 2 Interfaces) Roles Users Membership
Extend User Profiles Beyond Your Authorization Store Integration to LDAP or Database Extendible Interfaces (4 Services, 2 Interfaces) Roles Users Membership Profiles
PicketLink Identity Management
Group Membership Highly Configurable
Reduce exposure via WSRP Portals have one request in, one request out. WSRP provides a nice way to mask the implementation complexity and exposure <<WSRP>> Struts App Seam JSP JSF
Single Sign On Computer Associates SiteMinder Tivoli Access Manager WebSeal JOSSO Kerberos SPNEGO Active Directory Many Others
Security Summary Abstract security infrastructure away from the applications Use JAAS to make your applications portable
Make it Repeatable
Make Platform Templates
Make Platform Templates Properties Services
Make Platform Templates Properties Services Templatize your deployments
Make Platform Templates Properties Services Templatize your deployments Override settings per environment
Make Platform Templates Properties Services Templatize your deployments Override settings per environment Further customization overrides for server or instance
Make Platform Templates Properties Services Templatize your deployments Override settings per environment Further customization overrides for server or instance
Make Platform Templates Properties Services Templatize your deployments Override settings per environment Further customization overrides for server or instance General Template Environment Properties Local Properties <setting>${ldap.name}</setting>...... <localip>${local.ip}</localip> ldap.name=testldap local.ip=192.168.0.11
Portlet Metadata Using portlet metadata maintains consistency between environments.
Make it Worthwhile Reuse your existing investments
Struts App SpringMVC JSF Seam JSP
Struts App Integrate existing applications SpringMVC JSF Seam JSP
Struts App Integrate existing applications Give development staff choice SpringMVC JSF Seam JSP
Struts App Integrate existing applications Give development staff choice Get well defined contracts for eventing from the container. SpringMVC JSF Seam JSP
Content Management Systems Consider a content-stage environment Isolate functional content and services from editorial Interop with Alfresco, Vignette, Day, exo Site Publisher
What is a Bridge, and why do we need one? There are many different bridges to handle different web applications. Wicket Seam Spring MVC JSF Struts PHP
Allows JSF 1.2, JSF 2, RichFaces, and Seam to run as portlets Extensions and components Backed by a healthy community, documentation, screen-casts, and maven archetypes
Make it Manageable
Management Needs
Management Needs Need to monitor server status and resources
Management Needs Need to monitor server status and resources Ability to stop/start resources
Management Needs Need to monitor server status and resources Ability to stop/start resources Alerts for various thresholds or events
Management Needs Need to monitor server status and resources Ability to stop/start resources Alerts for various thresholds or events Differing roles for administrators and developers
Portal Manageability Factors
Portal Manageability Factors Visibility Provisioning Management Alerting Patching Deployment Security Sizing and load Performance
JBoss Operations Network A single view for managing all types of JBoss deployments
Visibility through JON
Monitoring applications through JON
Control Deployments Through JON
In Conclusion Portal provides a standard framework Customizable Increase a company s efficiency Increase adaptability Faster and easier to fulfill business needs Easier to support infrastructure.