SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Java EE 6 Adoption in 
One of the World’s Largest 
Online Financial Systems [CON2789] 
Hirofumi Iwasaki 
Arshal Ameen 
Financial Services Department, Development Unit, 
Rakuten, Inc.
2 
Agenda 
1. Java EE 6 for Our Financial Systems 
Overview 
2. EJB Appliance 
for Financial Back-End Systems 
3. JSF Appliance 
for Financial Front-End Systems
3 
Agenda 
1. Java EE 6 for Our Financial Systems 
Overview 
2. EJB Appliance 
for Financial Back-End Systems 
3. JSF Appliance 
for Financial Front-End Systems
4 
Global Rakuten Group
Rapidly Expanding Worldwide from 2010 
• E-commerce in 14 countries and regions 
• All services and businesses in 28 countries
Rakuten Group 
Consolidated GMS 
US $51.4B 
23.407 52.319 79.134 153.004 
329.106 
478.765 
1154.786 
832.354 
1861.268 
1474.570 
3413.582 
2746.821 
5248.976 
(JPY B) 
4146.244 
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
1997 2014 
7 
Internet Services 
(1997) 
Online Hotel 
Reservation 
Internet 
Research 
(2000) (2001) (2005) 
(2003) 
(2006) 
(2007) 
EC in 
France 
in USA 
(2010) 
EC 
In Thailand 
(2009) 
(2004) 
(2008) 
(2008) 
EC in 
UK 
(2011) 
EC 
In Austria 
In Indonesia 
EC in 
Malaysia 
in Brazil 
(2005) 
(2009) 
(2010) 
Internet Finance 
In Germany 
Global Video 
streaming Global Video 
(2012) 
In Spain 
(2013) 
(2013) 
EC 
In Singapore 
EC 
In Japan 
Online Books, 
DVD Store 
Pay-per-view 
Video Service 
Portal Site 
Performance 
Marketing 
In USA 
Internet 
Auction 
EC 
in Taiwan 
Global eBook 
Streaming 
Global Social 
Messaging App 
(2014) 
Online Security 
Brokerage 
Credit Card E-money Internet 
Banking 
Rakuten Life 
Insurance 
Professional IP Telephony 
Baseball 
Marriage 
Consultant 
(2014) 
Credit Card Payment 
By Smartphone 
(2012) 
Point Service 
Phone Service 
(2013) 
Online Golf 
Reservation 
Others 
Energy Service 
Real Café Service 
Curation Service 
Expanding Business Portfolio
8 
5 Financial Services of Rakuten Group in Japan 
Life 
Insurance 
Credit Card 
E-Money 
Bank 
Financial 
Securities
9 
5 Financial Services of Rakuten Group in Japan 
§ Big 5 Services 
§ Each has Huge Transactions 
§ 24/7 Non-Stop Services 
Life 
Insurance 
Credit Card 
E-Money 
Bank 
Financial 
Securities
10 
Requirements for Rakuten Financial Systems 
Financial Systems Requires 
1. Rapid business logic changeable as 
business model changes 
2. Huge request capacity as business grows 
3. Must be transactional
11 
3 Big Issues of the Rakuten Card Systems 
Credit Card 
1. Outdated ! 
2. Complicated ! 
3. Difficult!
12 
3 Big Targets for New Architecture 
Sustainability 
Requirements 
System Flexibility 
Transparency
13 
Why We Chose the Java EE ? 
Portability Results of 
Financial Sys 
Vendor 
Support 
Community 
Excellent Excellent Excellent Excellent 
Nothing Good Not Bad Mediocre
14 
Why We Chose WebLogic 12c 
Product Productivit 
y 
Reliability Scalability Support Price Operation Development 
WebLogic 
Server 12c 
Excellent Excellent Excellent Excellent Not Good Excellent Excellent 
Product A Excellent Excellent Excellent Excellent Not Good Not Good Not Good 
Product B Excellent Excellent Not Good Not Good Not Good Not Good Excellent
15 
Why We Chose the Oracle Exadata? 
Product Productivity Data 
reliability 
Scalability HA PCI DSS Operation 
Oracle 
Exadata Excellent Excellent Excellent Excellent Excellent Excellent 
Product X - Not Good - - - Not Good 
Product Y Excellent Excellent - Excellent Not Good Not Good
16 
5 Big Issues to Apply New JEE Architecture
17 
1. Policies: Case of Rakuten 
§ Internal Development First, 
no outsourcing to external SI vendors. (Group All) 
§ Financial businesses are also the target for the 
application of this policy. 
Educate NO ORDER 
& 
Develop 
Rare Case for 
Financial Systems in Japan 
In-House 
Development 
External Vendors
18 
2. Education: Read, Read, Read! 
RECOMMENDED 
for WebLogic 12c 
Good & Only 
Japanese 
EE 6 book 
Start from HERE 
4th Edition 
Good Pocket 
Reference! 
For NetBeans 7 
with EE 6
19 
2. Education: Online Materials 
Original Tutorial 
for Newbies (Start here!) 
NetBeans Java EE docs 
for Advanced Information
20 
2. Education: Simplify to Learn 
Old Architecture 
New Architecture 
Too difficult to learn many 
non-standard old technologies 
Simple & Easy!
21 
3. Architecture: Apply EE 6 Specs 
Rich Clients 
(no business logics) 
Call 
Web Presentation 
(no business logics) 
Business Logic 
(no presentations) 
Data Access 
JPA 
EJB 
JSF 
DBs 
Automatic 
Transaction 
Java FX JTA 
Messaging 
JMS MQ 
Connection 
RMI-IIOP 
Other 
Servers 
EMail 
JAX 
MTA JavaMail 
Call 
Call 
Call 
Call 
Call 
There's no 
rich client
22 
3. Architecture: Migrate from Old 
Front-End (Apache)" 
Front-End 
(WebLogic)" 
External 
Service" 
Back-End 
(WebLogic)" 
Old App Architecture 
Back-End" 
Database" 
View 
PHP" 
Action 
with 
Business 
Logic" 
Web 
Service" 
API 
Service" 
Data 
Service" 
External 
Services 
DMZ 
(Apache)" 
Static 
HTML, 
Images, 
CSS" 
View 
Facelet" 
External 
Services 
Exadata" 
Backing 
Bean 
(no 
business 
logic)" 
Business 
Logic" 
External" 
Entity" 
DAO" 
Entity" 
Transaction 
Boundary 
Transaction 
Boundary 
BEGIN 
COMMIT 
WebLogic 
Plug-In" 
BEGIN 
COMMIT 
New App Architecture
23 
3. Architecture: Simplified 
Core 
L7 Balancer 
Front Real-time 
Web Site A 
Web Site B 
Internal Site Proxy 
Reverse Batch Exec 
Front Batch 
Services (aka APIs) 
System B 
Gateway 
Database 
System C 
Sub Proc
Local Weblogic Server instance 
Code and Test with Fast-swap 
24 
4. Environment: Ease of Dev. 
Centralized DEV DB 
= X X
25 
4. Environment: Easy Startup 
2. Download 
Code from 
Repository 
3. Install JDK, IDE, 
App servers -> Build -> Run on the local terminal 
1. Join a 
project. 
4. Refer JIRA tickets 
for tasks
26 
5. Test: Full Auto Testing &Validation. 
1. Auto PULL 
Management Server 
2. Auto 
Build 
& Test 
3. Auto 
4. Report Validate 
Hourly 
ZERO Violations
27 
Agenda 
1. Java EE 6 for Our Financial Systems 
Overview 
2. EJB Appliance 
for Financial Back-End Systems 
3. JSF Appliance 
for Financial Front-End Systems
28 
Comparison between old and new system 
Feature Old New(JEE6) 
Dependency Injection Spring DI CDI 
Web Framework PHP(Symfony, Smarty) JSF 
REST Servlets JAX-RS 
Transactions Transactional(Spring) EJB CMT(JTA) 
Persistence iBATIS JPA 
Batch TERASOLUNA batch FW EJB 
WebSockets ー Java API for WebSockets 
Validation ー Bean Validation API 
Security ー Java EE Security
29 
Leverages and advantages 
Services Old Architecture EJB 3.x 
Dependency 
Could inject almost anything, programmatically 
Injection 
too 
Can inject anything in the container including EJBs, data 
sources, JMS and JPA resources but only annotations. 
Transaction 
management Transactional of Spring JTA 
Persistence iBatis Tightly integrated through JPA 
State management Web container session management Stateful Session Beans and Extended Persistence 
Context but we still stick to JSF based states 
Web Services By using XFire for registered beans. JAX-WS 2.0 
Messaging JMSTemplate adds nice abstraction over JMS. Message Driven Beans. 
AOP AspectJ and Spring AOP alliance. Simple but limited support through interceptors. 
Security None Declarative and programmatic security through JAAS. 
Scheduling Must add and configure Quartz for scheduling. 
None were used Simple scheduling possible through EJB Timer service 
Remoting Remote transactions and security are not 
supported. Not standardized. 
Integrated support through Session Bean remote 
interfaces.
30 
Remote Interfaces 
RDBMS 
Local Client 
JMS 
JTA 
JNDI 
JDBC 
RMI_IIOP 
Threading 
Pooling 
Security 
Web Services 
Remote Client JMS Provider 
Remote Client 
Application Server 
EJB Container 
Business Logic Tier 
Session Beans Message Driven 
Persistence Tier 
MeBsesaagnes Driven 
MeBsesaagnes Driven 
Beans 
Session Beans 
Session Beans 
JPA Entities Entity Manager 
JPA Entities Entity Manager
31 
JPA 
Features iBATIS JPA 
Simplicity Best Good 
Complete ORM solution Average Best 
Adaptability to data model changes Good Average 
Complexity Best Average 
Dependence on SQL Good Average 
Performance Best Average 
Portability across different relational 
databases Average Average 
Portability to non-Java platforms Best Not Supported 
Community support and documentation Average Good
32 
JTA 
§ Transaction rollback prevents data pollution 
§ Timeout settings limits latency in EJB response 
§ An ideal tool for resource management and data integrity. 
§ XA enables global transaction a.k.a 2PC.
33 
Stateful Vs Stateless in EJB 
§ Stateless EJBs ! 
§ States are managed by JSF.
34 
Managed Entities 
§ Fetches same entity every time 
§ Auto update entity on state change. 
§ Performance is best with Exadata, with others……….
35 
EJB Timer Service 
§ The EJB 3 timer service allows to invoke a method by the container 
after a specified interval of time. 
§ Timers are persistent and can survive a container crash or restart. 
§ Timers are transactional. 
§ Timers well actually are not that precise. 
§ Managing multiple timer events in not possible
36 
Agenda 
1. Java EE 6 for Our Financial Systems 
Overview 
2. EJB Appliance 
for Financial Back-End Systems 
3. JSF Appliance 
for Financial Front-End Systems
37 
Limitation of JSF 2.1 
1. Flash one step traversal limitation doesn’t meet our requirements. 
2. CSRF – No standardized implementation in 2.1. 
3. No file(template) include feature from server i.e the file to include 
using ui:include is present on server not within war or ear. 
4. No way to pass passthrough attributes or html5 data attributes used 
in JSF 2.2 
5. Custom validators, custom tags and custom renderers
38 
1. Flash
39 
2. Csrf tag 
§ Custom CSRF implementation into a JSF tag
40 
3. Custom template include tag 
§ Get template file contents from server and include it in JSF facelet
41 
4. Passthrough attributes 
§ Custom renderers for common tags 
§ Html5 attributes
42 
5. Customization 
§ Custom tags, UI components, validators, convertors and comparators.
43 
Contact 
Hirofumi Iwasaki (@HirofumiIwasaki) 
Arshal Ameen (@AforArsh)
44

Mais conteúdo relacionado

Mais procurados

Mais procurados (16)

Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
 
Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the Horizon
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
 
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
 
Move from J2EE to Java EE
Move from J2EE to Java EEMove from J2EE to Java EE
Move from J2EE to Java EE
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
 
Java on Azure
Java on AzureJava on Azure
Java on Azure
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
 
Best Way to Write SQL in Java
Best Way to Write SQL in JavaBest Way to Write SQL in Java
Best Way to Write SQL in Java
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
 
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
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
 

Destaque

Destaque (18)

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
 
How to be effective with JBoss Developer Studio
How to be effective with JBoss Developer StudioHow to be effective with JBoss Developer Studio
How to be effective with JBoss Developer Studio
 
[Rakuten TechConf2014] [E-6] Rakuten Ichiba Globalization - Challenges and So...
[Rakuten TechConf2014] [E-6] Rakuten Ichiba Globalization - Challenges and So...[Rakuten TechConf2014] [E-6] Rakuten Ichiba Globalization - Challenges and So...
[Rakuten TechConf2014] [E-6] Rakuten Ichiba Globalization - Challenges and So...
 
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 David Heffelfinger/Ensode Technology
GlassFish Story by David Heffelfinger/Ensode TechnologyGlassFish Story by David Heffelfinger/Ensode Technology
GlassFish Story by David Heffelfinger/Ensode Technology
 
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
 
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
 
Walla migration
Walla  migrationWalla  migration
Walla migration
 
Advanced resource management and scalability features for cloud environment u...
Advanced resource management and scalability features for cloud environment u...Advanced resource management and scalability features for cloud environment u...
Advanced resource management and scalability features for cloud environment u...
 
Jenzabar at GlassFish Community Event, JavaOne 2011
Jenzabar at GlassFish Community Event, JavaOne 2011Jenzabar at GlassFish Community Event, JavaOne 2011
Jenzabar at GlassFish Community Event, JavaOne 2011
 
Oraclew2013 devopsjlm
Oraclew2013 devopsjlmOraclew2013 devopsjlm
Oraclew2013 devopsjlm
 
Cloud Observation and Performance Analysis using Solaris 11 DTrace
Cloud Observation and Performance Analysis using Solaris 11 DTraceCloud Observation and Performance Analysis using Solaris 11 DTrace
Cloud Observation and Performance Analysis using Solaris 11 DTrace
 
Building WebLogic Domains With WLST
Building WebLogic Domains With WLSTBuilding WebLogic Domains With WLST
Building WebLogic Domains With WLST
 
Oracle Solaris 11 Built for Clouds
Oracle Solaris 11 Built for Clouds Oracle Solaris 11 Built for Clouds
Oracle Solaris 11 Built for Clouds
 
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use CaseOracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
 
Solaris vs Linux
Solaris vs LinuxSolaris vs Linux
Solaris vs Linux
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
 

Semelhante a Java EE 6 Adoption in One of the World’s Largest Online Financial Systems

Venkatarao_2+Years_Experiance_JAVA2
Venkatarao_2+Years_Experiance_JAVA2Venkatarao_2+Years_Experiance_JAVA2
Venkatarao_2+Years_Experiance_JAVA2
pediredla venkatarao
 

Semelhante a Java EE 6 Adoption in One of the World’s Largest Online Financial Systems (20)

Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [Ja...
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...
 
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
 
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 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?
 
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...
 
KaranDeepSinghCV
KaranDeepSinghCVKaranDeepSinghCV
KaranDeepSinghCV
 
Developing Web Application Using J2EE - Nex
Developing Web Application Using J2EE - NexDeveloping Web Application Using J2EE - Nex
Developing Web Application Using J2EE - Nex
 
Mulesoft torronto meetup_16
Mulesoft torronto meetup_16Mulesoft torronto meetup_16
Mulesoft torronto meetup_16
 
Lec2 ecom fall16
Lec2 ecom fall16Lec2 ecom fall16
Lec2 ecom fall16
 
[Rakuten TechConf2014] [A-4] Rakuten Ichiba
[Rakuten TechConf2014] [A-4] Rakuten Ichiba[Rakuten TechConf2014] [A-4] Rakuten Ichiba
[Rakuten TechConf2014] [A-4] Rakuten Ichiba
 
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
 
Venkatarao_2+Years_Experiance_JAVA2
Venkatarao_2+Years_Experiance_JAVA2Venkatarao_2+Years_Experiance_JAVA2
Venkatarao_2+Years_Experiance_JAVA2
 
React for .net developers
React for .net developersReact for .net developers
React for .net developers
 
AltoWeb_SPEED_Overview-2001
AltoWeb_SPEED_Overview-2001AltoWeb_SPEED_Overview-2001
AltoWeb_SPEED_Overview-2001
 
Splunk in Rakuten: Splunk as a Service for all
Splunk in Rakuten: Splunk as a Service for allSplunk in Rakuten: Splunk as a Service for all
Splunk in Rakuten: Splunk as a Service for all
 
altowebWhitePaper
altowebWhitePaperaltowebWhitePaper
altowebWhitePaper
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/M
 
ADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.pptADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.ppt
 

Último

Último (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Java EE 6 Adoption in One of the World’s Largest Online Financial Systems

  • 1. Java EE 6 Adoption in One of the World’s Largest Online Financial Systems [CON2789] Hirofumi Iwasaki Arshal Ameen Financial Services Department, Development Unit, Rakuten, Inc.
  • 2. 2 Agenda 1. Java EE 6 for Our Financial Systems Overview 2. EJB Appliance for Financial Back-End Systems 3. JSF Appliance for Financial Front-End Systems
  • 3. 3 Agenda 1. Java EE 6 for Our Financial Systems Overview 2. EJB Appliance for Financial Back-End Systems 3. JSF Appliance for Financial Front-End Systems
  • 5. Rapidly Expanding Worldwide from 2010 • E-commerce in 14 countries and regions • All services and businesses in 28 countries
  • 6. Rakuten Group Consolidated GMS US $51.4B 23.407 52.319 79.134 153.004 329.106 478.765 1154.786 832.354 1861.268 1474.570 3413.582 2746.821 5248.976 (JPY B) 4146.244 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
  • 7. 1997 2014 7 Internet Services (1997) Online Hotel Reservation Internet Research (2000) (2001) (2005) (2003) (2006) (2007) EC in France in USA (2010) EC In Thailand (2009) (2004) (2008) (2008) EC in UK (2011) EC In Austria In Indonesia EC in Malaysia in Brazil (2005) (2009) (2010) Internet Finance In Germany Global Video streaming Global Video (2012) In Spain (2013) (2013) EC In Singapore EC In Japan Online Books, DVD Store Pay-per-view Video Service Portal Site Performance Marketing In USA Internet Auction EC in Taiwan Global eBook Streaming Global Social Messaging App (2014) Online Security Brokerage Credit Card E-money Internet Banking Rakuten Life Insurance Professional IP Telephony Baseball Marriage Consultant (2014) Credit Card Payment By Smartphone (2012) Point Service Phone Service (2013) Online Golf Reservation Others Energy Service Real Café Service Curation Service Expanding Business Portfolio
  • 8. 8 5 Financial Services of Rakuten Group in Japan Life Insurance Credit Card E-Money Bank Financial Securities
  • 9. 9 5 Financial Services of Rakuten Group in Japan § Big 5 Services § Each has Huge Transactions § 24/7 Non-Stop Services Life Insurance Credit Card E-Money Bank Financial Securities
  • 10. 10 Requirements for Rakuten Financial Systems Financial Systems Requires 1. Rapid business logic changeable as business model changes 2. Huge request capacity as business grows 3. Must be transactional
  • 11. 11 3 Big Issues of the Rakuten Card Systems Credit Card 1. Outdated ! 2. Complicated ! 3. Difficult!
  • 12. 12 3 Big Targets for New Architecture Sustainability Requirements System Flexibility Transparency
  • 13. 13 Why We Chose the Java EE ? Portability Results of Financial Sys Vendor Support Community Excellent Excellent Excellent Excellent Nothing Good Not Bad Mediocre
  • 14. 14 Why We Chose WebLogic 12c Product Productivit y Reliability Scalability Support Price Operation Development WebLogic Server 12c Excellent Excellent Excellent Excellent Not Good Excellent Excellent Product A Excellent Excellent Excellent Excellent Not Good Not Good Not Good Product B Excellent Excellent Not Good Not Good Not Good Not Good Excellent
  • 15. 15 Why We Chose the Oracle Exadata? Product Productivity Data reliability Scalability HA PCI DSS Operation Oracle Exadata Excellent Excellent Excellent Excellent Excellent Excellent Product X - Not Good - - - Not Good Product Y Excellent Excellent - Excellent Not Good Not Good
  • 16. 16 5 Big Issues to Apply New JEE Architecture
  • 17. 17 1. Policies: Case of Rakuten § Internal Development First, no outsourcing to external SI vendors. (Group All) § Financial businesses are also the target for the application of this policy. Educate NO ORDER & Develop Rare Case for Financial Systems in Japan In-House Development External Vendors
  • 18. 18 2. Education: Read, Read, Read! RECOMMENDED for WebLogic 12c Good & Only Japanese EE 6 book Start from HERE 4th Edition Good Pocket Reference! For NetBeans 7 with EE 6
  • 19. 19 2. Education: Online Materials Original Tutorial for Newbies (Start here!) NetBeans Java EE docs for Advanced Information
  • 20. 20 2. Education: Simplify to Learn Old Architecture New Architecture Too difficult to learn many non-standard old technologies Simple & Easy!
  • 21. 21 3. Architecture: Apply EE 6 Specs Rich Clients (no business logics) Call Web Presentation (no business logics) Business Logic (no presentations) Data Access JPA EJB JSF DBs Automatic Transaction Java FX JTA Messaging JMS MQ Connection RMI-IIOP Other Servers EMail JAX MTA JavaMail Call Call Call Call Call There's no rich client
  • 22. 22 3. Architecture: Migrate from Old Front-End (Apache)" Front-End (WebLogic)" External Service" Back-End (WebLogic)" Old App Architecture Back-End" Database" View PHP" Action with Business Logic" Web Service" API Service" Data Service" External Services DMZ (Apache)" Static HTML, Images, CSS" View Facelet" External Services Exadata" Backing Bean (no business logic)" Business Logic" External" Entity" DAO" Entity" Transaction Boundary Transaction Boundary BEGIN COMMIT WebLogic Plug-In" BEGIN COMMIT New App Architecture
  • 23. 23 3. Architecture: Simplified Core L7 Balancer Front Real-time Web Site A Web Site B Internal Site Proxy Reverse Batch Exec Front Batch Services (aka APIs) System B Gateway Database System C Sub Proc
  • 24. Local Weblogic Server instance Code and Test with Fast-swap 24 4. Environment: Ease of Dev. Centralized DEV DB = X X
  • 25. 25 4. Environment: Easy Startup 2. Download Code from Repository 3. Install JDK, IDE, App servers -> Build -> Run on the local terminal 1. Join a project. 4. Refer JIRA tickets for tasks
  • 26. 26 5. Test: Full Auto Testing &Validation. 1. Auto PULL Management Server 2. Auto Build & Test 3. Auto 4. Report Validate Hourly ZERO Violations
  • 27. 27 Agenda 1. Java EE 6 for Our Financial Systems Overview 2. EJB Appliance for Financial Back-End Systems 3. JSF Appliance for Financial Front-End Systems
  • 28. 28 Comparison between old and new system Feature Old New(JEE6) Dependency Injection Spring DI CDI Web Framework PHP(Symfony, Smarty) JSF REST Servlets JAX-RS Transactions Transactional(Spring) EJB CMT(JTA) Persistence iBATIS JPA Batch TERASOLUNA batch FW EJB WebSockets ー Java API for WebSockets Validation ー Bean Validation API Security ー Java EE Security
  • 29. 29 Leverages and advantages Services Old Architecture EJB 3.x Dependency Could inject almost anything, programmatically Injection too Can inject anything in the container including EJBs, data sources, JMS and JPA resources but only annotations. Transaction management Transactional of Spring JTA Persistence iBatis Tightly integrated through JPA State management Web container session management Stateful Session Beans and Extended Persistence Context but we still stick to JSF based states Web Services By using XFire for registered beans. JAX-WS 2.0 Messaging JMSTemplate adds nice abstraction over JMS. Message Driven Beans. AOP AspectJ and Spring AOP alliance. Simple but limited support through interceptors. Security None Declarative and programmatic security through JAAS. Scheduling Must add and configure Quartz for scheduling. None were used Simple scheduling possible through EJB Timer service Remoting Remote transactions and security are not supported. Not standardized. Integrated support through Session Bean remote interfaces.
  • 30. 30 Remote Interfaces RDBMS Local Client JMS JTA JNDI JDBC RMI_IIOP Threading Pooling Security Web Services Remote Client JMS Provider Remote Client Application Server EJB Container Business Logic Tier Session Beans Message Driven Persistence Tier MeBsesaagnes Driven MeBsesaagnes Driven Beans Session Beans Session Beans JPA Entities Entity Manager JPA Entities Entity Manager
  • 31. 31 JPA Features iBATIS JPA Simplicity Best Good Complete ORM solution Average Best Adaptability to data model changes Good Average Complexity Best Average Dependence on SQL Good Average Performance Best Average Portability across different relational databases Average Average Portability to non-Java platforms Best Not Supported Community support and documentation Average Good
  • 32. 32 JTA § Transaction rollback prevents data pollution § Timeout settings limits latency in EJB response § An ideal tool for resource management and data integrity. § XA enables global transaction a.k.a 2PC.
  • 33. 33 Stateful Vs Stateless in EJB § Stateless EJBs ! § States are managed by JSF.
  • 34. 34 Managed Entities § Fetches same entity every time § Auto update entity on state change. § Performance is best with Exadata, with others……….
  • 35. 35 EJB Timer Service § The EJB 3 timer service allows to invoke a method by the container after a specified interval of time. § Timers are persistent and can survive a container crash or restart. § Timers are transactional. § Timers well actually are not that precise. § Managing multiple timer events in not possible
  • 36. 36 Agenda 1. Java EE 6 for Our Financial Systems Overview 2. EJB Appliance for Financial Back-End Systems 3. JSF Appliance for Financial Front-End Systems
  • 37. 37 Limitation of JSF 2.1 1. Flash one step traversal limitation doesn’t meet our requirements. 2. CSRF – No standardized implementation in 2.1. 3. No file(template) include feature from server i.e the file to include using ui:include is present on server not within war or ear. 4. No way to pass passthrough attributes or html5 data attributes used in JSF 2.2 5. Custom validators, custom tags and custom renderers
  • 39. 39 2. Csrf tag § Custom CSRF implementation into a JSF tag
  • 40. 40 3. Custom template include tag § Get template file contents from server and include it in JSF facelet
  • 41. 41 4. Passthrough attributes § Custom renderers for common tags § Html5 attributes
  • 42. 42 5. Customization § Custom tags, UI components, validators, convertors and comparators.
  • 43. 43 Contact Hirofumi Iwasaki (@HirofumiIwasaki) Arshal Ameen (@AforArsh)
  • 44. 44