WSO2 Applica,on Server Tomcat on Steroids Sagara Gunathunga Senior Technical Lead WSO2
WSO2 Applica,on Server Tomcat on Steroids
Sagara Gunathunga
Senior Technical Lead WSO2
Image sources -‐ h:p://commons.wikimedia.org/wiki/File:Tomcat-‐logo.svg, h:ps://issues.apache.org/jira/secure/a:achment/12564005/Logo_alone.jpg
100 % complaint with Apache Tomcat
• Zero migraNon cost – What ever you run on Tomcat will run on WSO2 AS too
• Don’t try to reinvenNng the wheel – Same configuraNon opNons as Tomcat – Global server.xml and context.xml file support – Virtual host configuraNon – AJP transport – Same JNDI experience – Session persistence and replicaNons
MulN-‐tenancy support
• Tenant-‐aware data sources • Tenant-‐aware JNDI service • Tenant-‐aware session persistence • Tenant-‐aware user store • Tenant-‐aware authenNcaNon and
authorizaNon
• Tenant-‐aware Caching • Tenant-‐aware configuraNon
registry • Tenant-‐aware dashboards • Tenant-‐aware management
console
MulNple classloading runNmes
There are four in-‐built environments • Tomcat – Only Tomcat libs are visible (Minimal runtime) • Carbon – Tomcat + Carbon libs are visible • CXF - Tomcat + CXF + Spring are visible • Javaee – JavaEE libs are visible
MulNple classloading runNmes
Ability to create your own custom ‘Classloader RunNme environments’ • Create directory to place your Jar dependencies • Add an entry to webappclassloading-environments.xml file e.g. –You can have number of incompatible versions of Spring frameworks in server level
Server-‐side JavaScript applicaNon hosNng
• Develop complete server side applicaNon using Jaggery.js and deploy on ApplicaNon Server
• Web ApplicaNons
• RESTfull services
• WebSocket services
In-‐built API management
In-‐built API management • No network hop between API Gateway and
ApplicaNon Server
• Gateway is embedded on same ApplicaNon Server • • Possible to host API Store, API Publisher, Key Manager
• components also on same instance or distribute them separately
• No addiNonal cost for API Management
• Not a replacement for full scale distributed API Manager setups
JavaEE Web Profile support
Web Service development • Supported web service development models
• JAX –WS ( based on Apache CXF) • Apache Axis2
• Bring your own WS framework • Metro, Spring WS
• Rich dashboard and development tools • Try-‐It tool support • Download WS client as maven project • Basic staNsNcs
• Service publish and discovery support through WSO2 Governance Registry
• WS – Discovery supported
RESTfull service development • Supported RESTfull service development
models. • JAX –RS ( based on Apache CXF) • Apache Axis2 REST services • Jaggery REST services ( Java Script ) •
• Bring your own WS framework • Jersey, Rest Easy, Restlet, Spring
• Rich dashboard and development tools • Swagger support. • Download REST client as maven
project • Basic staNsNcs
Binary service support • High efficient binary services over TCP
• Based on “Protocol Buffer” • Maven support • Dashboard support
• Example :High efficient binary data transfer among AS and ESB
Web Socket development
• Supported WebSocket development models
• Java API for WebSocket
• Jaggery Web Sockets ( Java Script )
SaaS applicaNon development
User management
AuthenNcaNon & AuthorizaNon Registry Cache MulNtenancy
Carbon
SaaS applicaNon (Java)
SaaS applicaNon
(Jaggery)
ApplicaNon Server
AcNvity and server monitoring
• Embedded Monitoring dashboard
• Request, response, errors, sessions over Nme
• Geo info , language, referrals
• Alerts on thresholds • Server and infrastructure health monitoring.
Lazy loading for applicaNons and tenants
• Why lazy loading ? – keeping inacNve applicaNons on memory for a long Nme can
effect to performance – Server restarNng can cause considerable amount downNme and
effect to availability – Resources such as memory, cache and processor Nme are
expensive hence need be:er management
• Two levels of lazy loading supported – ApplicaNon lazy loading – Tenant lazy loading
Clustering & arNfact synchronizaNon
• How do you deploy next version of an applicaNon ? • Deployment synchronizer -‐ Changes on manger node propagate to other
nodes • Support based on SVN , GIT or WSO2 G-‐Reg
• Hazelcast based clustering , chaching and coordinaNon support
Thank You