Your Web application is valuable to your users‚ and increasingly valuable to mobile applications, integration consumers, business processes, workflows, and analytics. With the WSO2 Application Server, you can easily share business logic, data, and process across the entire IT ecosystem. The WSO2 Application Server is cloud native, providing a firm foundation for hosting shared, multi-tenant, elastically scaling SaaS applications.
2. Agenda
o Introduction
o Key Features
o Architecture
o Web Services & Web Application Support
o Caching, Clustering and Session Replication
o WSO2 Carbon Features
o Development with WSO2 Developer Studio
5. WSO2 Application Server
o Business friendly Apache 2.0 license & Fully
open source
o Enterprise ready Web Services and Web
Application container
o Build on top of the award winning WSO2
Carbon middleware platform
6. WSO2 Application Server
o Simple web application development lifecycle
using WSO2 Developer Studio
o Powered by Apache Tomcat, Apache Axis2,
Apache CXF and Apache TomEE
o WSO2 commercial and community support
7. Supported Standards
JAX-WS 2.2 JAX-RS 2.0 SOAP 1.1/1.2
WSDL 1.1/WSDL 2.0 MTOM, XOP & SwA
WS-Addressing WS-Security WS-RM WS- I BP 1.0/1.2
Servlet 3 JSP 2.2 EL 2.2 JSTL 1.2 JNDI JAVA Mail
10. Web Application Hosting and Management
o Comprehensive admin console
o Supports JavaEE 6 Web Profile
o Session Persistence
o Virtual Hosting
o WebSocket 1.1. API
11. Web Service Hosting and Management
o Supports JAX-WS 2.2, JAX-RS 2.0 and Axis2
o Supports data services
o WSDL2Java, Java2WSDL, WSDL Validator
and Try-It tools
o Multi-transport service access via HTTP,
HTTPS, JMS, VFS and SMTP
o Clustering and HTTP session replication for
web services
12. Jaggery App Hosting and Management
o A completely JavaScript way of writing all parts
of Web applications and services
o Closes the gap between Web apps and Web
services by allowing the creation of both
applications and APIs at the same time
o http://jaggeryjs.org/
13. Enterprise Security for Apps and Services
o Basic Auth integration to LDAP, Google Auth,
OpenID and other external user stores
o Fine-grained access control
o Single-sign-on with SAML2
o Integrates with enterprise identity management
systems via LDAP or via WSO2 Identity Server
14. Rich Context for Apps & Service Programming
o Comprehensive easy-to-use APIs
o Integrates with enterprise identity management
o Shared metadata registry
o JNDI provider for accessing shared data source
and other resources
o Distributed caching
o Distributed sharing of caches and metadata
o Lazy loading and resource sharing architecture
o Deployment synchronization
15. Light Weight and Developer Friendly
o Easy to develop, debug and deploy apps and services
o Tools for message tracing
o TryIt capabilities for interactive testing
o Clustering support for HA, scalability and session
replication
o Data source management for scalable data
management
o Hot deployment or hot update of web apps & services
o Number of transport options
o Ability to install any Carbon feature
16. A Wide Range of Deployment Options
On-premise
Public /
Private IaaS
Public /
Private PaaS
17. Run Yourself or Let WSO2 Run it for You
o Your operations team maintains
the deployment with production
support from WSO2
o WSO2 Operations team runs
the deployment in a dedicated
environment in AWS datacenter
of your choice
o Includes monitoring, backups,
patches, updates
o Financially backed SLA on
uptime and response time
19. Manage and Monitor
o Comprehensive management and monitoring
Web console
o Supports JMX MBeans for all key metrics
monitoring and management features
o Operational audit and KPI/SLAs
o Flexible logging support – Integrates with
enterprise logging systems
o Centralized configuration - lifecycles & versioning
23. Serves as the WSO2 Hosting Platform
Java
Web Services
JAX-WS
JAX-RS
Web Applications
Servlet 3
JSP/EL/JSTL
Java Script
Applications
Jaggery.js
24. Class Loading Customization
o There are 4 in-built environment.
o Tomcat – Minimal runtime (Tomcat)
o Carbon – Tomcat + Carbon + Axis2
o CXF – Tomcat + CXF + Spring
o JavaEE – Tomcat + TomEE
o Users can add their own Class loading
environments
o Edit {carbon.home}/repository/conf/ tomcat/
webappclassloading-environments.xml file
o
25. Class Loading Customization cont.
o Configure per server or per application
o {carbon.home}/repository/conf/tomcat/webapp-
classloading.xml
o META-INF/webapp-classloading.xml
o Can provide mix of environment (e.g. CXF,
Carbon)
o To specify CXF/Carbon as the runtime
environments users should have the following
configuration <Classloading xmlns="http://wso2.org/projects/as/classloading">
<Environments>CXF,Carbon</Environments>
</Classloading>
26. Lazy Loading and Resource Management
o App servers usually run for a long time
o Keeping inactive applications on memory for a
long time, may affect performance
o App server restarting can cause considerable
amount of app downtime and affect availability
o Resources such as memory, cache and
processor time are expensive, hence need
better resource management
o Lazy loading and resource sharing
mechanisms should not negatively affect end-
user experience
27. Tenant Lazy Loading
o When a request is received, an
interceptor will assess request
details (e.g. URL, session info)
o Based on the request details, the
interceptor will pick the
corresponding Tenant from the
tenant store
o A Task will be running in the
background to identify inactive
tenant(s)
o When a tenant is inactive for a
predefined duration (e.g. 30 min),
the tenant will be un-loaded
Request Origin
Request
Tenant Identified by
Interceptor
Tenant Loaded
Max Tenant
Inactive Duration
Elapsed
Identified Tenant
Tenant Un-loaded
YES
NO
31. Clustering and Session Replication
o Capable of storing session specific data in Web
services at 3 levels
o ServiceContext level
o ServiceGroupContext level
o ConfigurationContext level
o Clustering is based on the Hazelcast
32. Deployment Synchronization
o Synchronizing the main
repository of Carbon
server with a set of
nodes
o Usually one READ-
WRITE repository with
number of READ-ONLY
repositories
o SVN based synchronizer
Deployment Synchronizer
SVN repo
AS-1
(R/W)
AS-2
(R/O)
AS-3
(R/O)
34. WSO2 Carbon Features with Webapps
o Carbon Webapp runs on Tomcat, while
o Other Webapps deployed in parallel to Carbon Webapp
o API’s are shared across all Webapps to enable important
Carbon features for external Web Apps
o Authentication
o Registry (Metadata Repository)
o Carbon Caching
Registry Repository
Carbon Context
User Store
Registry User Management Caching
35. Carbon Authentication for Webapps
o All Carbon functionalities are implemented as
Web Services, called Carbon Admin Services
o AuthenticationAdmin Service - handles all
Authentication functionalities
o AuthenticationAdminClient API
o Talks to the Admin Service
o Webapps can use it to communicate with the Carbon
User store
o Any User store can be plugged into Carbon
(Default LDAP)
36. Registry for Webapps
o WSO2 Governance Registry is used by all
WSO2 products as a metadata repository
o Webapps also can use it for the same purpose
through the CarbonContextAPI
37. Web Service Deployment
o SOAP 1.1/1.2 and Restful Axis2 web services
o JAX-WS 2.2 web services and JAX-RS
services
o
39. WSO2 Developer Studio
o The development tool for writing applications
that get hosted on one/more of Carbon servers
o Based on the popular Eclipse IDE with all
familiar tools at hand
o Contains diverse set of tools vital for
configuring your enterprise architecture