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
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
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