To stay ahead of the technology curve, financial companies require the power, flexibility, and scalability of latest enterprise technologies for 24/7 services. Rakuten Card, one of the largest credit card companies in Japan, recently renewed its web front-end systems utilizing Java EE. This session provides answers to the following questions: Among the myriad of available technologies, why did it choose Oracle WebLogic and Oracle Exadata, managed by Oracle Enterprise Manager? How did it drive this huge project to completion in only six months, using only in-house development? What were the key success factors in launching and operating this mission-critical service? Hear about its extraordinary improvement results and how its selections are effective for financial enterprise systems.
My INSURER PTE LTD - Insurtech Innovation Award 2024
Case Study of Financial Web System Development and Operations with Oracle WebLogic 12c [OOW CON2820]
1. Case Study of Financial Web System
Development and Operations
with Oracle WebLogic 12c [CON2820]
Hirofumi Iwasaki(@HirofumiIwasaki)
Arshal Ameen(@aforarsh)
Financial Services Department, Development Unit,
Rakuten, Inc.
2. 2
Speaker Biography (1/2)
§ Arshal Ameen
– Core Engineer.
– Development leader for Rakuten Card Member Services.
– Team Leader and Trainer.
§ Carrier
– 3 Years as JEE engineer
– App developer of iOS, Android and Win8.
§ Opus, Lectures, etc.
– Conferences: JJUG Tokyo(2014)
3. 3
Agenda
1. Java EE with WebLogic and Exadata for Our
Financial Systems Overview
2. Starting with GlassFish,
Migrated to WebLogic
3. Hard Business Operations, with the Power of
the WebLogic and Exadata
4. 4
Agenda
1. Java EE with WebLogic and Exadata for Our
Financial Systems Overview
2. Starting with GlassFish,
Migrated to WebLogic
3. Hard Business Operations, with the Power of
the WebLogic and Exadata
8. 1997 2014
8
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
9. 9
5 Financial Services of Rakuten Group in Japan
Life
Insurance
Credit Card
E-Money
Bank
Financial
Securities
10. 10
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
11. 11
Requirements for Rakuten Financial Systems
Financial Systems Requires
1. Rapidly changeable business logic as
business model changes
2. Huge request capacity as business grows
3. Must be transactional
12. 12
3 Big Issues of the Rakuten Card Systems
Credit Card
1. Outdated !
2. Complicated !
3. Difficult!
13. 13
3 Big Targets for New Architecture
Sustainability
Requirements
System Flexibility
Transparency
14. 14
Why We Chose the Java EE ?
Portability Results of
Financial Sys
Vendor
Support
Community
Excellent Excellent Excellent Excellent
Nothing Good Not Bad Mediocre
15. 15
Why We Chose WebLogic 12c
Product Productivity 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
16. 16
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
17. 17
PCI DSS Certification Requirements
§ We were supposed to be certified with PCI DSS, the card payment
industry data security standard. Exadata is the solution.
OS audit DBA audit Standard audit Fine grain audit
Audit
target
Instance start and
stop, connect with
admin or listener
DB operation with
admin user
DB operation with
login, object operation
with DDL/DML, data
reference, etc.
CRUD for specific
data
Output OS file, listener log OS file OS file,
(DBA_AUDIT_TRAIL
view in Oracle)
User definition table,
(DBA_FGA_AUDIT_
TRAIL view in
Oracle)
Audit log Time, OS info, DB
instance, action, auth
info, exit code
Time, DB user, action,
auth info, OS user, exit
code
Time, user, action, OS
user, terminal name,
query, etc.
time, DB user, OS
user, accessed
object name, fine
grain audit policy
name, query
19. 19
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
20. 20
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
21. 21
2. Education: Online Materials
Original Tutorial
for Newbies (Start here!)
NetBeans Java EE docs
for Advanced Information
22. 22
2. Education: Simplify to Learn
Old Architecture
New Architecture
Too difficult to learn many
non-standard old technologies
Simple & Easy!
23. 23
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
24. 24
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
25. Local Weblogic Server instance
Code and Test with Fast-swap
25
4. Environment: Ease of Dev.
Centralized DEV DB
= X X
26. 26
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
27. 27
5. Test: Full Auto Testing &Validation.
1. Auto PULL
Management Server
2. Auto
Build
& Test
3. Auto
4. Report Validate
Hourly
ZERO Violations
28. 28
Speaker Biography (2/2)
§ Hirofumi Iwasaki
– Group Manager, Technology Manager
– Financial Service Department, Development Unit,
Rakuten, Inc.
§ Carrier
– Planning, designing & implementation of huge enterprise systems for financial,
manufacturing and public systems with enterprise middleware, especially Java
EE & .NET in Japan for about 16 years.
§ Opus, Lectures, etc.
– Conferences: Java Day Tokyo 2014, JJUG CCC Spring (2014), WebLogic
roundtable (2012-2013), Rakuten Tech Conference (2013) etc.
– Magazine: @IT (2005-2010), CIO Magazine (2009), IT Architect (2005-2009),
Web+DB Press (2005), Java World (2001-2004), etc.
29. 29
Agenda
1. Java EE with WebLogic and Exadata for Our
Financial Systems Overview
2. Starting with GlassFish,
Migrated to WebLogic
3. Hard Business Operations, with the Power of
the WebLogic and Exadata
30. 30
In Mid 2011, We Didn’t Have WebLogic 12c Yet
§ Chart of the mid 2011 Java EE app servers
Vendor App Server EE 5 Servers EE 6 Servers
Open Source GlassFish 2.1.1 3.1.1
Oracle WebLogic 10.3 -
IBM WebSphere 7.0 8.0
Red Hat JBoss 6.0 7.0 (partially)
§ We wanted to apply Java EE 6 for our new system, but not released.
§ We decided to use GlassFish 3.1.1 until the EE 6 applied WebLogic
(12c) released.
31. 31
Impact of the Migrating within the Project
§ Non-Interchangeable Development Code
GlassFish à WebLogic
– Different container behaviors.
– Non Java EE, different each server special APIs.
§ Scheduled Impacts for Migrating WebLogic Configurations
– Cluster configurations for high availabilities.
– Other setting adjustments.
– Bug checking and applying patches.
– Connecting Oracle Enterprise Manager.
32. 32
Investigation of the Differences
Code Base BEA WebLogic 6.0
based + Improvements
Felix OSGi modular
based kernel
Web Container WebLogic Original Tomcat Container
EJB Container WebLogic Original GlassFish Original
Remote Invocation T3, RMI-IIOP, SOAP RMI-IIOP, SOAP
Transaction Processing WebLogic Original GlassFish Original
Persistence Container WebLogic Original TopLink Based
Runtime JRockit, Oracle JDK Oracle JDK
33. 33
Schedule for Migrating from GlassFish to WebLogic
Java EE 6
Development
with GlassFish
Migrating to
WebLogic
(12c)
Development Operations
Java EE Development
with WebLogic (12c)
Production
Release
Configuration of Java EE 6 applied
WebLogic (12c) and
Enterprise Manager (12c)
(Dec, 2011)
Production
Release
Finally the
new WL was
released at
the end of 2011
34. 34
Non-Interchangeable Point: 1. Container Initialization
§ Single WAR including JSF and EJBs
– GlassFish
1. EJB initialize (@Startup)
2. JSF (Servlet) initialize (HttpServlet#init())
– WebLogic
1. JSF (Servlet) initialize (HttpServlet#init())
2. EJB initialize (@Startup)
§ Inverse initialization pattern
– Affected for the server initializations.
– Absorbed with the wrapper classes
35. 35
New Functions of Moving from GF to WL 12c
* Basically We Didn’t Use These Functions
36. 36
New Function: What WL 12c Knows About GF Config
Glassfish Weblogic Support
context-root context-root
security-role-mapping security-role-assignment
role-name role-name
principle-name principle-name
group-name principle-name
session-config session-descriptor
session-manager:manager-properties:reapIntervalSeconds
invalidation-interval-seconds
session-manager:manager-properties:maxSessions
max-in-memory-sessions
session-manager:manager-properties:directory
persistent store dir
session-manager:manager-properties:timeoutSeconds
timeout-secs
ejb-ref ejb-ref-description
ejb-ref-name ejb-ref-name
jndi-name jndi-name
resource-ref resource-description
res-ref-name res-ref-name
jndi-name jndi-name
resource-env-ref resource-env-description
resource-env-ref-name resource-env-ref-name
jndi-name jndi-name
class-loader container-descriptor
delegate prefer-web-inf-classes
jsp-config jsp-descriptor
checkInterval page-check-seconds
keepgenerated keepgenerated
scratchdir working-dir
* Basically We Didn’t Use These Functions
37. 37
Non-Interchangeable Point: 2. Remote Invocation
§ Different EJB remote invocation operations. Wrapped for absorbing.
§ GlassFish (5 properties, no security)
Properties prop = new Properties();
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,
“com.sun.enterprise.naming.SerialInitContextFactory”);
prop.setProperty(Context.URL_PKG_PREFXIES,
“com.sun.enterprise.naming”);
prop.setProperty(Context.STATE_FACTORIES
“com.sun.corba.ee.impl.presentation.rmi.JNDIStateFacto
ryImpl”
prop.setProperty("org.omg.CORBA.ORBInitialHost",
“theservername”);
prop.setProperty("org.omg.CORBA.ORBInitialPort",
“3700”);
Context context = new InitialContext(prop);
ARemote remote
= (ARemote) context.lookup(“java:global/…”);
§ WebLogic (4 properties, with security)
Properties prop = new Properties();
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,
“weblogic.jndi.WLInitialContextFactory”);
prop.setProperty(Context.PROVIDER_URL,
“t3://theservername:7001”);
prop.setProperty(Context.SECRITY_PRINCIPAL,
“weblogic”);
prop.setProperty(Context.SECURITY_CREDENTIALS,
“thepassword”);
Context context = new InitialContext(prop);
ARemote remote
= (ARemote) context.lookup(“java:global/…”);
38. 38
Agenda
1. Java EE with WebLogic and Exadata for Our
Financial Systems Overview
2. Starting with GlassFish,
Migrated to WebLogic
3. Hard Business Operations, with the Power of
the WebLogic and Exadata
39. n Scale-out
enabled
architecture
39
Atomic Database Scaling
Old Database New Scaling model (Exadata)
・・・
RT group Batch group
n active-active
cluster to avoid
single-point of
failure
n Non-stop
failover
n Parallel
operation for
high
performance
Stand-by
Real-Time
Batch
SAN
Active
Fibre
Channel
switch
(1~8Gb/s)
InfiniBand
switch
(40Gb/s)
Real-Time
Batch
n Batch traffic
adversely
affects online
performance
n Single point of
failure for non-stop
service
n MySQL
limitation for
update
transaction
performance
n Shared storage
limitation with
another
service's bad
performance
affects
n 5 minutes
in fail over
n Divide online /
batch servers
n High
performance
networking
n Independent
storage for 24
Hrs / 365 days
performance
guarantee
Storage
・・・
n Not scalable
architecture
×
40. 40
Single Database, Single Schema Strategy
Exadata
X3-2
Web Area
Replication
(APB)
Merged to
Single Exadata
INTRA Area
Ultra-huge financial
online transactions
with ACID props.
41. 41
Migration of Application
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
42. 42
Fast Deployment Operations
WebLogic Server
Single
WAR
for API
WebLogic
Managed Server
Real-Time
Batch
Deploy
Deploy
For Management
WebLogic Management Console
Same WAR, for
different servers.
Automatic
multi server
deploying
43. 43
Non-stop “Production Redeployment”
WebLogic Server
WebLogic New Module
Request
Dispatcher
Old Module
Request with
current session
Requests
Request with
new session
Auto versioning,
Non-stop redeployment
WebLogic
Managed
Server
WAR
Automatic multi
versioning, parallel
operation
Old modules will be un-deployed
gracefully when all
old sessions are invalidated.
44. Managing Servers by Oracle Enterprise Manager (EM)
44
Introduced
Oracle Enterprise
Manager
Easy to Find
Performance &
Status
45. 45
Our Requests for WebLogic and Exadata
§ For WebLogic,
– Appliance of latest Java EE specs ASAP!!
§ We know the WebLogic is the basement of the Oracle Fusion
Middleware, but we want the latest EE for our products.
§ Yes, we’re waiting the next WebLogic version supporting JEE7.
§ For Exadata
– Make patches easy to operate
§ Huge costs for updating quarterly update patch.
§ Complicated procedures for non-stop upgrading.
§ Hoping for the next generation updating technology.