JavaEE Application Server Dilemmas Yuval Wilf System Architect Verint Inc.
Agenda • Multi tier Enterprise applications & Application Servers • JavaEE – Standard for developing enterprise solutions • Open source Vs. Commercial JavaEE Application Servers • Why choose open source
JavaEE Application Server Dilemmas
2
N – Tier (Enterprise) Architecture The application logic is divided by function rather than physically Application Server\s Interface
Web Server\s
HTML (browser)
EIS Interface
Web
Interface
Thin / Rich Client
Any GUI
DB
Presentation Logic
JavaEE Application Server Dilemmas
Business Logic
Remote System
Server
Web Server
3
Enterprise Applications
Stock Trading System Banking Application Network Management System Middleware Services Remote Method invocations Characteristics Load balancing • Distributed Transparent fail-over Back-end integration applications Transactions • Multiple clients Clustering • Multiple servers System Management Threading • Database(s) Message Oriented Middleware Resource pooling Security Caching JavaEE Application Server Dilemmas
Application Server
4
Enterprise Goals Reuse Time-to-market Cost Quality
quicker
Cheaper Better
Portability - “write once, deploy anywhere”
JavaEE Application Server Dilemmas
5
Multi Tier Enterprise Application Characteristics Scalability
– add additional computing resources without changing the application
Availability accessible
– the assurance that a service/resource is always
Extensibility
– add/modify functionality without impacting existing functionality
Reliability
– the assurance of the integrity and consistency of the application and all of its transactions
Security
– authentication, authorization and protection from
attacks
Interoperability
- share data with external systems and interface to external systems
Maintainability
- correct flaws in the existing functionality without impacting other components/systems
Manageability
- manage the system in order to ensure the continued health of a system with respect to scalability, reliability, availability, performance, and security
JavaEE Application Server Dilemmas
6
What is JavaEE ? Open and Standard based platform for: Developing Deploying Managing N-tier, Web-based, server-centric, and component-based enterprise applications
JavaEE Application Server Dilemmas
7
JavaEE Definition and Characteristics The JavaEE platform consists of a set of • services • API’s • Protocols Provides a service-oriented infrastructure to automatically support and manage components Provides a total application solution Hides complexities away from developers The enterprise developer concentrates on application components rather than underlying services Separation of business logic and services provides better reuse of business logic JavaEE Application Server Dilemmas
8
JavaEE Platform
Source: Sun MicroSystems
JavaEE Application Server Dilemmas
9
JavaEE Enterprise Application client
JMS Destination
client
container
client client
DB
client
free
get
client client
server
EJB Components JavaEE Application Server Dilemmas
10
JavaEE Standard Services Web Container
JDBC
DB
JSPs
JMS Java Mail JCA\JMX
JavaEE application Server EJB Container
Mail Server
RMI
Java Applicat ion
JNDI
JCA\JMX
EJB
Java Mail
EJB
JMS
Any Clie nt
RMI / IIOP JNDI
EJB
JDBC
JDBC
JTA
Java Mail
JTA
Applet (brows er)
Servlets
RMI / IIOP JNDI
Html Form (browse r)
JavaEE Application Server Dilemmas
JMS
Directory Service
Message Queue 11
JavaEE Vs POJO Applications • Spring • Popular but non-standard open source framework – lock-in • Proprietary API
• JavaEE • End to End Solution • Far more mature • Standard supported by all major JavaEE vendors – vendor independence • EJB 3.0 – evolution to POJO • Easy to Recruit team members JavaEE Application Server Dilemmas
12
Open Source Vs. Commercial App Servers
JOnAS
JavaEE Applicatio n Server
Open Source
JavaEE Application Server Dilemmas
Commercia l
13
Magic Quadrant for Enterprise App Servers, 2Q08 Ability to Execute •Interoperability and standards compliance •Product maturity •Platform coverage •Breadth of add-ons and applications from the vendor company •Product viability and installed base Completeness of with minimal •Ability to innovate Vision •Advanced disturbance to users (backward service-oriented architecture (SOA) compatibility) support •Event-driven architecture (EDA) support •Tracking the latest and most impactful Web innovations •XTP features •Innovation in programming models and the use of Source: Gartner metadata •Innovation in administration/management technologies http://mediaproducts.gartner.com/reprints/microsoft/vol3/article2/article2.html •Innovation in internal architecture •Support for SaaS-style deployment of applications JavaEE Application Server Dilemmas
14
What Does Gartner Say About JBoss
Source: Gartner JavaEE Application Server Dilemmas
15
Why Use Open Source Application Server • Open source software is gaining broad acceptance – vast install base • No License costs – but remember license costs is only a part of the total costs – support & services • Robust, Stable, Ease of use, JavaEE compliant • Flexibility - can plug-in specific commercial JavaEE specification implementations • Sun’s commitment to Open Source Technologies – power of users • JBoss – “Because they have such great developers and are driven by nothing other than technical reasons, they are actually able to innovate and extend the capabilities of JavaEE containers” • Depending on JavaEE the Application levelServer of use 16 Dilemmasof proprietary features
Thank You
Q& A
Presentation: http://mail.netanya.ac.il/~yuvalw
JavaEE Application Server Dilemmas
17
Case Study – Verint Chooses JBoss Gai Berkovich
JavaEE Application Server Dilemmas
Back to Menu 18
Communications Interception Staging Area Interception Business logic & dB Monitoring & analytic engines
JavaEE Application Server Dilemmas
19
VERINT plans ahead Facts
Before major version No real middle tier Running on Sybase ASE on Solaris Having both smart client and WEB client We are in the edge of performance
JavaEE Application Server Dilemmas
20
The challenge • • • • • • • •
High performance !! Support both MS and non MS platfrom J2EE implementation – no single vendor Considering adding dB vendors (Oracle, MsSQL, Sybase IQ) 3rd party client API’s (Open API’s) Improved deployment Vastly growing application Due date is yesterday
• Move from 2 tier to N tier architecture or do more of the same and better? • Which application server is best for us? JavaEE Application Server Dilemmas
21
The process • Which application server? • Jboss!! It is free … • Cross platform application Java • Should we go for N-tier? • Session with CTO’s, system architect, VP R&D’s from other companies, that already did it • Plan with marketing to sell current version for very long time • Add SP’s mechanism give time and more time to productized the new major release • Find large scale and friendly Beta site • Training and recruiting personal • Reorganize R&D group to meet new challenges JavaEE Application Server Dilemmas
22
Verint chooses JBoss Cross platform components Java business logic layer JBoss application server Hibernate JDBC for DBS access
TC platforms MC on Solaris 8 with Sybase ASE 12.5 Administration only applications on Windows OS with SQL server
JBoss EJB
Stateless Beans
MDB ( JMS)
Hibernate ORM
DBS Application
DBS Application
SQL
SQL
Sybase ASE 12.5
MS SQL 2000
Solaris8
Win2003
DC Platforms JavaEE Application Server Dilemmas Windows OS with
23
The end
Q&A JavaEE Application Server Dilemmas
24