480 likes | 611 Views
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.
E N D
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) • ArshalAmeen • 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)
Rapidly Expanding Worldwide from 2010 • E-commerce in 14 countries and regions • All services and businesses in 28 countries
5248.976 Rakuten GroupConsolidated GMS (JPY B) US $51.4B
Expanding Business Portfolio 1997 2014 Internet Services EC In Singapore EC In Austria EC in Malaysia EC In Japan EC In Thailand InternetResearch EC in France Online HotelReservation EC in UK ECin Taiwan InternetAuction Portal Site in Brazil In Spain Point Service Online Golf Reservation PerformanceMarketing In USA Online Books,DVD Store in USA In Germany Global Video streaming Global Video Streaming Real Café Service In Indonesia Pay-per-view Video Service Global eBook Energy Service Curation Service (2012) (2014) (2009) (2010) (2011) (2013) (2008) (1997) (2000) (2006) (2005) (2001) Internet Finance InternetBanking Credit Card Payment By Smartphone Rakuten LifeInsurance Online SecurityBrokerage E-money Credit Card (2012) (2010) (2003) (2009) (2005) (2013) ProfessionalBaseball MarriageConsultant Global SocialMessagingApp Others IP Telephony Phone Service (2004) (2008) (2007) (2014) (2013) Logistics In France (2012)
5 Financial Services of Rakuten Group in Japan Credit Card Bank Financial Securities E-Money Life Insurance
5 Financial Services of Rakuten Group in Japan Credit Card Bank • Big 5 Services • Each has Huge Transactions • 24/7 Non-Stop Services Financial Securities E-Money Life Insurance
Requirements for Rakuten Financial Systems Financial Systems Requires
3 Big Issues of the Rakuten Card Systems EOL Credit Card 1. Outdated ! 2. Complicated ! 3. Difficult!
PCI DSS Certification Requirements • We were supposed to be certified with PCI DSS, the card payment industry data security standard. Exadata is the solution.
1. Policies: Case of Rakuten NO ORDER Educate&Develop External Vendors In-HouseDevelopment Rare Case forFinancial Systems in Japan Internal Development First, no outsourcing to external SI vendors. (Group All) Financial businesses are also the target for the application of this policy.
2. Education: Read, Read, Read! Start from HERE4th Edition Translated Good PocketReference! Good & Only JapaneseEE 6 book For NetBeans 7with EE 6 RECOMMENDEDfor WebLogic 12c
2. Education: Online Materials Original Tutorialfor Newbies (Start here!) NetBeans Java EE docsfor Advanced Information
2. Education: Simplify to Learn Old Architecture Too difficult to learn many non-standard old technologies New Architecture Simple & Easy!
3. Architecture: Apply EE 6 Specs Business Logic(no presentations) WebPresentation(no business logics) Data Access DBs Call Call JPA Messaging Call JSF MQ JMS EJB RichClients(no business logics) Connection Call OtherServers Automatic Transaction Call RMI-IIOP JAX EMail Call MTA JTA JavaMail Java FX There's norich client
3. Architecture: Simplified L7 Balancer Front Real-time Core Reverse Proxy System B Web Site A Services (aka APIs) Gateway Web Site B Database Internal Site System C Front Batch Sub Proc Batch Exec
4. Environment: Ease of Dev. Centralized DEV DBLocal Weblogic Server instanceCode and Test with Fast-swap = X X
4. Environment: Easy Startup 2. DownloadCode from Repository 4. Refer JIRA ticketsfor tasks 1. Join a project. 3. Install JDK, IDE,App servers -> Build -> Run on the local terminal
5. Test: Full Auto Testing &Validation. 1. Auto PULL Management Server 2. Auto Build&Test 3. AutoValidate 4. ReportHourly ZERO Violations
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.
In Mid 2011, We Didn’t Have WebLogic 12c Yet • We wanted to apply Java EE 6for our new system, but not released. • We decided to use GlassFish3.1.1 until the EE 6 applied WebLogic (12c) released. Chart of the mid 2011 Java EE app servers
Impact of the Migrating within the Project GlassFish WebLogic • Non-Interchangeable Development Code • 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.
Schedule for Migrating from GlassFish to WebLogic Java EE 6 Developmentwith GlassFish Migrating toWebLogic(12c) Java EE Developmentwith WebLogic (12c) Development ProductionRelease Configurationof Java EE 6 appliedWebLogic (12c) and Enterprise Manager (12c) Finally thenew WL wasreleased atthe end of 2011 Operations ProductionRelease (Dec, 2011)
Non-Interchangeable Point: 1. Container Initialization • Single WAR including JSF and EJBs • GlassFish • EJB initialize (@Startup) • JSF (Servlet) initialize (HttpServlet#init()) • WebLogic • JSF (Servlet) initialize (HttpServlet#init()) • EJB initialize (@Startup) • Inverseinitialization pattern • Affectedfor the server initializations. • Absorbed with the wrapper classes
New Functions of Moving from GF to WL 12c * Basically We Didn’t Use These Functions
New Function: What WL 12c Knows About GF Config * Basically We Didn’t Use These Functions
Non-Interchangeable Point: 2. Remote Invocation • 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/…”); • 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.JNDIStateFactoryImpl” 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/…”); Different EJB remote invocation operations. Wrapped for absorbing.
Atomic Database Scaling Old Database New Scaling model (Exadata) • Batch traffic adversely affects online performance Real-Time Batch Real-Time Batch • Not scalable architecture • Divide online / batch servers • Scale-out enabled architecture • Single point of failure for non-stop service • MySQL limitation for update transaction performance × ・・・ ・・・ Active Stand-by RT group Batch group FibreChannel switch(1~8Gb/s) • 5 minutes in fail over InfiniBandswitch(40Gb/s) • active-active cluster to avoid single-point of failure • Non-stop failover • Parallel operation for high performance • High performance networking • Shared storage limitation with another service's bad performance affects Storage SAN • Independent storage for 24 Hrs / 365 days performance guarantee
Single Database, Single Schema Strategy Merged to Single Exadata Web Area INTRA Area Ultra-huge financialonline transactionswith ACID props. Replication(APB) Exadata X3-2
Migration of Application Old App Architecture Back-End Front-End (Apache) BEGIN ExternalServices ExternalService WebService ViewPHP ActionwithBusinessLogic BL move to back-end APIService DataService Database COMMIT Entity TransactionBoundary New App Architecture Back-End(WebLogic) Front-End(WebLogic) DMZ(Apache) ExternalServices WebLogicPlug-In BusinessLogic External BEGIN ViewFacelet BackingBean(nobusinesslogic) DAO Exadata StaticHTML,Images,CSS COMMIT Entity TransactionBoundary
Fast Deployment Operations WebLogic Management Console WebLogic Server Deploy Real-Time Deploy Automatic multi server deploying Deploy Deploy Single WARfor API Deploy Deploy Batch Deploy Operation WebLogicManaged Server Same WAR, for different servers. For Management
Non-stop “Production Redeployment” WebLogic Managed Server WebLogic Server Deploy Auto versioning,Non-stop redeployment WAR WebLogicRequestDispatcher New Module Request with new session Automatic multi versioning, parallel operation Requests Old Module Request with current session Old modules will be un-deplayed gracefully when all old sessions are invalidated.
Managing Servers by Oracle Enterprise Manager (EM) Introduced Oracle Enterprise Manager Easy to FindPerformance & Status
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 easyto operate • Huge costs for updating quarterly update patch. • Complicated procedures for non-stop upgrading. • Hoping for the next generation updating technology.
Questions ? Contact Hirofumi Iwasaki (@HirofumiIwasaki)Arshal Ameen (@AforArsh)
Finally We’ve Got It! Project members (Apr, 2013)