CON2820-Case-Study-of-Financial-Web-System-Deve..

Download Report

Transcript CON2820-Case-Study-of-Financial-Web-System-Deve..

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.
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)
2
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
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
Global Rakuten Group
5
Rapidly Expanding Worldwide from 2010
• E-commerce in 14 countries and regions
• All services and businesses in 28 countries
5248.976
Rakuten Group
Consolidated GMS
(JPY B)
US $51.4B
4146.244
3413.582
2746.821
1861.268
1474.570
1154.786
832.354
153.004
23.407 52.319 79.134
2000
2001
2002
2003
329.106
2004
478.765
2005
2006
2007
2008
2009
2010
2011
2012
2013
Expanding Business Portfolio
1997
Internet Services
EC
In Japan
Portal Site
Online Golf
Reservation
Internet
Research
Online Hotel
Reservation
Internet
Auction
EC
in Taiwan
EC
In Thailand
Performance
Marketing
In USA
Online Books,
DVD Store
EC in
France
in USA
(2000)
Internet Finance
(2005)
(2001)
Online Security
Brokerage
Professional
Baseball
(2004)
(2006)
(2008)
Credit Card
(2003)
Others
EC in
Malaysia
EC
In Austria
EC
In Singapore
in Brazil
In Spain
Point Service
EC in
UK
In Germany
Global Video
streaming
Global Video
Streaming
Real Café Service
Global eBook
Energy Service
Curation Service
(2012)
(2013)
Credit Card Payment
By Smartphone
Rakuten Life
Insurance
(2012)
(2013)
In Indonesia
Pay-per-view
Video Service
(1997)
2014
(2009)
Internet
Banking
(2009)
(2005)
IP Telephony
(2007)
Marriage
Consultant
(2008)
(2010)
E-money
(2010)
(2011)
Phone Service
(2013)
(2014)
Global Social
Messaging App
(2014)
8
5 Financial Services of Rakuten Group in Japan
Credit Card
Bank
E-Money
Financial
Securities
Life
Insurance
9
5 Financial Services of Rakuten Group in Japan
Credit Card
Bank
 Big 5 Services
 Each has Huge Transactions
Financial
E-Money
 24/7 Non-Stop Services
Securities
Life
Insurance
10
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
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
Transparency
Flexibility
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
Productivity
Reliability
Scalability
Support
Price
Operation
Development
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
WebLogic
Server 12c
15
Why We Chose the Oracle Exadata?
Product
Oracle
Exadata
Productivity
Data
reliability
Scalability
HA
PCI DSS
Operation
Excellent
Excellent
Excellent
Excellent
Excellent
Excellent
Product X
-
Not Good
-
-
-
Not Good
Product Y
Excellent
Excellent
-
Excellent
Not Good
Not Good
16
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
17
5 Big Issues to Apply New JEE Architecture
18
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
&
Develop
NO ORDER
External Vendors
In-House
Development
Rare Case for
Financial Systems in Japan
19
2. Education: Read, Read, Read!
Start from HERE
4th Edition
Good & Only
Japanese
EE 6 book
For NetBeans 7
with EE 6
Good Pocket
Reference!
RECOMMENDED
for WebLogic 12c
20
2. Education: Online Materials
Original Tutorial
for Newbies (Start here!)
NetBeans Java EE docs
for Advanced Information
21
2. Education: Simplify to Learn
Old Architecture
Too difficult to learn many
non-standard old technologies
New Architecture
Simple & Easy!
22
3. Architecture: Apply EE 6 Specs
Business Logic
(no presentations)
Web Presentation
(no business logics)
Data Access
JPA
Call
Messaging
JSF
EJB
Rich Clients
(no business logics)
JMS
Connection
Call
Java FX
There's no
Automatic
Transaction
JTA
RMI-IIOP
JAX
EMail
JavaMail
Call
DBs
Call
MQ
Call
Other
Servers
Call
MTA
rich client
23
3. Architecture: Simplified
Front Real-time
Core
Web Site B
Internal Site
Batch Exec
Services (aka APIs)
Reverse Proxy
L7 Balancer
System B
Web Site A
Gateway
Database
System C
Sub Proc
Front Batch
24
4. Environment: Ease of Dev.
Centralized DEV DB
Local Weblogic Server instance
Code and Test with Fast-swap
=
X
X
25
4. Environment: Easy Startup
2. Download
Code from
Repository
1. Join a
project.
4. Refer JIRA tickets
for tasks
3. Install JDK, IDE,
App servers -> Build -> Run on the local terminal
26
5. Test: Full Auto Testing &Validation.
1. Auto PULL
4. Report
Hourly
ZERO Violations
3. Auto
Validate
2. Auto
Build
& Test
Management Server
27
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.
28
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
29
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.
30
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.
31
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
32
Schedule for Migrating from GlassFish to WebLogic
Development
Java EE 6
Development
with GlassFish
Operations
Finally the
new WL was
released at
the end of 2011
Migrating to
WebLogic
(12c)
Java EE Development
with WebLogic (12c)
Configuration of Java EE 6 applied
WebLogic (12c) and
Enterprise Manager (12c)
Production
Release
Production
Release
(Dec, 2011)
33
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
34
New Functions of Moving from GF to WL 12c
* Basically We Didn’t Use These Functions
35
New Function: What WL 12c Knows About GF Config
Glassfish
context-root
security-role-mapping
role-name
principle-name
group-name
session-config
session-manager:manager-properties:reapIntervalSeconds
Weblogic Support
context-root
security-role-assignment
role-name
principle-name
principle-name
session-descriptor
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
ejb-ref
ejb-ref-name
jndi-name
resource-ref
res-ref-name
jndi-name
resource-env-ref
resource-env-ref-name
jndi-name
class-loader
delegate
jsp-config
checkInterval
keepgenerated
scratchdir
timeout-secs
ejb-ref-description
ejb-ref-name
jndi-name
resource-description
res-ref-name
jndi-name
resource-env-description
resource-env-ref-name
jndi-name
container-descriptor
prefer-web-inf-classes
jsp-descriptor
page-check-seconds
keepgenerated
working-dir
* Basically We Didn’t Use These Functions
36
Non-Interchangeable Point: 2. Remote Invocation
 Different EJB remote invocation operations. Wrapped for absorbing.
 GlassFish (5 properties, no security)
 WebLogic (4 properties, with 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/…”);
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/…”);
37
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
38
Atomic Database Scaling
Old Database
Fibre
Channel
switch
(1~8Gb/s)
SAN
×
Stand-by
 5 minutes
in fail over
 Divide online /
batch servers
Batch
Active
 Not scalable
architecture
Real-Time
 Shared storage
limitation with
another
service's bad
performance
affects
Batch
 Single point of
failure for nonstop service
 MySQL
limitation for
update
transaction
performance
Real-Time
 Batch traffic
adversely
affects online
performance
New Scaling model (Exadata)
 Scale-out
enabled
architecture
・・・
RT group
 active-active
cluster to avoid
single-point of
failure
 Non-stop
failover
 Parallel
operation for
high
performance
・・・
Batch group
InfiniBand
switch
(40Gb/s)
Storage
 High
performance
networking
 Independent
storage for 24
Hrs / 365 days
performance
guarantee
39
Single Database, Single Schema Strategy
Merged to
Single Exadata
INTRA Area
Web Area
Ultra-huge financial
online
transactions
Replication
(APB)ACID props.
with
Exadata
X3-2
40
Migration of Application
Old App Architecture
Front-End (Apache)
View
PHP
Back-End
BEGIN
Action
with
Business
Logic
COMMIT
Web
Service
External
Service
API
Service
Data
Service
External
Services
Database
Transaction
Boundary
Entity
New App Architecture
DMZ
(Apache)
WebLogic
Plug-In
Static
HTML,
Images,
CSS
Front-End
(WebLogic)
View
Facelet
Backing
Bean
(no
business
logic)
Back-End
(WebLogic)
BEGIN
Business
Logic
External
External
Services
DAO
COMMIT
Entity
Transaction
Boundary
Exadata
41
Fast Deployment Operations
Real-Time
WebLogic Management Console
WebLogic Server
Automatic
multi server
deploying
Single
WAR
for API
Batch
WebLogic
Managed Server
Same WAR, for
different servers.
For Management
42
Non-stop “Production Redeployment”
WebLogic
Managed
Server
WebLogic Server
Auto versioning,
Non-stop redeployment
WebLogic
Request
Dispatcher
WAR
New Module
Requests
Old Module
Automatic multi
versioning, parallel
operation
Old modules will be undeplayed gracefully when all
old sessions are invalidated.
43
Managing Servers by Oracle Enterprise Manager (EM)
Introduced
Oracle Enterprise
Manager
Easy to Find
Performance &
Status
44
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.
45
Contact
Hirofumi Iwasaki (@HirofumiIwasaki)
Arshal Ameen (@AforArsh)
46
Finally We’ve Got It!
Project members (Apr, 2013)
47
48