SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Java Web Application Framework
Enterprise Architecture - Firmansyah
13 April 2018
Division
2
13 April 2018
Objectives :
1. Why We Need Standard for In-house Java Web
Application
To explain background or reason why we need a standard for in-
house Java web Application
2. Classification of Development Frameworks
To explain Classification of Development Frameworks for Enterprise
Apps especially to design full stack Java Web Application and
explain variety of software framework.
3. Proposed Standard
To explain the proposed standard for full stack In-house Java Web
Application.
Why We Need Standard for In-house
Java Web Application
01
3
Division 13 April 2018
Introduction
Background
To develop better enterprise web application we should follow some
design pattern or application architecture principal. One of them is N-tier
application architecture (Application Stacks).
The rise of N-tier application architecture make Software Frameworks
became popular and have variety of options in same layer/tier/service,
especially on Java open source technology.
Today, there are no Software Framework that fit all the requirements.
Each software frameworks have pros and cons also addressed specific
requirements.
These variety of options may lead to many technology adoptions,
maintenance headache, more non reusable software components, to
many knowledge base or programmer skill that need to be maintained,
etc.
Division 13 April 2018
Introduction (cont.)
Objective and Scope
We need to define standard N-tier application architecture (Application
Stacks) for in-house development, so we will has following benefits:
1. Increase reusable software components
2. Increase programmer productivity (focus on business logic)
3. Testing and maintenance easiness
4. Increase security and software quality
5. Increase time to market delivery
6. Increase cost efficiency
The standard will be focused on Java web based application
Division 13 April 2018
N-tier Application Architecture (Full Stack)
Definition
N-tier application
architecture provides a
model by which developers
can create flexible and
reusable applications.
By segregating an
application into tiers,
developers acquire the
option of modifying or
adding a specific layer,
instead of reworking the
entire application.
It also can address the
requirements on
performance, scalability,
and availability.
Classification of Development Frameworks02
7
Division
Java
C++
C
PHP
Ruby
C#
VB.NET
Scala
Python
…
• Development from scratch (reinvent all the wheels)
• Huge Codebase
• Steep learning curve
• High total cost of ownership
• This level is used for building frameworks
JHipster
Cuba
Ninja
OpenXava
Apache Isis
Play
Grails
• Well-integrated narrow-focused framework
• Shorter learning curve
• Ready to use functionality for standard requirements
• Faster development (RAD)
Spring MVC
Struts
JSF
Axis2
Vaadin
Hibernate
MyBatis
EclipseLink
Apache Shiro
…
• Laborious integration with each other
• Different vendors
• Hard updates to major versions
• Have a mix of satisfactory development speed with a
high level of flexibility.
Mendix
OutSystems
Kony
Pega
Liferay DXP
WaveMaker
PowerApps
• Low (no) management of project / source code
• Problems with collaborative development
• Low (no) flexibility for non standard requirements
• Customization beyond predefined points is impossible
• Fastest way to configure simple applications
• Provide non-programmer UI interface to build applications
Low/No Code
Frameworks
Full-Stack
Frameworks
Narrow-
Focused
Frameworks
"No
Frameworks"
Approach
8
13 April 2018
Classification of Development Frameworks for
N-Tier (Full Stack) Enterprise Apps
DevelopmentSpeed
Manageability,Flexibility,andRangeofApplicability
Division
9
13 April 2018
Variety of Narrow-Focused Frameworks
Layer/Tier Java EE Spring Apache JBoss Others
Presentation –
Action Based
Spring MVC Struts 2 Stripes
Presentation –
Component
Based
JSF Tapestry,
Wicket,
MyFaces
RichFaces Vaadin, ZK,
GWT,
PrimeFaces,
IceFaces
Transaction JTA Spring-TX Narayana
(JBossTS)
Atomikos,
Bitronix
Persistence
(ORM)
JPA Spring Data
JPA, Spring
JDBC
MyBatis/
iBATIS, jOOQ,
OpenJPA
Hibernate EclipseLink,
TopLink
Messaging
(MOM)
MDB, JMS spring-amqp,
spring-rabbit
ActiveMQ,
Kafka
HornetQ Hermes
Web Service –
SOAP Based
JAX-WS Spring-WS Axis2, CXF,
Apache Web
Services
JBossWS
Web Service –
REST Based
JAX-RS,
Jersey
Spring MVC
REST, Spring
RestTemplate,
Spring
HATEOAS
Axis2, HTTP
Client
RESTEasy Restfulie,
Dropwizard,
Restlet
Division
10
13 April 2018
Variety of Narrow-Focused Frameworks (cont.)
Layer/Tier Java EE Spring Apache JBoss Others
Dependency
Injection
CDI Spring IOC/DI Apache
Commons
Inject
Jboss Weld Google Guice,
Dagger
Aspect Oriented
Programming
(AOP)
CDI-
Interception-
Decorators
(AOP)
Spring AOP Apache
Polygene
JBossAOP AspectJ
WebSocket Java API for
WebSocket
spring-
websocket
Apache-Camel TooTallNate,
jWebSocket,
Atmosphere,
Webbit, Tyrus
Bean Validation Bean
Validation
Spring Bean
Validation
Apache
Commons
Validator,
Apache BVal
Hibernate
Validator
fluent-validator,
Validation
Framework
Log Java Logging
API
Apache Log4j 2 Jboss Logging Logback,
tinylog,
SmartInspect,
SLF4J)
Security JAAS Spring Security Apache Shiro PicketLink OACC, HDIV,
JGuard
Division
11
13 April 2018
Variety of Narrow-Focused Frameworks (cont.)
Layer/Tier Java EE Spring Apache JBoss Others
Cache JCACHE -
Java
Temporary
Caching API
Spring-cache,
Spring-Jcache
Apache Java
Caching
System (JCS),
JBoss Cache, EhCache,
OSCache,
DynaCache,
Cache4J
Distributed Cache
(In-Memory Data
Grid)
Spring Data
Gemfire
Apache Ignite Infinispan Terracotta,
Coherence,
ExtemeScale,
MemCache,
Redis
JSON Processing JSON-P Spring Jackson Apache
Johnzon
JSON.simple,
GSON, Jackson
XML Processing JAXB, JAXR,
JAXP, StAX
Apache Xerces,
Apache
Santuario,
Apache Xalan
DOM4J
Batch Batch
Processing for
Java Platform
Spring Batch Apache Flink,
Apache Apex
JBeret Easy Batch
Workflow
Business Process
Management
(BPM)
Apache ODE JBoss jBPM Bonita, Activiti,
Camunda,
Imixs, COPPER
Division
12
13 April 2018
Variety of Narrow-Focused Frameworks (cont.)
Layer/Tier/
Services
Library/Framework
Reporting Jasper, BIRT, JFreeChart
PDF Flyingsaucer, iText, Apache PDFBox
Office Apache POI
Imagery Imgscalr, Tess4J, ZXing
Search Apache Lucene, Apache Solr, Elasticsearch
Template Freemarker, Velocity
Rules Engine Drools, OpenL Tablets, Easy Rules, RuleBook, Jess
Division
13
13 April 2018
Full Stack Application Framework (Bundled) List
Tier/Layer JHipster Cuba Ninja OpenXava Apache Isis
Presentation AngularJS,
Angular
Vaadin, Google
Polymer, Swing,
Spring MVC
Ninja RCV OpenXava Apache Wicket
Transaction Spring-TX 4 Spring-TX 4 Guice Persist JTA Apache JDO-
DataNucleus
Persistence Spring Data JPA-
Hibernate
JPA-EclipseLink JPA-Hibernate JPA-Hibernate Apache JDO-
DataNucleus
WebService Spring MVC
REST 4
Spring MVC
REST 4
Jboss RESTEasy
Security Spring Security Spring Security Ninja Security Apache Shiro
JSON Processing Jackson GSON, Jackson Jackson
Cache Ehcache EclipseLink
Cache
Ehcache Hibernate Cache
Log Logback Logback logback Log4j Log4j
WebSocket Spring
Websocket
Ninja WebSockets
Search ElasticSearch Apache Lucene
BPM Activiti
Report Cuba YARG JasperReport
Vendor Supported No Yes Yes Yes No
Division
14
13 April 2018
Low (no) Code Application Framework List
Tier/Layer Wavemaker Pega Liferay
Presentation JQuery, Angular JQuery,
AngularJS
Spring MVC 4, Any
JS Framework, JSF,
Vaadin
Transaction Spring-TX 4
Persistence JPA-Hibernate JPA-Hibernate
WebService Apache CXF, Spring
MVC REST 4
Axis2, Apache
CXF
Spring MVC REST 4
Apache CXF
Security Spring Security Liferay-security
JSON
Processing
GSON, Jackson GSON, Jackson JSON.simple
Cache Hazelcast,
ehcache, JCache
Ehcache
Log Log4j Log4j Log4j
WebSocket Atmosphere Java API for
WebSocket
Search Elasticsearch ElasticSearch
BPM Pega Kaleo
Report JasperReport JasperReport JasperReport
Other Low
Code
Kony,
OutSystems,
Mendix,
PowerApps
Proposed Standard03
15
Division
16
13 April 2018
Proposed Standard for Java Presentation
Framework
1. AngularJS+Spring MVC
• Internet and Intranet Apps
• Simple - Complex UI
2. JSF
• Intranet Apps
• Simple - Medium UI
• Fast Development
Division
17
13 April 2018
Java Presentation Framework Comparison
Presentation – Action Based Presentation – Component Based
The API clearly working on parsing and generating
HTML request-response
The API abstracting how to parse and generating
HTML request-response
Manual gather, convert and validate request
parameters and update the model values. Need to
write more (boilerplate) code yourself to achieve the
goal.
Automatic gather, convert and validate request
parameters and update the model values. Have less
fine grained control over the process and the
HTML/CSS/JS output.
Slow development compare to component based Fast development compare to action based
Doesn’t provide data binding mechanism Provide data binding mechanism
The developers must know Java and web
development (Javascript-Typescript, CSS, HTML)
The developers must known Java
Actions based framework is really good if you only
need to send and receive Http request and http
response (really useful in Ajax app)
Component based framework is really good if you
want to have a reusable components to be used by
many different projects
Suitable for complex and heavy UI Not suitable for complex and heavy UI, develop
custom UI may need customize the framework and
need web technology knowledge
UI logic and UI state is on client side UI logic and UI state is on server side
No specialized UI component ecosystem Strong community and COTS plug-in components
More scale and perform in comparison to
component based with same hardware specification.
Less scale and perform in comparison to action based
with same hardware specification. Higher load on
network and server (memory, processor).
Division
18
13 April 2018
Popularity of Java Presentation Frameworks
based on zeroturnaround.com
Public Data Combination from:
• StackOverflow,
• LinkedIn,
• GitHub, and
• Google search
Rank Framework Popularity
1 Spring mvc 28.82
2 JSF 15.2
3 Spring Boot 13.35
4 GWT 7.74
5 Grails 6.35
6 Struts 5.4
7 Dropwizard 4.9
8 Play framework 3.26
9 JHipster 2.49
10 jax-rs 2.44
11 Vaadin 2.15
12 Seam 1.94
13 Wicket 1.91
14 Tapestry 1.9
15 Sparkjava 0.77
16 Vert.x 0.76
17 Rapidoid 0.25
18 Lagom 0.24
19 Ratpack 0.13
Division
19
13 April 2018
Popularity of Java Presentation Frameworks
based on hotframeworks.com
Each framework is
scored by two separate
measures, and these are
simply averaged. The
two measures are:
1. GitHub score: Based
on the number of
stars the git
repository for a
framework has on
GitHub.
2. Stack Overflow
score: Based on the
number of questions
on Stack Overflow
that are tagged with
the name of the
framework.
Java Framework Score
Spring 88
JSF 81
Google Web Toolkit 78
Dropwizard 65
Struts 64
Vert.x 64
Wicket 63
Vaadin 61
Tapestry 53
Restlet 52
Ninja 49
ZK 47
Stripes 39
Cocoon 33
Apache Click 23
echo 18
HybridJava 0
Brutos 0
Turbine 0
Roma 0
JavaScript Framework Score
AngularJS 96
React 93
Angular 90
Express 87
Vue.js 86
Meteor 85
Ember.js 81
Sails.js 75
Aurelia 70
Koa 68
Dojo 63
OpenUI5 62
Feathers 61
Riot.js 59
Durandal 58
Mithril 58
SproutCore 53
(fab) 52
Flight 49
Inferno 49
Marko 48
CompoundJS 47
Flatiron 44
Division
20
13 April 2018
Java Presentation Framework Comparison
Action Based Framework
Component Based Framework
Division
21
13 April 2018
Proposed Standard for Full Stack In-House Java
Web Application
1. Liferay
2. CUBA
1. Liferay
2. CUBA
JHipster
1.CUBA
2.JHipster
Internet App Intranet App
Mission Critical App /
Strong Vendor Support
Non Mission Critical App /
Low (No) Vendor support
Division 13 April 2018
License and Service for JHipster Framework
JHipster Service
TRAINING
By Ippon Technologies USA
http://www.ipponusa.com/
PROFESSIONAL HELP
By Ippon Technologies USA
http://www.ipponusa.com/
COMMUNITY/FORUM
JHipster License
Division 13 April 2018
License and Service for CUBA Framework
CUBA License
CUBA Platform is distributed under Apache 2.0 - the most popular permissive open source license, which ensures the freedom to
use the platform and your applications for any purpose. The source code of the platform is available on GitHub.
Complementary RAD tools and additional modules intended to accelerate development are available in free and commercial
editions.
Free
Kick off your project with CUBA Studio
Studio makes project start very easy and helps to explore
platform features, hugely cutting the learning curve. The free
edition is fully functional and is only limited by up to 10 entities
in your application’s data model.
Continue in a Java IDE
CUBA applications can be developed without Studio purely in
a Java IDE, and the free CUBA plugin adds platform-specific
convenience features for working with code.
CommercialStarting at $139 per developer
Use advanced CUBA Studio features without limitations
Visual development, extensive code generation and hot deploy
save time on routine tasks.
Extend your application functionality with premium add-
ons
Add-ons include Reporting, BPM, Сharts&Maps, Full text
search and BI tools integration and can be added to your
application in just one click in CUBA Studio.
CUBA Service
ONLINE TRAINING
Comprehensive hands-on courses led by the core platform team developers
SERVICES
1. Free support 2. Consulting 3. Production Stage Support (Single Incident:$200, Base Support:$2800 p.a, Custom Support)
CUSTOM DEVELOPMENT
COMMUNITY/FORUM
Division 13 April 2018
License and Service for Liferay DXP Framework
Liferay DXP Service
TRAINING: Public, Online, Private Class. Training for : Business, Developer, Infrastructure
CONSULTING: Upgrade Analysis, Kick Start, Go Live, On Demand, Architectural Review, Performance Tuning,
Performance Management, Full Lifecycle, Managed Services
CERTIFICATION
COMMUNITY/FORUM
Liferay DXP License
Liferay Portal Enterprise Edition License:
Liferay Enterprise Subscription
Subscription Services:
Professional Support
Enterprise-Ready Software
Management Tools
Liferay Portal Community Edition License:
This library, Liferay Portal Community Edition, is free software
("Licensed Software"); you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public version
2.1
Division
25
13 April 2018
Technical Comparison
Tier/Layer JHipster Cuba Liferay
Presentation AngularJS, Angular Vaadin, Google Polymer,
Swing, Spring MVC
Spring MVC 4, Any JS
Framework, JSF, Vaadin
Transaction Spring-TX 4 Spring-TX 4 Spring-TX 4
Persistence Spring Data JPA-Hibernate JPA-EclipseLink JPA-Hibernate
WebService Spring MVC REST 4 Spring MVC REST 4 Spring MVC REST 4
Apache CXF
Security Spring Security Spring Security Liferay-security
JSON Processing Jackson GSON, Jackson JSON.simple
Cache Ehcache EclipseLink Cache Ehcache
Log Logback Logback Log4j
WebSocket Spring Websocket Java API for WebSocket
Search ElasticSearch Apache Lucene ElasticSearch
BPM Activiti Kaleo
Report Cuba YARG JasperReport
Division
26
13 April 2018
Non-Technical Comparison
Items JHipster Cuba Liferay
Company Julien Dubois and contributors Haulmont Technology Ltd Liferay, Inc
Country England USA
Initial release 21 October 2013 2014
Open Source:2016
2000
Total Client 224 14 1800+ Liferay EE
27,540 live websites
Features • Generate a full stack
applications and
microservices, with many
options
• API screen (generated with
Swagger), service registry
and discovery,
• Application Metric Monitoring
• Log Management
• Health Check Dashboard
• User accounting and
authorizing
• User Interface:
o A comprehensive set of
data-aware visual
components
o Polymer web client
o Generic data filter
o Entities inspector
o UI styles customization
o Multiple languages support
o Adapting to different screen
resolutions
• Server Side:
o User management
o Data access control
o Full audit of user actions
o Dynamic attributes
o File storage
o Admin tools
o Scheduled tasks
• Platform:
o Simplified UI Development
o Single-Click Configuration
o Integration Framework
o Multi-tenancy
o Product Menu
o Search
o Workflow Framework
o Auditing & Performance Mon
o Modularity
o Identity Management
• Web Experience
o Liferay WEM (Web Experience
Management)
o Geolocation
o AlloyEditor
o Role Based Content Delivery
o Breadcrumbs
o File Selector
o Inline Image Editor
o WSRP
Division
27
13 April 2018
Non-Technical Comparison (cont.)
Items JHipster Cuba Liferay
Features • Integration:
o Generic REST API
o LDAP integration
o Multiple Data Stores
o Single sign-on between CUBA
applications
o Multi-language Support
o Localization
o Search Engine Optimization
o Application Display Templates
o Audience Targeting
o Campaigns
Items Liferay
Features • Mobile Experience
o Mobile Device Rules
o Responsive Design
o Mobile Device Preview
o Liferay Screens
o Liferay Push
o Liferay Mobile SDK
o Mobile Sync App
• Business Productivity
o Forms
o Reports
o Workflow
o Dynamic Data Lists
• Enterprise Tools:
o Liferay Connected
Services
o Liferay Marketplace
o Lexicon
• Documents:
o Documents and Media
o SharePoint Integration
o Documentum Integration
o Alfresco Integration
o Document Types &
Metadata Sets
o Preview Generation
o Search
o Versioning
• Sync:
o Liferay Sync
o Single Sign On Support
• Developer Tools:
o Developer Studio
o Liferay Workspace
o Blade CLI
o Upgrade Tool
• Collaboration:
o Knowledge Base
o Bookmarks
o Invitations
o Blog
o Forums/Message Boards
o Wiki (and associated apps)
o Calendar
o RSS
o Alerts & Announcements
o Social Networking
o User & Group Statistics
o Polls
Division
28
13 April 2018
JHipster Software Architecture
Division
29
13 April 2018
JHipster Software Architecture (cont.)
Division
30
13 April 2018
CUBA Software Architecture
Division
31
13 April 2018
CUBA Software Architecture
Tier/Layer Cuba
Presentation Vaadin, Google
Polymer, Swing,
Spring MVC
Transaction Spring-TX 4
Persistence JPA-EclipseLink
WebService Spring MVC REST
4
Security Spring Security
JSON Processing GSON, Jackson
Cache EclipseLink Cache
Log Logback
WebSocket
Search Apache Lucene
BPM Activiti
Report Cuba YARG
Vendor Supported Yes
Division
32
13 April 2018
Liferay Software Architecture
Division
33
13 April 2018
Liferay Software Architecture (cont.)
Division
34
13 April 2018
Liferay Software Architecture (cont.)
Division
35
13 April 2018
Liferay Software Architecture (cont.)
Thanks You
Appendices00
37

Weitere ähnliche Inhalte

Was ist angesagt?

ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMijfcstjournal
 
Power platform Bootcamp Bulgaria 2021 - Power Platform Security
Power platform Bootcamp Bulgaria 2021 - Power Platform SecurityPower platform Bootcamp Bulgaria 2021 - Power Platform Security
Power platform Bootcamp Bulgaria 2021 - Power Platform SecurityDipti Chhatrapati
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
Citytech Application Modernization Using JBoss Seam
Citytech Application Modernization Using JBoss SeamCitytech Application Modernization Using JBoss Seam
Citytech Application Modernization Using JBoss SeamCITYTECH, Inc.
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryJohan den Haan
 
SpringSource dm Server (formerly known as SpringSource Application Platform)
SpringSource dm Server (formerly known as SpringSource Application Platform)SpringSource dm Server (formerly known as SpringSource Application Platform)
SpringSource dm Server (formerly known as SpringSource Application Platform)Aditya Jha
 
Creating Better Customer and Employee Experiences with Liferay Portal and Cra...
Creating Better Customer and Employee Experiences with Liferay Portal and Cra...Creating Better Customer and Employee Experiences with Liferay Portal and Cra...
Creating Better Customer and Employee Experiences with Liferay Portal and Cra...Crafter Software
 
Nilesh_Surange J2EE 9.5+ Years
Nilesh_Surange J2EE  9.5+ YearsNilesh_Surange J2EE  9.5+ Years
Nilesh_Surange J2EE 9.5+ Yearssurange
 
AnDevCon: Introduction to Darwino
AnDevCon: Introduction to DarwinoAnDevCon: Introduction to Darwino
AnDevCon: Introduction to DarwinoPhilippe Riand
 
salesforce_4+_years_exp
salesforce_4+_years_expsalesforce_4+_years_exp
salesforce_4+_years_expSrinivas .
 
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy Andrew Fadeev
 
CCLA Oracle WebCenter Portal Spaces Case Study
CCLA Oracle WebCenter Portal Spaces Case StudyCCLA Oracle WebCenter Portal Spaces Case Study
CCLA Oracle WebCenter Portal Spaces Case StudyExtended Content Solutions
 
Umit Yalcinalp Enterprise Mashupsfor S O A
Umit  Yalcinalp    Enterprise Mashupsfor S O AUmit  Yalcinalp    Enterprise Mashupsfor S O A
Umit Yalcinalp Enterprise Mashupsfor S O ASOA Symposium
 

Was ist angesagt? (20)

0. About this course
0. About this course0. About this course
0. About this course
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
Power platform Bootcamp Bulgaria 2021 - Power Platform Security
Power platform Bootcamp Bulgaria 2021 - Power Platform SecurityPower platform Bootcamp Bulgaria 2021 - Power Platform Security
Power platform Bootcamp Bulgaria 2021 - Power Platform Security
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Citytech Application Modernization Using JBoss Seam
Citytech Application Modernization Using JBoss SeamCitytech Application Modernization Using JBoss Seam
Citytech Application Modernization Using JBoss Seam
 
EJBW
EJBWEJBW
EJBW
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
 
SpringSource dm Server (formerly known as SpringSource Application Platform)
SpringSource dm Server (formerly known as SpringSource Application Platform)SpringSource dm Server (formerly known as SpringSource Application Platform)
SpringSource dm Server (formerly known as SpringSource Application Platform)
 
Creating Better Customer and Employee Experiences with Liferay Portal and Cra...
Creating Better Customer and Employee Experiences with Liferay Portal and Cra...Creating Better Customer and Employee Experiences with Liferay Portal and Cra...
Creating Better Customer and Employee Experiences with Liferay Portal and Cra...
 
Nilesh_Surange J2EE 9.5+ Years
Nilesh_Surange J2EE  9.5+ YearsNilesh_Surange J2EE  9.5+ Years
Nilesh_Surange J2EE 9.5+ Years
 
AnDevCon: Introduction to Darwino
AnDevCon: Introduction to DarwinoAnDevCon: Introduction to Darwino
AnDevCon: Introduction to Darwino
 
salesforce_4+_years_exp
salesforce_4+_years_expsalesforce_4+_years_exp
salesforce_4+_years_exp
 
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
 
Duraichi _Dotnet_6yrsexp_cv
Duraichi _Dotnet_6yrsexp_cvDuraichi _Dotnet_6yrsexp_cv
Duraichi _Dotnet_6yrsexp_cv
 
Sai_Resume
Sai_ResumeSai_Resume
Sai_Resume
 
CCLA Oracle WebCenter Portal Spaces Case Study
CCLA Oracle WebCenter Portal Spaces Case StudyCCLA Oracle WebCenter Portal Spaces Case Study
CCLA Oracle WebCenter Portal Spaces Case Study
 
Umit Yalcinalp Enterprise Mashupsfor S O A
Umit  Yalcinalp    Enterprise Mashupsfor S O AUmit  Yalcinalp    Enterprise Mashupsfor S O A
Umit Yalcinalp Enterprise Mashupsfor S O A
 
Sivagama_sundari_Sakthivel_Resume_2016
Sivagama_sundari_Sakthivel_Resume_2016Sivagama_sundari_Sakthivel_Resume_2016
Sivagama_sundari_Sakthivel_Resume_2016
 
Madhava_Sr_JAVA_J2EE
Madhava_Sr_JAVA_J2EEMadhava_Sr_JAVA_J2EE
Madhava_Sr_JAVA_J2EE
 
Krishna Karthik Amirineni_CV
Krishna Karthik Amirineni_CVKrishna Karthik Amirineni_CV
Krishna Karthik Amirineni_CV
 

Ähnlich wie Java Web Application Framework Standard

Intorduction to struts
Intorduction to strutsIntorduction to struts
Intorduction to strutsAnup72
 
J2EE Batch Processing
J2EE Batch ProcessingJ2EE Batch Processing
J2EE Batch ProcessingChris Adkin
 
Java Coaching in Hyderabad introduction
Java Coaching in Hyderabad  introductionJava Coaching in Hyderabad  introduction
Java Coaching in Hyderabad introductionAzure Data Factory
 
Ganesh Nagarajan - Resume
Ganesh Nagarajan - ResumeGanesh Nagarajan - Resume
Ganesh Nagarajan - ResumeRaja ganesh
 
Resume_LaluChavan
Resume_LaluChavanResume_LaluChavan
Resume_LaluChavanLalu Chavan
 
Kalyan Chakravarthy - Sr JavaJ2EE Developer
Kalyan Chakravarthy - Sr JavaJ2EE DeveloperKalyan Chakravarthy - Sr JavaJ2EE Developer
Kalyan Chakravarthy - Sr JavaJ2EE Developerchakri kalyan
 
Java, BA,UI resumes
Java, BA,UI resumesJava, BA,UI resumes
Java, BA,UI resumesNeel A
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year projectsuneel singh
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 

Ähnlich wie Java Web Application Framework Standard (20)

Gangadhar_Challa_Profile
Gangadhar_Challa_ProfileGangadhar_Challa_Profile
Gangadhar_Challa_Profile
 
Intorduction to struts
Intorduction to strutsIntorduction to struts
Intorduction to struts
 
Vijayakumar_Subramaniapillai_Sr.Java_Developer
Vijayakumar_Subramaniapillai_Sr.Java_DeveloperVijayakumar_Subramaniapillai_Sr.Java_Developer
Vijayakumar_Subramaniapillai_Sr.Java_Developer
 
Spring ppt
Spring pptSpring ppt
Spring ppt
 
J2EE Batch Processing
J2EE Batch ProcessingJ2EE Batch Processing
J2EE Batch Processing
 
ABHAY_SHUKLA
ABHAY_SHUKLAABHAY_SHUKLA
ABHAY_SHUKLA
 
Frameworks in java
Frameworks in javaFrameworks in java
Frameworks in java
 
Suresh Resume
Suresh ResumeSuresh Resume
Suresh Resume
 
Profile
ProfileProfile
Profile
 
SAIGANESH CHINTALA_JAVA
SAIGANESH CHINTALA_JAVASAIGANESH CHINTALA_JAVA
SAIGANESH CHINTALA_JAVA
 
Java Coaching in Hyderabad introduction
Java Coaching in Hyderabad  introductionJava Coaching in Hyderabad  introduction
Java Coaching in Hyderabad introduction
 
Ganesh Nagarajan - Resume
Ganesh Nagarajan - ResumeGanesh Nagarajan - Resume
Ganesh Nagarajan - Resume
 
Resume_LaluChavan
Resume_LaluChavanResume_LaluChavan
Resume_LaluChavan
 
Kalyan Chakravarthy - Sr JavaJ2EE Developer
Kalyan Chakravarthy - Sr JavaJ2EE DeveloperKalyan Chakravarthy - Sr JavaJ2EE Developer
Kalyan Chakravarthy - Sr JavaJ2EE Developer
 
Java, BA,UI resumes
Java, BA,UI resumesJava, BA,UI resumes
Java, BA,UI resumes
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
 
Resume
ResumeResume
Resume
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
Spring Mvc
Spring MvcSpring Mvc
Spring Mvc
 
Gubendran Lakshmanan
Gubendran LakshmananGubendran Lakshmanan
Gubendran Lakshmanan
 

Kürzlich hochgeladen

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Java Web Application Framework Standard

  • 1. Java Web Application Framework Enterprise Architecture - Firmansyah 13 April 2018
  • 2. Division 2 13 April 2018 Objectives : 1. Why We Need Standard for In-house Java Web Application To explain background or reason why we need a standard for in- house Java web Application 2. Classification of Development Frameworks To explain Classification of Development Frameworks for Enterprise Apps especially to design full stack Java Web Application and explain variety of software framework. 3. Proposed Standard To explain the proposed standard for full stack In-house Java Web Application.
  • 3. Why We Need Standard for In-house Java Web Application 01 3
  • 4. Division 13 April 2018 Introduction Background To develop better enterprise web application we should follow some design pattern or application architecture principal. One of them is N-tier application architecture (Application Stacks). The rise of N-tier application architecture make Software Frameworks became popular and have variety of options in same layer/tier/service, especially on Java open source technology. Today, there are no Software Framework that fit all the requirements. Each software frameworks have pros and cons also addressed specific requirements. These variety of options may lead to many technology adoptions, maintenance headache, more non reusable software components, to many knowledge base or programmer skill that need to be maintained, etc.
  • 5. Division 13 April 2018 Introduction (cont.) Objective and Scope We need to define standard N-tier application architecture (Application Stacks) for in-house development, so we will has following benefits: 1. Increase reusable software components 2. Increase programmer productivity (focus on business logic) 3. Testing and maintenance easiness 4. Increase security and software quality 5. Increase time to market delivery 6. Increase cost efficiency The standard will be focused on Java web based application
  • 6. Division 13 April 2018 N-tier Application Architecture (Full Stack) Definition N-tier application architecture provides a model by which developers can create flexible and reusable applications. By segregating an application into tiers, developers acquire the option of modifying or adding a specific layer, instead of reworking the entire application. It also can address the requirements on performance, scalability, and availability.
  • 8. Division Java C++ C PHP Ruby C# VB.NET Scala Python … • Development from scratch (reinvent all the wheels) • Huge Codebase • Steep learning curve • High total cost of ownership • This level is used for building frameworks JHipster Cuba Ninja OpenXava Apache Isis Play Grails • Well-integrated narrow-focused framework • Shorter learning curve • Ready to use functionality for standard requirements • Faster development (RAD) Spring MVC Struts JSF Axis2 Vaadin Hibernate MyBatis EclipseLink Apache Shiro … • Laborious integration with each other • Different vendors • Hard updates to major versions • Have a mix of satisfactory development speed with a high level of flexibility. Mendix OutSystems Kony Pega Liferay DXP WaveMaker PowerApps • Low (no) management of project / source code • Problems with collaborative development • Low (no) flexibility for non standard requirements • Customization beyond predefined points is impossible • Fastest way to configure simple applications • Provide non-programmer UI interface to build applications Low/No Code Frameworks Full-Stack Frameworks Narrow- Focused Frameworks "No Frameworks" Approach 8 13 April 2018 Classification of Development Frameworks for N-Tier (Full Stack) Enterprise Apps DevelopmentSpeed Manageability,Flexibility,andRangeofApplicability
  • 9. Division 9 13 April 2018 Variety of Narrow-Focused Frameworks Layer/Tier Java EE Spring Apache JBoss Others Presentation – Action Based Spring MVC Struts 2 Stripes Presentation – Component Based JSF Tapestry, Wicket, MyFaces RichFaces Vaadin, ZK, GWT, PrimeFaces, IceFaces Transaction JTA Spring-TX Narayana (JBossTS) Atomikos, Bitronix Persistence (ORM) JPA Spring Data JPA, Spring JDBC MyBatis/ iBATIS, jOOQ, OpenJPA Hibernate EclipseLink, TopLink Messaging (MOM) MDB, JMS spring-amqp, spring-rabbit ActiveMQ, Kafka HornetQ Hermes Web Service – SOAP Based JAX-WS Spring-WS Axis2, CXF, Apache Web Services JBossWS Web Service – REST Based JAX-RS, Jersey Spring MVC REST, Spring RestTemplate, Spring HATEOAS Axis2, HTTP Client RESTEasy Restfulie, Dropwizard, Restlet
  • 10. Division 10 13 April 2018 Variety of Narrow-Focused Frameworks (cont.) Layer/Tier Java EE Spring Apache JBoss Others Dependency Injection CDI Spring IOC/DI Apache Commons Inject Jboss Weld Google Guice, Dagger Aspect Oriented Programming (AOP) CDI- Interception- Decorators (AOP) Spring AOP Apache Polygene JBossAOP AspectJ WebSocket Java API for WebSocket spring- websocket Apache-Camel TooTallNate, jWebSocket, Atmosphere, Webbit, Tyrus Bean Validation Bean Validation Spring Bean Validation Apache Commons Validator, Apache BVal Hibernate Validator fluent-validator, Validation Framework Log Java Logging API Apache Log4j 2 Jboss Logging Logback, tinylog, SmartInspect, SLF4J) Security JAAS Spring Security Apache Shiro PicketLink OACC, HDIV, JGuard
  • 11. Division 11 13 April 2018 Variety of Narrow-Focused Frameworks (cont.) Layer/Tier Java EE Spring Apache JBoss Others Cache JCACHE - Java Temporary Caching API Spring-cache, Spring-Jcache Apache Java Caching System (JCS), JBoss Cache, EhCache, OSCache, DynaCache, Cache4J Distributed Cache (In-Memory Data Grid) Spring Data Gemfire Apache Ignite Infinispan Terracotta, Coherence, ExtemeScale, MemCache, Redis JSON Processing JSON-P Spring Jackson Apache Johnzon JSON.simple, GSON, Jackson XML Processing JAXB, JAXR, JAXP, StAX Apache Xerces, Apache Santuario, Apache Xalan DOM4J Batch Batch Processing for Java Platform Spring Batch Apache Flink, Apache Apex JBeret Easy Batch Workflow Business Process Management (BPM) Apache ODE JBoss jBPM Bonita, Activiti, Camunda, Imixs, COPPER
  • 12. Division 12 13 April 2018 Variety of Narrow-Focused Frameworks (cont.) Layer/Tier/ Services Library/Framework Reporting Jasper, BIRT, JFreeChart PDF Flyingsaucer, iText, Apache PDFBox Office Apache POI Imagery Imgscalr, Tess4J, ZXing Search Apache Lucene, Apache Solr, Elasticsearch Template Freemarker, Velocity Rules Engine Drools, OpenL Tablets, Easy Rules, RuleBook, Jess
  • 13. Division 13 13 April 2018 Full Stack Application Framework (Bundled) List Tier/Layer JHipster Cuba Ninja OpenXava Apache Isis Presentation AngularJS, Angular Vaadin, Google Polymer, Swing, Spring MVC Ninja RCV OpenXava Apache Wicket Transaction Spring-TX 4 Spring-TX 4 Guice Persist JTA Apache JDO- DataNucleus Persistence Spring Data JPA- Hibernate JPA-EclipseLink JPA-Hibernate JPA-Hibernate Apache JDO- DataNucleus WebService Spring MVC REST 4 Spring MVC REST 4 Jboss RESTEasy Security Spring Security Spring Security Ninja Security Apache Shiro JSON Processing Jackson GSON, Jackson Jackson Cache Ehcache EclipseLink Cache Ehcache Hibernate Cache Log Logback Logback logback Log4j Log4j WebSocket Spring Websocket Ninja WebSockets Search ElasticSearch Apache Lucene BPM Activiti Report Cuba YARG JasperReport Vendor Supported No Yes Yes Yes No
  • 14. Division 14 13 April 2018 Low (no) Code Application Framework List Tier/Layer Wavemaker Pega Liferay Presentation JQuery, Angular JQuery, AngularJS Spring MVC 4, Any JS Framework, JSF, Vaadin Transaction Spring-TX 4 Persistence JPA-Hibernate JPA-Hibernate WebService Apache CXF, Spring MVC REST 4 Axis2, Apache CXF Spring MVC REST 4 Apache CXF Security Spring Security Liferay-security JSON Processing GSON, Jackson GSON, Jackson JSON.simple Cache Hazelcast, ehcache, JCache Ehcache Log Log4j Log4j Log4j WebSocket Atmosphere Java API for WebSocket Search Elasticsearch ElasticSearch BPM Pega Kaleo Report JasperReport JasperReport JasperReport Other Low Code Kony, OutSystems, Mendix, PowerApps
  • 16. Division 16 13 April 2018 Proposed Standard for Java Presentation Framework 1. AngularJS+Spring MVC • Internet and Intranet Apps • Simple - Complex UI 2. JSF • Intranet Apps • Simple - Medium UI • Fast Development
  • 17. Division 17 13 April 2018 Java Presentation Framework Comparison Presentation – Action Based Presentation – Component Based The API clearly working on parsing and generating HTML request-response The API abstracting how to parse and generating HTML request-response Manual gather, convert and validate request parameters and update the model values. Need to write more (boilerplate) code yourself to achieve the goal. Automatic gather, convert and validate request parameters and update the model values. Have less fine grained control over the process and the HTML/CSS/JS output. Slow development compare to component based Fast development compare to action based Doesn’t provide data binding mechanism Provide data binding mechanism The developers must know Java and web development (Javascript-Typescript, CSS, HTML) The developers must known Java Actions based framework is really good if you only need to send and receive Http request and http response (really useful in Ajax app) Component based framework is really good if you want to have a reusable components to be used by many different projects Suitable for complex and heavy UI Not suitable for complex and heavy UI, develop custom UI may need customize the framework and need web technology knowledge UI logic and UI state is on client side UI logic and UI state is on server side No specialized UI component ecosystem Strong community and COTS plug-in components More scale and perform in comparison to component based with same hardware specification. Less scale and perform in comparison to action based with same hardware specification. Higher load on network and server (memory, processor).
  • 18. Division 18 13 April 2018 Popularity of Java Presentation Frameworks based on zeroturnaround.com Public Data Combination from: • StackOverflow, • LinkedIn, • GitHub, and • Google search Rank Framework Popularity 1 Spring mvc 28.82 2 JSF 15.2 3 Spring Boot 13.35 4 GWT 7.74 5 Grails 6.35 6 Struts 5.4 7 Dropwizard 4.9 8 Play framework 3.26 9 JHipster 2.49 10 jax-rs 2.44 11 Vaadin 2.15 12 Seam 1.94 13 Wicket 1.91 14 Tapestry 1.9 15 Sparkjava 0.77 16 Vert.x 0.76 17 Rapidoid 0.25 18 Lagom 0.24 19 Ratpack 0.13
  • 19. Division 19 13 April 2018 Popularity of Java Presentation Frameworks based on hotframeworks.com Each framework is scored by two separate measures, and these are simply averaged. The two measures are: 1. GitHub score: Based on the number of stars the git repository for a framework has on GitHub. 2. Stack Overflow score: Based on the number of questions on Stack Overflow that are tagged with the name of the framework. Java Framework Score Spring 88 JSF 81 Google Web Toolkit 78 Dropwizard 65 Struts 64 Vert.x 64 Wicket 63 Vaadin 61 Tapestry 53 Restlet 52 Ninja 49 ZK 47 Stripes 39 Cocoon 33 Apache Click 23 echo 18 HybridJava 0 Brutos 0 Turbine 0 Roma 0 JavaScript Framework Score AngularJS 96 React 93 Angular 90 Express 87 Vue.js 86 Meteor 85 Ember.js 81 Sails.js 75 Aurelia 70 Koa 68 Dojo 63 OpenUI5 62 Feathers 61 Riot.js 59 Durandal 58 Mithril 58 SproutCore 53 (fab) 52 Flight 49 Inferno 49 Marko 48 CompoundJS 47 Flatiron 44
  • 20. Division 20 13 April 2018 Java Presentation Framework Comparison Action Based Framework Component Based Framework
  • 21. Division 21 13 April 2018 Proposed Standard for Full Stack In-House Java Web Application 1. Liferay 2. CUBA 1. Liferay 2. CUBA JHipster 1.CUBA 2.JHipster Internet App Intranet App Mission Critical App / Strong Vendor Support Non Mission Critical App / Low (No) Vendor support
  • 22. Division 13 April 2018 License and Service for JHipster Framework JHipster Service TRAINING By Ippon Technologies USA http://www.ipponusa.com/ PROFESSIONAL HELP By Ippon Technologies USA http://www.ipponusa.com/ COMMUNITY/FORUM JHipster License
  • 23. Division 13 April 2018 License and Service for CUBA Framework CUBA License CUBA Platform is distributed under Apache 2.0 - the most popular permissive open source license, which ensures the freedom to use the platform and your applications for any purpose. The source code of the platform is available on GitHub. Complementary RAD tools and additional modules intended to accelerate development are available in free and commercial editions. Free Kick off your project with CUBA Studio Studio makes project start very easy and helps to explore platform features, hugely cutting the learning curve. The free edition is fully functional and is only limited by up to 10 entities in your application’s data model. Continue in a Java IDE CUBA applications can be developed without Studio purely in a Java IDE, and the free CUBA plugin adds platform-specific convenience features for working with code. CommercialStarting at $139 per developer Use advanced CUBA Studio features without limitations Visual development, extensive code generation and hot deploy save time on routine tasks. Extend your application functionality with premium add- ons Add-ons include Reporting, BPM, Сharts&Maps, Full text search and BI tools integration and can be added to your application in just one click in CUBA Studio. CUBA Service ONLINE TRAINING Comprehensive hands-on courses led by the core platform team developers SERVICES 1. Free support 2. Consulting 3. Production Stage Support (Single Incident:$200, Base Support:$2800 p.a, Custom Support) CUSTOM DEVELOPMENT COMMUNITY/FORUM
  • 24. Division 13 April 2018 License and Service for Liferay DXP Framework Liferay DXP Service TRAINING: Public, Online, Private Class. Training for : Business, Developer, Infrastructure CONSULTING: Upgrade Analysis, Kick Start, Go Live, On Demand, Architectural Review, Performance Tuning, Performance Management, Full Lifecycle, Managed Services CERTIFICATION COMMUNITY/FORUM Liferay DXP License Liferay Portal Enterprise Edition License: Liferay Enterprise Subscription Subscription Services: Professional Support Enterprise-Ready Software Management Tools Liferay Portal Community Edition License: This library, Liferay Portal Community Edition, is free software ("Licensed Software"); you can redistribute it and/or modify it under the terms of the GNU Lesser General Public version 2.1
  • 25. Division 25 13 April 2018 Technical Comparison Tier/Layer JHipster Cuba Liferay Presentation AngularJS, Angular Vaadin, Google Polymer, Swing, Spring MVC Spring MVC 4, Any JS Framework, JSF, Vaadin Transaction Spring-TX 4 Spring-TX 4 Spring-TX 4 Persistence Spring Data JPA-Hibernate JPA-EclipseLink JPA-Hibernate WebService Spring MVC REST 4 Spring MVC REST 4 Spring MVC REST 4 Apache CXF Security Spring Security Spring Security Liferay-security JSON Processing Jackson GSON, Jackson JSON.simple Cache Ehcache EclipseLink Cache Ehcache Log Logback Logback Log4j WebSocket Spring Websocket Java API for WebSocket Search ElasticSearch Apache Lucene ElasticSearch BPM Activiti Kaleo Report Cuba YARG JasperReport
  • 26. Division 26 13 April 2018 Non-Technical Comparison Items JHipster Cuba Liferay Company Julien Dubois and contributors Haulmont Technology Ltd Liferay, Inc Country England USA Initial release 21 October 2013 2014 Open Source:2016 2000 Total Client 224 14 1800+ Liferay EE 27,540 live websites Features • Generate a full stack applications and microservices, with many options • API screen (generated with Swagger), service registry and discovery, • Application Metric Monitoring • Log Management • Health Check Dashboard • User accounting and authorizing • User Interface: o A comprehensive set of data-aware visual components o Polymer web client o Generic data filter o Entities inspector o UI styles customization o Multiple languages support o Adapting to different screen resolutions • Server Side: o User management o Data access control o Full audit of user actions o Dynamic attributes o File storage o Admin tools o Scheduled tasks • Platform: o Simplified UI Development o Single-Click Configuration o Integration Framework o Multi-tenancy o Product Menu o Search o Workflow Framework o Auditing & Performance Mon o Modularity o Identity Management • Web Experience o Liferay WEM (Web Experience Management) o Geolocation o AlloyEditor o Role Based Content Delivery o Breadcrumbs o File Selector o Inline Image Editor o WSRP
  • 27. Division 27 13 April 2018 Non-Technical Comparison (cont.) Items JHipster Cuba Liferay Features • Integration: o Generic REST API o LDAP integration o Multiple Data Stores o Single sign-on between CUBA applications o Multi-language Support o Localization o Search Engine Optimization o Application Display Templates o Audience Targeting o Campaigns Items Liferay Features • Mobile Experience o Mobile Device Rules o Responsive Design o Mobile Device Preview o Liferay Screens o Liferay Push o Liferay Mobile SDK o Mobile Sync App • Business Productivity o Forms o Reports o Workflow o Dynamic Data Lists • Enterprise Tools: o Liferay Connected Services o Liferay Marketplace o Lexicon • Documents: o Documents and Media o SharePoint Integration o Documentum Integration o Alfresco Integration o Document Types & Metadata Sets o Preview Generation o Search o Versioning • Sync: o Liferay Sync o Single Sign On Support • Developer Tools: o Developer Studio o Liferay Workspace o Blade CLI o Upgrade Tool • Collaboration: o Knowledge Base o Bookmarks o Invitations o Blog o Forums/Message Boards o Wiki (and associated apps) o Calendar o RSS o Alerts & Announcements o Social Networking o User & Group Statistics o Polls
  • 28. Division 28 13 April 2018 JHipster Software Architecture
  • 29. Division 29 13 April 2018 JHipster Software Architecture (cont.)
  • 30. Division 30 13 April 2018 CUBA Software Architecture
  • 31. Division 31 13 April 2018 CUBA Software Architecture Tier/Layer Cuba Presentation Vaadin, Google Polymer, Swing, Spring MVC Transaction Spring-TX 4 Persistence JPA-EclipseLink WebService Spring MVC REST 4 Security Spring Security JSON Processing GSON, Jackson Cache EclipseLink Cache Log Logback WebSocket Search Apache Lucene BPM Activiti Report Cuba YARG Vendor Supported Yes
  • 32. Division 32 13 April 2018 Liferay Software Architecture
  • 33. Division 33 13 April 2018 Liferay Software Architecture (cont.)
  • 34. Division 34 13 April 2018 Liferay Software Architecture (cont.)
  • 35. Division 35 13 April 2018 Liferay Software Architecture (cont.)