SlideShare a Scribd company logo
1 of 38
Download to read offline
Ian Robinson, IBM Distinguished Engineer, WebSphere Foundation Chief Architect
@ian__robinson
Is Enterprise Java
Still Relevant?
Erin Schnabel, IBM WebSphere developer/engineer/guru/evangelist
@ebullientworks
About Me
 IBM Distinguished Engineer
 WebSphere Foundation Chief Architect
 25 years experience in transaction processing and
distributed enterprise computing
 WebSphere product strategy & development and
enterprise Java standards
– Including spec lead for a JSR with only 2 digits in it.
 Travels a lot, based in IBM’s Hursley lab in the UK
(near Southampton).
 Season ticket holder for one of the least fashionable
clubs in English football:
Ian Robinson
2
3
Platform Boundaries Are Breaking Down In Cloud…
4
…And Being Surrounded By Containers
Java EE – Relevant or Elephant?
5
http://parentrap.org/2014/09/29/easy-parenting-part-iii-the-donts-list/
In The Beginning…
6
Application Server Tier
RDBMS TPM
Back-end
Services
Web Server Tier
 Was e-commerce
 Genuine IBM template from the 90s.
 But
– Web servers and CGI weren’t scaling
– The enterprise was all locked up
 The middle tier App Server
emerged to scale up
the front end and reduce
load on the back-end.
 Application architecture
still up for grabs.
In The Beginning…
7
Elastic Cache
(In-Memory
Data Grid)
Application Server Tier
RDBMS TPM
Back-end
Services
Web Server Tier
 Was e-commerce
 Genuine IBM template from the 90s.
 But
– Web servers and CGI weren’t scaling
– The enterprise was all locked up
 The middle tier App Server
emerged to scale up
the front end and reduce
load on the back-end.
 Application architecture
still up for grabs.
You’re Not On the List, You’re Not Coming In
 Servlets and JSPs were an entry point for the App-Server
middle tier, but Java was not a complete enterprise
architecture.
 For middle-tier enterprise computing, leave it to the Grown
Ups….
8
CORBA
CORBA – Great for Middleware
 CORBA gave us the underpinnings of distributed enterprise computing.
 Along with SOME separation of concerns.
 For example, take transactions…..
9
Interceptor
Interceptor
Inventory ServiceOrder Service
CosTransactions CosTransactions
server server
ORB ORBIIOP
App Request
IIOP
2pc Protocol
begin/commit
export
context
import
context
app flows
m/w flows
CORBA – Not So Great for Applications
10
Order Service
CosTransactions
server
begin/
commit
getTransaction
Order DB
enlistResource CosTransactions::Resource
adapter
XA
JDBC/
ODBC
query/update
getResource
Resource::commit
 No real separation between application and middleware
 No distinct application container contract
 Language agnosticism not so good for applications
app flows
m/w flows
Enterprise Java Containers – Separating Concerns
11
JTA
UserTransaction
TransactionManager
Transaction
server
begin/
commit
getTransaction
enlistResource
lookup in JNDI
query/update
Servlet
container
Connection Manager
Resource Adapter
XAResource
Connection
Managed
Connection
2PC
 Enterprise Java introduced application containers and defined proper separation
of concerns between application components and the containers they run in.
 In the Transaction example, this was started with the JTA and JCA specs.
 The application is responsible ONLY for transaction demarcation.
Order
Servlet
app flows
m/w flows
The Managed Component – EJBs!
12
JTA
UserTransaction
TransactionManager
Transaction
begin/
commit
getTransaction
enlistResource
lookup in JNDI
query/update
EJB
container Order
EJB
Connection Manager
Resource Adapter
XAResource
Connection
Managed
Connection
2PC
 EJBs came next for even greater simplification
 Example: for the first time, transactions can be completely declarative and decoupled from app logic
 Along with declarative security model for a true “enterprise bean”.
 EJBs, more than any other spec, created the environment for the enterprise Java Platform that
became Java EE (originally J2EE) with multiple commercial vendor offerings.
server
app flows
m/w flows
In the Garden, the Flowers and the Weeds Grew
 EE specifications evolved
 New ones were added as SOAP-based
web services came into vogue
 EE got bigger and better.
 And bigger and bigger.
www.flickr.com/photos/ervins_strauhmanis
13
The Dawn of the Lightweight Framework
 J2EE 4 was a significant achievement and had a significant girth.
 Lightweight frameworks challenge the orthodoxy and Spring’s IOC container hit the sweet-spot for
developers:
– Inject container services  simplify test outside the EE environment.
 And while Java EE ploughed on full-steam ahead getting bigger and better, developers looked at their apps
and wondered how many really need all of Java EE?
 The Spring IOC container focusses initially on the most-used subset of EE web technologies
– Also introduces new web frameworks of its own.
– Over time adds more EE-like capability
– Sometimes just proxying EE technologies with Spring APIs.
 For more and more web apps, Spring is enough and EE is monolithic and old-school.
 Open source projects proliferate. LAMP stacks grow up alongside Java.
14
Java EE Simplification
 The Java EE Platform has strict compatibility rules
– Spring and arbitrary collections of frameworks have none of that and have the
flexibility to be as large or small as they like.
 With Java EE, you know how everything is supposed to behave with everything
else and there are strict rules to demonstrate compliance.
– Everything has to be there.
– Difficult to look agile against less, if less is enough.
 EE5 embraced Spring-like IoC for EJB3 and EE6 introduced CDI components to
enable resources to be contextualized to web-request scope.
 EE6 introduced a sub-set Web Profile with separate compliance against a
smaller set of coherent technologies.
15
Is Web Profile Enough?
 More than enough for many
apps
 Nowhere near granular
enough for next generation
applications.
Web Profile specification
16
Modular Java EE - Does OSGi Help Here?
 Does OSGi help Enterprise Java?
 OSGi is a mature and well-used Java Modularity System.
 OSGi Enterprise Spec added to OSGi R5 following creation of OSGi
Enterprise Expert Group to bring enterprise application technologies to
OSGi.
 OSGi applications can run well in the EE environment
– Variety of ways these can be deployed, as EE or non-EE apps.
 Various open source projects in Apache and Eclipse developed
specifications for how enterprise OSGi applications could consume EE
technologies like servlets, JNDI, JPA, transactions, JMX as well as
Spring-like managed beans and web components.
 Major benefit of this work was the “feature” construct in OSGi R5.
17
The WebSphere Omelette Challenge
 In WebSphere we primarily use OSGi to build an EE compliant but fully-modular application
server for Java EE applications.
– For this, OSGi is all on the “inside” and not visible to Java EE applications which are deployed
as standard EARs or WARs.
 We did this in response to the following challenge in 2011:
– Create a lightweight profile of WebSphere AppServer that starts in under 2 seconds
– Make it completely dynamic for all changes to configuration
– Provide an unzip install ~60 Meg in size
– Provide complete backward compatibility
– Remain EE compliant
– But don’t break any eggs.
18
X
A La Carte Features, Prix Fixe EE Profiles
 We created WebSphere Liberty to supports arbitrary combinations of runtime “features” in
addition to pre-defined sets for Web Profile and Full Java EE.
 Remember the eggs: any app running on WebSphere Liberty runs
unchanged on the previous version of WebSphere.
 Runtime bundles loaded and configured by OSGi subsystem-aware kernel as independent
feature subsystems.
 Entirely self-contained metadata to describe bundle content, services published, &
configuration metatypes.
 We use features as units of:
– Deployment
– Configuration
– Extensibility
19
Bundle A
Bundle B
Bundle C
Feature
Manifest
Config
Metatype.xml
“Feature”
scalingController-1.0
scalingMember-1.0
dynamicRouting-1.0
collectiveController-1.0 clusterMember-1.0
healthManager-1.0healthAnalyzer-1.0WebSphere
Liberty ND
Java EE 6
subset
couchdb-1.0
mongodb-2.0
wsSecurity-1.1
javaee-7.0
batchManagement-1.0
rtcomm-1.0 rtcommGateway-1.0
WebSphere
Liberty
sipServlet-1.0
A Composable Java EE Runtime
WebSphere
Liberty Core
webProfile-6.0
distributedMap-1.0
openid-2.0
openidConnectServer-1.0
openidConnectClient-1.0
osgiAppIntegration-1.0
spnego-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
javaMail-1.5
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
serverStatus-1.0
wab-1.0
blueprint-1.0
webProfile-7.0
eventLogging-1.0
requestTiming-1.0
adminCenter-1.0
concurrent-1.0
bells-1.0
samlWeb-2.0
scalingController-1.0
scalingMember-1.0
dynamicRouting-1.0
collectiveController-1.0 clusterMember-1.0
healthManager-1.0healthAnalyzer-1.0
Java EE 6
subset
couchdb-1.0
mongodb-2.0
wsSecurity-1.1
javaee-7.0
batchManagement-1.0
rtcomm-1.0 rtcommGateway-1.0
sipServlet-1.0
webProfile-6.0
distributedMap-1.0
openid-2.0
openidConnectServer-1.0
openidConnectClient-1.0
osgiAppIntegration-1.0
spnego-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
javaMail-1.5
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
serverStatus-1.0
wab-1.0
blueprint-1.0
webProfile-7.0
eventLogging-1.0
requestTiming-1.0
adminCenter-1.0
concurrent-1.0
bells-1.0
samlWeb-2.0
Composable Java EE 6 Web Profile
servlet-3.0
jsp-2.0
jsf-2.0
ejbLite-3.1 jdbc-4.0
jndi-1.0
appSecurity-2.0
managedBeans-1.0
ssl-1.0
beanValidation-1.0
cdi-1.0
jpa-2.0
WebSphere
Liberty ND
WebSphere
Liberty
WebSphere
Liberty Core
scalingController-1.0
scalingMember-1.0
dynamicRouting-1.0
collectiveController-1.0 clusterMember-1.0
healthManager-1.0healthAnalyzer-1.0
Java EE 6
subset
couchdb-1.0
mongodb-2.0
wsSecurity-1.1
javaee-7.0
batchManagement-1.0
rtcomm-1.0 rtcommGateway-1.0
sipServlet-1.0
webProfile-6.0
distributedMap-1.0
openid-2.0
openidConnectServer-1.0
openidConnectClient-1.0
osgiAppIntegration-1.0
spnego-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
javaMail-1.5
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
serverStatus-1.0
wab-1.0
blueprint-1.0
webProfile-7.0
eventLogging-1.0
requestTiming-1.0
adminCenter-1.0
concurrent-1.0
bells-1.0
samlWeb-2.0
servlet-3.1
jsp-2.3
jsf-2.2
ejbLite-3.2 jdbc-4.1
jndi-1.0
appSecurity-2.0
managedBeans-1.0
ssl-1.0
beanValidation-1.1
cdi-1.2
jpa-2.1
el-3.0websocket-1.1
websocket-1.0
jsonp-1.0
jaxrs-2.0 jaxrsClient-2.0
WebSphere
Liberty ND
WebSphere
Liberty
WebSphere
Liberty Core
Composable Java EE 7 Web Profile
scalingController-1.0
scalingMember-1.0
dynamicRouting-1.0
collectiveController-1.0 clusterMember-1.0
healthManager-1.0healthAnalyzer-1.0
Java EE 6
subset
couchdb-1.0
mongodb-2.0
wsSecurity-1.1
javaee-7.0
batchManagement-1.0
rtcomm-1.0 rtcommGateway-1.0
sipServlet-1.0
webProfile-6.0
distributedMap-1.0
openid-2.0
openidConnectServer-1.0
openidConnectClient-1.0
osgiAppIntegration-1.0
spnego-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
javaMail-1.5
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
serverStatus-1.0
wab-1.0
blueprint-1.0
webProfile-7.0
eventLogging-1.0
requestTiming-1.0
adminCenter-1.0
concurrent-1.0
bells-1.0
samlWeb-2.0
Fully Composable Java EE 7
servlet-3.1
jsp-2.3
jsf-2.2
ejbLite-3.2
jdbc-4.1
jndi-1.0
appSecurity-2.0
managedBeans-1.0
ssl-1.0
beanValidation-1.1
cdi-1.2
jpa-2.1
el-3.0
websocket-1.1
websocket-1.0
jsonp-1.0
jaxrs-2.0 jaxrsClient-2.0
concurrent-1.0
appClientSupport-1.0
ejbPersistentTimer-1.0
ejbHome-3.2
ejbRemote-3.2
ejb-3.2
mdb-3.2
j2eeManagement-1.1
jacc-1.5
jaspic-1.1
jca-1.7
jms-2.0
wmqJmsClient-2.0
wasJmsClient-2.0
jaxws-2.2
jaxb-2.2
batch-1.0 javaMail-1.5
WebSphere
Liberty ND
WebSphere
Liberty
WebSphere
Liberty Core
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>servlet-3.1</feature>
<feature>jdbc-4.1</feature>
</featureManager>
<webApplication id="blogapp“
location="blogapp.war" name="blogapp"/>
<include location="${shared.config.dir}/datasource.xml"/>
</server>
Server Config: features, apps, resources
'instance' configurations specify
multiple resources like applications
and datasource definitions
Features control which capabilities
(bundles) are installed in the server
Any of this configuration could be put
into a separate xml file and 'included' in
this 'master' configuration file
Barriers to Java EEnext Adoption
#1 is Migration cost. Every spec breaking change and non-propagated bug
costs our customers money
- An issue for EE vendors and framework-providers alike…
“We intend to softly upgrade the EE baseline as well.
Now, this is a bit tricky since we effectively have individual requirements here - and we need to
consider the enterprise adoption levels in production environments:
• We’ll definitely raise to Servlet 3.0+ (from our present Servlet 2.5 runtime compatibility) but no
higher since we’d like Spring 5 applications to run on EE 6 baselined servers still. See my previous
blog post for a discussion on why this is unavoidable, given the market situation with Java EE 7 and
the multitude of servers which is still based on the Servlet 3.0 API.
• We’ll keep our JMS 1.1+ compatibility since, aside from the EE 7 issue, we expect message
brokers in the corporate world which are not necessarily upgraded to JMS 2.0 yet. Spring’s JMS
support automatically adapts to JMS 2.0 anyway, so there shouldn’t be any lack in functionality. It’s
just a shame that we have to keep supporting the 2002-era JMS 1.1 API…
• We’d like to raise to JPA 2.1+ and Bean Validation 1.1+ but our hands seem to be tied: TomEE
1.7 and JBoss EAP 6.4 have hard JPA 2.0 and Bean Validation 1.0 APIs in them, and WebLogic
12.1.3 has JPA 2.1 but no Bean Validation 1.1 API (despite them being related).
• This means we’ll have to keep detecting JPA 2.1 / BV 1.1, automatically adapting to them - or we’ll
require local bundling of the JPA 2.1 / BV 1.1 API jars and corresponding providers. A likely
outcome is that we’ll streamline our setup towards JPA 2.1, just tolerating JPA 2.0 at runtime
through fallback checks, similar to how we handle Servlet 3.0 vs 2.5 at present.”
https://spring.io/blog/2015/06/10/feedback-welcome-spring-5-system-requirements
Spring 5 System Requirements Discussion, June 10, 2015
WebSphere
Liberty 8.5.5.7
servlet-3.0
old
app
The obvious solution is not
that widely available.
- Although WebSphere has it 
servlet-3.1
new
app
Just bake what you
need inside – right?
Is A Virtualization Container Really All We Need?
 A good unit of isolation
– Full-stack delivery good for blue/green deploy.
– High degree of control over container content
 But the App/Service in the virtualization
container doesn’t run in a vacuum.
– Still an App Container of some description
inside.
 Flowers and weeds take root inside the
virtualization containers now…
 Java EE can be successful in this world but only
if right-sized within the virtualization container.
26
Customized Docker containers for Java EE
 WAS Liberty images on Docker Hub
– WAS Liberty containers (currently V8.5.5.7):
 Kernel, Java EE 6 Web Profile, Java EE 7 Web and Full Profile and latest Beta images
 Docker files: https://github.com/WASdev/ci.docker
 Dockerfiles in on WASdev GitHub to:
– Simple layer to upgrade to commercial license
– Build your own customized image based on required features
hub.docker.com/_/websphere-liberty
kernel common webProfile7 javaee7
webProfile6beta
FROM websphere-liberty:kernel
COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/
RUN installUtility install defaultServer
28
FROM websphere-liberty:kernel
COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/
RUN installUtility install defaultServer
<server description=“BlogServer">
<!-- Enable features -->
<featureManager>
<feature>servlet-3.1</feature>
<feature>jdbc-4.1</feature>
</featureManager>
...
</server>
Customized Docker containers for Java EE
/opt/ibm/wlp/usr/servers/defaultServer/server.xml
dockerfile
1. Want image for this
2. Identify required features3. Add only the required features
Why Do I Care About App Containers In Cloud?
 Just push the Java App: the rest is a cloud detail
– Could be any app container in the cloud
– Configuration largely out of my hands
 If I need to customize the container config I can
– But then I start to care about the app container
 For greater control, push the app container too
– More stuff for me to own but greater control.
– Better portability across clouds
 For greatest control, virtualize only at the IaaS
– Easiest way to shift existing workloads to cloud with
no change
 Only in the very simplest case do I not care about
the app container.
cf push
app.war
PaaS
IaaS/CaaS
VM
IaaS
VM
IBM Bluemix Cloud and Java EE
cf push
app.war
PaaS
IaaS/CaaS
VM
IaaS
VM
Java EE in a Multi-Cultural Society
 Cloud unifies the management of different types
of application container.
– The 2 most popular runtimes in IBM Bluemix
are Java and Node.js
 Significantly ahead of others
 Node and other containers often compliment
Java rather than replace it
– E.g. using Node LoopBack framework to
expose new APIs to existing Java services
 Cloud is providing new ways to deploy Java EE
and driving additional workloads to it through
multi-lingual API explosion
 Some commentators characterize cloud apps,
mixing EE technologies with cloud services, as
Java-but-not-EE applications.
– Because they confuse Java EE with monolithic
implementation. CHALLENGE THIS!!
Faban Workload
Remote EJB
Jax-ws
System Under Test
Supplier Domain
Mfg Domain
Orders Domain
JMS
JMS
JPA
JPA
JPA
Database
Server
HTTP
Emulator
Jax-ws
Purchase
Order
Delivery
Dealer driver
Mfg driver
Is This a Modern Application?
A Benchmark Living in the Past – SPECjEnterprise2010
 This is Java EE5 technology!
– Not even EE6 let alone EE7.
 JCP Members are the primary contributors to this benchmark and are holding it back.
 What are you scared of? More vendors?
 Where is the web profile
compliant subset?
 Where is EE7?
– We can skip EE6…
 Run rules to allow cloud publish?
About Erin
 IBM Senior Software Engineer
 WebSphere Liberty architect
 Founding technical leader/developer for WAS Liberty
 Saturated in app-server internals and wire protocols
(16+ years worth)
 Champion of composable runtimes, and object- or
service-oriented approaches to decomposing complex
systems
 Lives in Poughkeepsie, NY
 Family, kids, code, caffeine; all is well.
Erin Schnabel
34
Game On!
A throwback text-based adventure
You are in a maze of little interconnected rooms,
none alike.
And you aren’t alone
Player
Game On!
A throwback text-based adventure
JS
Player
Concierge
Leaderboard
Room
Room
Room
JAX-RS
JAX-RS
WebSocket
Java EE7
37
 Java EE is at a crossroads.
 Still strong and relevant at the cloud party, BUT younger guests are
making more noise.
– Vendors support an increasingly diverse cloud environment
 Enterprise incumbency = strength and weakness:
– Customers want NEW without breaking EXISTING
– NEVER break backward compatibility - sacrifices incumbency.
 Forward-looking EE 8 focus on web standards is good.
 Multi-tenancy? These days I’ll use a virtualization container for that.
 And finally: stuff around the edges is critical
– Still need to evangelize: SHOUT louder about lightweight Java EE
– And lets get serious about a modern, lightweight EE7 benchmark
Java EE Outlook
https://www.flickr.com/photos/akaitori
Ian Robinson, IBM Distinguished Engineer, WebSphere Foundation Chief Architect
@ian__robinson
Thank You!
See us at the IBM Booth
Erin Schnabel, IBM WebSphere developer/engineer/guru/evangelist
@ebullientworks

More Related Content

What's hot

Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEReza Rahman
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8PT.JUG
 
Provisioning Oracle Fusion Middleware Environments with Chef and Puppet
Provisioning Oracle Fusion Middleware Environments with Chef and PuppetProvisioning Oracle Fusion Middleware Environments with Chef and Puppet
Provisioning Oracle Fusion Middleware Environments with Chef and PuppetEdwin Biemond
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsDavid Delabassee
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016Ed Burns
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessEd Burns
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffDavid Delabassee
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?Charlie Gracie
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015Pavel Bucek
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyDavid Delabassee
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015Edward Burns
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondOracle
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7Shekhar Gulati
 
Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Bhakti Mehta
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Springifnu bima
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaSCloudBees
 

What's hot (20)

Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8
 
Provisioning Oracle Fusion Middleware Environments with Chef and Puppet
Provisioning Oracle Fusion Middleware Environments with Chef and PuppetProvisioning Oracle Fusion Middleware Environments with Chef and Puppet
Provisioning Oracle Fusion Middleware Environments with Chef and Puppet
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016
 
Java on Azure
Java on AzureJava on Azure
Java on Azure
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
 
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip KovačekJavantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 
Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Spring
 
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
 

Viewers also liked

Game theory
Game theoryGame theory
Game theoryrik0
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere conceptsKuldeep Saxena
 
GlassFish Story by David Heffelfinger/Ensode Technology
GlassFish Story by David Heffelfinger/Ensode TechnologyGlassFish Story by David Heffelfinger/Ensode Technology
GlassFish Story by David Heffelfinger/Ensode Technologyglassfish
 
Parleys.com at GlassFish Community Event, JavaOne 2011
Parleys.com at GlassFish Community Event, JavaOne 2011Parleys.com at GlassFish Community Event, JavaOne 2011
Parleys.com at GlassFish Community Event, JavaOne 2011Arun Gupta
 
LodgON at GlassFish Community Event, JavaOne 2011
LodgON at GlassFish Community Event, JavaOne 2011LodgON at GlassFish Community Event, JavaOne 2011
LodgON at GlassFish Community Event, JavaOne 2011Arun Gupta
 
Guia de Semana at GlassFish Community Event, JavaOne 2011
Guia de Semana at GlassFish Community Event, JavaOne 2011Guia de Semana at GlassFish Community Event, JavaOne 2011
Guia de Semana at GlassFish Community Event, JavaOne 2011Arun Gupta
 
Adam Bien at GlassFish Community Event, JavaOne 2011
Adam Bien at GlassFish Community Event, JavaOne 2011Adam Bien at GlassFish Community Event, JavaOne 2011
Adam Bien at GlassFish Community Event, JavaOne 2011Arun Gupta
 
GlassFish Story by Kerry Wilson/Vanderbilt University Medical Center
GlassFish Story by Kerry Wilson/Vanderbilt University Medical CenterGlassFish Story by Kerry Wilson/Vanderbilt University Medical Center
GlassFish Story by Kerry Wilson/Vanderbilt University Medical Centerglassfish
 
IBM websphere application server types of profiles
IBM websphere application server types of profilesIBM websphere application server types of profiles
IBM websphere application server types of profilesKuldeep Saxena
 
Ibm web sphere application server interview questions
Ibm web sphere application server interview questionsIbm web sphere application server interview questions
Ibm web sphere application server interview questionspraveen_guda
 
Websphere interview Questions
Websphere interview QuestionsWebsphere interview Questions
Websphere interview Questionsgummadi1
 
Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Kai Wähner
 
Reactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaReactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaKasun Indrasiri
 
Sun Certified Enterprise Architect Scea Mock Exam
Sun Certified Enterprise Architect Scea Mock ExamSun Certified Enterprise Architect Scea Mock Exam
Sun Certified Enterprise Architect Scea Mock ExamYasser Ibrahim
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersShubham Gupta
 

Viewers also liked (15)

Game theory
Game theoryGame theory
Game theory
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere concepts
 
GlassFish Story by David Heffelfinger/Ensode Technology
GlassFish Story by David Heffelfinger/Ensode TechnologyGlassFish Story by David Heffelfinger/Ensode Technology
GlassFish Story by David Heffelfinger/Ensode Technology
 
Parleys.com at GlassFish Community Event, JavaOne 2011
Parleys.com at GlassFish Community Event, JavaOne 2011Parleys.com at GlassFish Community Event, JavaOne 2011
Parleys.com at GlassFish Community Event, JavaOne 2011
 
LodgON at GlassFish Community Event, JavaOne 2011
LodgON at GlassFish Community Event, JavaOne 2011LodgON at GlassFish Community Event, JavaOne 2011
LodgON at GlassFish Community Event, JavaOne 2011
 
Guia de Semana at GlassFish Community Event, JavaOne 2011
Guia de Semana at GlassFish Community Event, JavaOne 2011Guia de Semana at GlassFish Community Event, JavaOne 2011
Guia de Semana at GlassFish Community Event, JavaOne 2011
 
Adam Bien at GlassFish Community Event, JavaOne 2011
Adam Bien at GlassFish Community Event, JavaOne 2011Adam Bien at GlassFish Community Event, JavaOne 2011
Adam Bien at GlassFish Community Event, JavaOne 2011
 
GlassFish Story by Kerry Wilson/Vanderbilt University Medical Center
GlassFish Story by Kerry Wilson/Vanderbilt University Medical CenterGlassFish Story by Kerry Wilson/Vanderbilt University Medical Center
GlassFish Story by Kerry Wilson/Vanderbilt University Medical Center
 
IBM websphere application server types of profiles
IBM websphere application server types of profilesIBM websphere application server types of profiles
IBM websphere application server types of profiles
 
Ibm web sphere application server interview questions
Ibm web sphere application server interview questionsIbm web sphere application server interview questions
Ibm web sphere application server interview questions
 
Websphere interview Questions
Websphere interview QuestionsWebsphere interview Questions
Websphere interview Questions
 
Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?
 
Reactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaReactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-Java
 
Sun Certified Enterprise Architect Scea Mock Exam
Sun Certified Enterprise Architect Scea Mock ExamSun Certified Enterprise Architect Scea Mock Exam
Sun Certified Enterprise Architect Scea Mock Exam
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginners
 

Similar to Is Enterprise Java Still Relevant (JavaOne 2015 session)

Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Codemotion
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusJarrod Overson
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412FirmansyahIrma1
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on RailsViridians
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year projectsuneel singh
 
Intorduction to struts
Intorduction to strutsIntorduction to struts
Intorduction to strutsAnup72
 
J2 EEE SIDES
J2 EEE  SIDESJ2 EEE  SIDES
J2 EEE SIDESbputhal
 
Enterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsEnterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsGordon Dickens
 
Java enterprise paradise
Java enterprise paradiseJava enterprise paradise
Java enterprise paradiseAmr Salah
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationAndolasoft Inc
 
TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFrameworkShankar Nair
 
Latest Web development technologies 2021
 Latest Web development technologies 2021 Latest Web development technologies 2021
Latest Web development technologies 2021SWATHYSMOHAN
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1sandeep54552
 
Rich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientRich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientFabian Lange
 
Microservices, Data Services and Containers for Cloud Native Architectures (D...
Microservices, Data Services and Containers for Cloud Native Architectures (D...Microservices, Data Services and Containers for Cloud Native Architectures (D...
Microservices, Data Services and Containers for Cloud Native Architectures (D...ragss
 

Similar to Is Enterprise Java Still Relevant (JavaOne 2015 session) (20)

Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
 
Java EE 7 introduction
Java EE 7  introductionJava EE 7  introduction
Java EE 7 introduction
 
Java ee introduction
Java ee introductionJava ee introduction
Java ee introduction
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
 
Intorduction to struts
Intorduction to strutsIntorduction to struts
Intorduction to struts
 
J2ee seminar
J2ee seminarJ2ee seminar
J2ee seminar
 
J2 EEE SIDES
J2 EEE  SIDESJ2 EEE  SIDES
J2 EEE SIDES
 
Enterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsEnterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable Applications
 
Java enterprise paradise
Java enterprise paradiseJava enterprise paradise
Java enterprise paradise
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page application
 
TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFramework
 
Latest Web development technologies 2021
 Latest Web development technologies 2021 Latest Web development technologies 2021
Latest Web development technologies 2021
 
EJBW
EJBWEJBW
EJBW
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1
 
Rich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientRich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich Client
 
How backbone.js is different from ember.js?
How backbone.js is different from ember.js?How backbone.js is different from ember.js?
How backbone.js is different from ember.js?
 
Microservices, Data Services and Containers for Cloud Native Architectures (D...
Microservices, Data Services and Containers for Cloud Native Architectures (D...Microservices, Data Services and Containers for Cloud Native Architectures (D...
Microservices, Data Services and Containers for Cloud Native Architectures (D...
 

More from Ian Robinson

MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?Ian Robinson
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsIan Robinson
 
IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)Ian Robinson
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haulIan Robinson
 
Apache Aries Overview
Apache Aries   OverviewApache Aries   Overview
Apache Aries OverviewIan Robinson
 

More from Ian Robinson (6)

MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
 
IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
 
Was liberty
Was libertyWas liberty
Was liberty
 
Apache Aries Overview
Apache Aries   OverviewApache Aries   Overview
Apache Aries Overview
 

Recently uploaded

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Is Enterprise Java Still Relevant (JavaOne 2015 session)

  • 1. Ian Robinson, IBM Distinguished Engineer, WebSphere Foundation Chief Architect @ian__robinson Is Enterprise Java Still Relevant? Erin Schnabel, IBM WebSphere developer/engineer/guru/evangelist @ebullientworks
  • 2. About Me  IBM Distinguished Engineer  WebSphere Foundation Chief Architect  25 years experience in transaction processing and distributed enterprise computing  WebSphere product strategy & development and enterprise Java standards – Including spec lead for a JSR with only 2 digits in it.  Travels a lot, based in IBM’s Hursley lab in the UK (near Southampton).  Season ticket holder for one of the least fashionable clubs in English football: Ian Robinson 2
  • 3. 3 Platform Boundaries Are Breaking Down In Cloud…
  • 5. Java EE – Relevant or Elephant? 5 http://parentrap.org/2014/09/29/easy-parenting-part-iii-the-donts-list/
  • 6. In The Beginning… 6 Application Server Tier RDBMS TPM Back-end Services Web Server Tier  Was e-commerce  Genuine IBM template from the 90s.  But – Web servers and CGI weren’t scaling – The enterprise was all locked up  The middle tier App Server emerged to scale up the front end and reduce load on the back-end.  Application architecture still up for grabs.
  • 7. In The Beginning… 7 Elastic Cache (In-Memory Data Grid) Application Server Tier RDBMS TPM Back-end Services Web Server Tier  Was e-commerce  Genuine IBM template from the 90s.  But – Web servers and CGI weren’t scaling – The enterprise was all locked up  The middle tier App Server emerged to scale up the front end and reduce load on the back-end.  Application architecture still up for grabs.
  • 8. You’re Not On the List, You’re Not Coming In  Servlets and JSPs were an entry point for the App-Server middle tier, but Java was not a complete enterprise architecture.  For middle-tier enterprise computing, leave it to the Grown Ups…. 8 CORBA
  • 9. CORBA – Great for Middleware  CORBA gave us the underpinnings of distributed enterprise computing.  Along with SOME separation of concerns.  For example, take transactions….. 9 Interceptor Interceptor Inventory ServiceOrder Service CosTransactions CosTransactions server server ORB ORBIIOP App Request IIOP 2pc Protocol begin/commit export context import context app flows m/w flows
  • 10. CORBA – Not So Great for Applications 10 Order Service CosTransactions server begin/ commit getTransaction Order DB enlistResource CosTransactions::Resource adapter XA JDBC/ ODBC query/update getResource Resource::commit  No real separation between application and middleware  No distinct application container contract  Language agnosticism not so good for applications app flows m/w flows
  • 11. Enterprise Java Containers – Separating Concerns 11 JTA UserTransaction TransactionManager Transaction server begin/ commit getTransaction enlistResource lookup in JNDI query/update Servlet container Connection Manager Resource Adapter XAResource Connection Managed Connection 2PC  Enterprise Java introduced application containers and defined proper separation of concerns between application components and the containers they run in.  In the Transaction example, this was started with the JTA and JCA specs.  The application is responsible ONLY for transaction demarcation. Order Servlet app flows m/w flows
  • 12. The Managed Component – EJBs! 12 JTA UserTransaction TransactionManager Transaction begin/ commit getTransaction enlistResource lookup in JNDI query/update EJB container Order EJB Connection Manager Resource Adapter XAResource Connection Managed Connection 2PC  EJBs came next for even greater simplification  Example: for the first time, transactions can be completely declarative and decoupled from app logic  Along with declarative security model for a true “enterprise bean”.  EJBs, more than any other spec, created the environment for the enterprise Java Platform that became Java EE (originally J2EE) with multiple commercial vendor offerings. server app flows m/w flows
  • 13. In the Garden, the Flowers and the Weeds Grew  EE specifications evolved  New ones were added as SOAP-based web services came into vogue  EE got bigger and better.  And bigger and bigger. www.flickr.com/photos/ervins_strauhmanis 13
  • 14. The Dawn of the Lightweight Framework  J2EE 4 was a significant achievement and had a significant girth.  Lightweight frameworks challenge the orthodoxy and Spring’s IOC container hit the sweet-spot for developers: – Inject container services  simplify test outside the EE environment.  And while Java EE ploughed on full-steam ahead getting bigger and better, developers looked at their apps and wondered how many really need all of Java EE?  The Spring IOC container focusses initially on the most-used subset of EE web technologies – Also introduces new web frameworks of its own. – Over time adds more EE-like capability – Sometimes just proxying EE technologies with Spring APIs.  For more and more web apps, Spring is enough and EE is monolithic and old-school.  Open source projects proliferate. LAMP stacks grow up alongside Java. 14
  • 15. Java EE Simplification  The Java EE Platform has strict compatibility rules – Spring and arbitrary collections of frameworks have none of that and have the flexibility to be as large or small as they like.  With Java EE, you know how everything is supposed to behave with everything else and there are strict rules to demonstrate compliance. – Everything has to be there. – Difficult to look agile against less, if less is enough.  EE5 embraced Spring-like IoC for EJB3 and EE6 introduced CDI components to enable resources to be contextualized to web-request scope.  EE6 introduced a sub-set Web Profile with separate compliance against a smaller set of coherent technologies. 15
  • 16. Is Web Profile Enough?  More than enough for many apps  Nowhere near granular enough for next generation applications. Web Profile specification 16
  • 17. Modular Java EE - Does OSGi Help Here?  Does OSGi help Enterprise Java?  OSGi is a mature and well-used Java Modularity System.  OSGi Enterprise Spec added to OSGi R5 following creation of OSGi Enterprise Expert Group to bring enterprise application technologies to OSGi.  OSGi applications can run well in the EE environment – Variety of ways these can be deployed, as EE or non-EE apps.  Various open source projects in Apache and Eclipse developed specifications for how enterprise OSGi applications could consume EE technologies like servlets, JNDI, JPA, transactions, JMX as well as Spring-like managed beans and web components.  Major benefit of this work was the “feature” construct in OSGi R5. 17
  • 18. The WebSphere Omelette Challenge  In WebSphere we primarily use OSGi to build an EE compliant but fully-modular application server for Java EE applications. – For this, OSGi is all on the “inside” and not visible to Java EE applications which are deployed as standard EARs or WARs.  We did this in response to the following challenge in 2011: – Create a lightweight profile of WebSphere AppServer that starts in under 2 seconds – Make it completely dynamic for all changes to configuration – Provide an unzip install ~60 Meg in size – Provide complete backward compatibility – Remain EE compliant – But don’t break any eggs. 18
  • 19. X A La Carte Features, Prix Fixe EE Profiles  We created WebSphere Liberty to supports arbitrary combinations of runtime “features” in addition to pre-defined sets for Web Profile and Full Java EE.  Remember the eggs: any app running on WebSphere Liberty runs unchanged on the previous version of WebSphere.  Runtime bundles loaded and configured by OSGi subsystem-aware kernel as independent feature subsystems.  Entirely self-contained metadata to describe bundle content, services published, & configuration metatypes.  We use features as units of: – Deployment – Configuration – Extensibility 19 Bundle A Bundle B Bundle C Feature Manifest Config Metatype.xml “Feature”
  • 20. scalingController-1.0 scalingMember-1.0 dynamicRouting-1.0 collectiveController-1.0 clusterMember-1.0 healthManager-1.0healthAnalyzer-1.0WebSphere Liberty ND Java EE 6 subset couchdb-1.0 mongodb-2.0 wsSecurity-1.1 javaee-7.0 batchManagement-1.0 rtcomm-1.0 rtcommGateway-1.0 WebSphere Liberty sipServlet-1.0 A Composable Java EE Runtime WebSphere Liberty Core webProfile-6.0 distributedMap-1.0 openid-2.0 openidConnectServer-1.0 openidConnectClient-1.0 osgiAppIntegration-1.0 spnego-1.0 collectiveMember-1.0 restConnector-1.0 sessionDatabase-1.0 ldapRegistry-3.0 webCache-1.0 javaMail-1.5 osgiConsole-1.0 json-1.0 timedOperations-1.0monitor-1.0 oauth-2.0 serverStatus-1.0 wab-1.0 blueprint-1.0 webProfile-7.0 eventLogging-1.0 requestTiming-1.0 adminCenter-1.0 concurrent-1.0 bells-1.0 samlWeb-2.0
  • 21. scalingController-1.0 scalingMember-1.0 dynamicRouting-1.0 collectiveController-1.0 clusterMember-1.0 healthManager-1.0healthAnalyzer-1.0 Java EE 6 subset couchdb-1.0 mongodb-2.0 wsSecurity-1.1 javaee-7.0 batchManagement-1.0 rtcomm-1.0 rtcommGateway-1.0 sipServlet-1.0 webProfile-6.0 distributedMap-1.0 openid-2.0 openidConnectServer-1.0 openidConnectClient-1.0 osgiAppIntegration-1.0 spnego-1.0 collectiveMember-1.0 restConnector-1.0 sessionDatabase-1.0 ldapRegistry-3.0 webCache-1.0 javaMail-1.5 osgiConsole-1.0 json-1.0 timedOperations-1.0monitor-1.0 oauth-2.0 serverStatus-1.0 wab-1.0 blueprint-1.0 webProfile-7.0 eventLogging-1.0 requestTiming-1.0 adminCenter-1.0 concurrent-1.0 bells-1.0 samlWeb-2.0 Composable Java EE 6 Web Profile servlet-3.0 jsp-2.0 jsf-2.0 ejbLite-3.1 jdbc-4.0 jndi-1.0 appSecurity-2.0 managedBeans-1.0 ssl-1.0 beanValidation-1.0 cdi-1.0 jpa-2.0 WebSphere Liberty ND WebSphere Liberty WebSphere Liberty Core
  • 22. scalingController-1.0 scalingMember-1.0 dynamicRouting-1.0 collectiveController-1.0 clusterMember-1.0 healthManager-1.0healthAnalyzer-1.0 Java EE 6 subset couchdb-1.0 mongodb-2.0 wsSecurity-1.1 javaee-7.0 batchManagement-1.0 rtcomm-1.0 rtcommGateway-1.0 sipServlet-1.0 webProfile-6.0 distributedMap-1.0 openid-2.0 openidConnectServer-1.0 openidConnectClient-1.0 osgiAppIntegration-1.0 spnego-1.0 collectiveMember-1.0 restConnector-1.0 sessionDatabase-1.0 ldapRegistry-3.0 webCache-1.0 javaMail-1.5 osgiConsole-1.0 json-1.0 timedOperations-1.0monitor-1.0 oauth-2.0 serverStatus-1.0 wab-1.0 blueprint-1.0 webProfile-7.0 eventLogging-1.0 requestTiming-1.0 adminCenter-1.0 concurrent-1.0 bells-1.0 samlWeb-2.0 servlet-3.1 jsp-2.3 jsf-2.2 ejbLite-3.2 jdbc-4.1 jndi-1.0 appSecurity-2.0 managedBeans-1.0 ssl-1.0 beanValidation-1.1 cdi-1.2 jpa-2.1 el-3.0websocket-1.1 websocket-1.0 jsonp-1.0 jaxrs-2.0 jaxrsClient-2.0 WebSphere Liberty ND WebSphere Liberty WebSphere Liberty Core Composable Java EE 7 Web Profile
  • 23. scalingController-1.0 scalingMember-1.0 dynamicRouting-1.0 collectiveController-1.0 clusterMember-1.0 healthManager-1.0healthAnalyzer-1.0 Java EE 6 subset couchdb-1.0 mongodb-2.0 wsSecurity-1.1 javaee-7.0 batchManagement-1.0 rtcomm-1.0 rtcommGateway-1.0 sipServlet-1.0 webProfile-6.0 distributedMap-1.0 openid-2.0 openidConnectServer-1.0 openidConnectClient-1.0 osgiAppIntegration-1.0 spnego-1.0 collectiveMember-1.0 restConnector-1.0 sessionDatabase-1.0 ldapRegistry-3.0 webCache-1.0 javaMail-1.5 osgiConsole-1.0 json-1.0 timedOperations-1.0monitor-1.0 oauth-2.0 serverStatus-1.0 wab-1.0 blueprint-1.0 webProfile-7.0 eventLogging-1.0 requestTiming-1.0 adminCenter-1.0 concurrent-1.0 bells-1.0 samlWeb-2.0 Fully Composable Java EE 7 servlet-3.1 jsp-2.3 jsf-2.2 ejbLite-3.2 jdbc-4.1 jndi-1.0 appSecurity-2.0 managedBeans-1.0 ssl-1.0 beanValidation-1.1 cdi-1.2 jpa-2.1 el-3.0 websocket-1.1 websocket-1.0 jsonp-1.0 jaxrs-2.0 jaxrsClient-2.0 concurrent-1.0 appClientSupport-1.0 ejbPersistentTimer-1.0 ejbHome-3.2 ejbRemote-3.2 ejb-3.2 mdb-3.2 j2eeManagement-1.1 jacc-1.5 jaspic-1.1 jca-1.7 jms-2.0 wmqJmsClient-2.0 wasJmsClient-2.0 jaxws-2.2 jaxb-2.2 batch-1.0 javaMail-1.5 WebSphere Liberty ND WebSphere Liberty WebSphere Liberty Core
  • 24. <server description="new server"> <!-- Enable features --> <featureManager> <feature>servlet-3.1</feature> <feature>jdbc-4.1</feature> </featureManager> <webApplication id="blogapp“ location="blogapp.war" name="blogapp"/> <include location="${shared.config.dir}/datasource.xml"/> </server> Server Config: features, apps, resources 'instance' configurations specify multiple resources like applications and datasource definitions Features control which capabilities (bundles) are installed in the server Any of this configuration could be put into a separate xml file and 'included' in this 'master' configuration file
  • 25. Barriers to Java EEnext Adoption #1 is Migration cost. Every spec breaking change and non-propagated bug costs our customers money - An issue for EE vendors and framework-providers alike… “We intend to softly upgrade the EE baseline as well. Now, this is a bit tricky since we effectively have individual requirements here - and we need to consider the enterprise adoption levels in production environments: • We’ll definitely raise to Servlet 3.0+ (from our present Servlet 2.5 runtime compatibility) but no higher since we’d like Spring 5 applications to run on EE 6 baselined servers still. See my previous blog post for a discussion on why this is unavoidable, given the market situation with Java EE 7 and the multitude of servers which is still based on the Servlet 3.0 API. • We’ll keep our JMS 1.1+ compatibility since, aside from the EE 7 issue, we expect message brokers in the corporate world which are not necessarily upgraded to JMS 2.0 yet. Spring’s JMS support automatically adapts to JMS 2.0 anyway, so there shouldn’t be any lack in functionality. It’s just a shame that we have to keep supporting the 2002-era JMS 1.1 API… • We’d like to raise to JPA 2.1+ and Bean Validation 1.1+ but our hands seem to be tied: TomEE 1.7 and JBoss EAP 6.4 have hard JPA 2.0 and Bean Validation 1.0 APIs in them, and WebLogic 12.1.3 has JPA 2.1 but no Bean Validation 1.1 API (despite them being related). • This means we’ll have to keep detecting JPA 2.1 / BV 1.1, automatically adapting to them - or we’ll require local bundling of the JPA 2.1 / BV 1.1 API jars and corresponding providers. A likely outcome is that we’ll streamline our setup towards JPA 2.1, just tolerating JPA 2.0 at runtime through fallback checks, similar to how we handle Servlet 3.0 vs 2.5 at present.” https://spring.io/blog/2015/06/10/feedback-welcome-spring-5-system-requirements Spring 5 System Requirements Discussion, June 10, 2015 WebSphere Liberty 8.5.5.7 servlet-3.0 old app The obvious solution is not that widely available. - Although WebSphere has it  servlet-3.1 new app
  • 26. Just bake what you need inside – right? Is A Virtualization Container Really All We Need?  A good unit of isolation – Full-stack delivery good for blue/green deploy. – High degree of control over container content  But the App/Service in the virtualization container doesn’t run in a vacuum. – Still an App Container of some description inside.  Flowers and weeds take root inside the virtualization containers now…  Java EE can be successful in this world but only if right-sized within the virtualization container. 26
  • 27. Customized Docker containers for Java EE  WAS Liberty images on Docker Hub – WAS Liberty containers (currently V8.5.5.7):  Kernel, Java EE 6 Web Profile, Java EE 7 Web and Full Profile and latest Beta images  Docker files: https://github.com/WASdev/ci.docker  Dockerfiles in on WASdev GitHub to: – Simple layer to upgrade to commercial license – Build your own customized image based on required features hub.docker.com/_/websphere-liberty kernel common webProfile7 javaee7 webProfile6beta FROM websphere-liberty:kernel COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/ RUN installUtility install defaultServer
  • 28. 28 FROM websphere-liberty:kernel COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/ RUN installUtility install defaultServer <server description=“BlogServer"> <!-- Enable features --> <featureManager> <feature>servlet-3.1</feature> <feature>jdbc-4.1</feature> </featureManager> ... </server> Customized Docker containers for Java EE /opt/ibm/wlp/usr/servers/defaultServer/server.xml dockerfile 1. Want image for this 2. Identify required features3. Add only the required features
  • 29. Why Do I Care About App Containers In Cloud?  Just push the Java App: the rest is a cloud detail – Could be any app container in the cloud – Configuration largely out of my hands  If I need to customize the container config I can – But then I start to care about the app container  For greater control, push the app container too – More stuff for me to own but greater control. – Better portability across clouds  For greatest control, virtualize only at the IaaS – Easiest way to shift existing workloads to cloud with no change  Only in the very simplest case do I not care about the app container. cf push app.war PaaS IaaS/CaaS VM IaaS VM
  • 30. IBM Bluemix Cloud and Java EE cf push app.war PaaS IaaS/CaaS VM IaaS VM
  • 31. Java EE in a Multi-Cultural Society  Cloud unifies the management of different types of application container. – The 2 most popular runtimes in IBM Bluemix are Java and Node.js  Significantly ahead of others  Node and other containers often compliment Java rather than replace it – E.g. using Node LoopBack framework to expose new APIs to existing Java services  Cloud is providing new ways to deploy Java EE and driving additional workloads to it through multi-lingual API explosion  Some commentators characterize cloud apps, mixing EE technologies with cloud services, as Java-but-not-EE applications. – Because they confuse Java EE with monolithic implementation. CHALLENGE THIS!!
  • 32. Faban Workload Remote EJB Jax-ws System Under Test Supplier Domain Mfg Domain Orders Domain JMS JMS JPA JPA JPA Database Server HTTP Emulator Jax-ws Purchase Order Delivery Dealer driver Mfg driver Is This a Modern Application?
  • 33. A Benchmark Living in the Past – SPECjEnterprise2010  This is Java EE5 technology! – Not even EE6 let alone EE7.  JCP Members are the primary contributors to this benchmark and are holding it back.  What are you scared of? More vendors?  Where is the web profile compliant subset?  Where is EE7? – We can skip EE6…  Run rules to allow cloud publish?
  • 34. About Erin  IBM Senior Software Engineer  WebSphere Liberty architect  Founding technical leader/developer for WAS Liberty  Saturated in app-server internals and wire protocols (16+ years worth)  Champion of composable runtimes, and object- or service-oriented approaches to decomposing complex systems  Lives in Poughkeepsie, NY  Family, kids, code, caffeine; all is well. Erin Schnabel 34
  • 35. Game On! A throwback text-based adventure You are in a maze of little interconnected rooms, none alike. And you aren’t alone
  • 36. Player Game On! A throwback text-based adventure JS Player Concierge Leaderboard Room Room Room JAX-RS JAX-RS WebSocket Java EE7
  • 37. 37  Java EE is at a crossroads.  Still strong and relevant at the cloud party, BUT younger guests are making more noise. – Vendors support an increasingly diverse cloud environment  Enterprise incumbency = strength and weakness: – Customers want NEW without breaking EXISTING – NEVER break backward compatibility - sacrifices incumbency.  Forward-looking EE 8 focus on web standards is good.  Multi-tenancy? These days I’ll use a virtualization container for that.  And finally: stuff around the edges is critical – Still need to evangelize: SHOUT louder about lightweight Java EE – And lets get serious about a modern, lightweight EE7 benchmark Java EE Outlook https://www.flickr.com/photos/akaitori
  • 38. Ian Robinson, IBM Distinguished Engineer, WebSphere Foundation Chief Architect @ian__robinson Thank You! See us at the IBM Booth Erin Schnabel, IBM WebSphere developer/engineer/guru/evangelist @ebullientworks