Download Java One 2015

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Java EE Proves Effective for
Mission Critical e-Payment Systems
JavaOne 2015
CASHLESS 3.0 Payment Systems & Java EE
San Francisco, October 26, 2015
TM
less
™
About Me
Andrea Folli
 CTO of the Cashless Business Unit at TAS Group,
an Italian SW Company providing advanced e-Payment solutions
for a global market.
 15 years of experience in building core business and
mission-critical enterprise applications for some of the largest
financial organizations in Italy and EU.
 Leading the software development of CASHLESS 3.0,
the new e-Payment suite of TAS Group built with Agile MDD
methodology on top of the Java EE 6.0/7.0 Platform.
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
2
less
™
About TAS Group
TAS Group is the
strategic partner
Experience
and Innovation
for business innovation in Payment
 Professional Services
 Software
Systems, Applications
Cards, Capital Markets and
ERP processes.
 Housing & Hosting
 Software
as a Service
 Project Implementation
 Other IT Services
 Over 30 years
experience
 Our mission is to innovate and
optimize mission-critical applications
of financial operators, creating value
for businesses through long-term
relationships with our customers
Cashless
Solutions
Payment
Networks
Cashless 3.0 Payment Systems & Java
Capital
Markets
& Treasury
Credit
Management
© TAS Group 2015
 More than 400
experts
 Customers in over
20 countries
eGov
& B4B
ERP
Hosting
& Housing
3
Business Unit Cashless Solution
Over 100 million cards
managed world-wide
Over 65% of Acquiring
systems and more than 50%
of Issuing systems in Italy
are managed by TAS solutions
15 years of recognized
leadership in EMV migration
across Europe
Value Proposition
 Issuing
Transaction Processing
Merchants & Acquiring
 EMV/Key Management
 Fraud Management
 Mobile & e-payment gateways
Cashless 3.0 Payment Systems & Java
Customers





Issuers
Processors
Acquirers
New PSPs
Retailers/Merchants
© TAS Group 2015
Assets and Competences
 Core competence in every
aspect of the Card
Business Value Chain
 Accreditations and Product
Certifications acquired
domestically and
Internationally
Cashless Solutions
4
Cashless 3.0: Strategic Guidelines
At the beginning of 2013, TAS decided to invest in a new,
innovative suite of e-Payment solutions for the international market.
 Main project goals:
 Manage the lifecycle of all kinds of e-Payment programs and devices, physical
(Cards) or virtual (e-Wallet), world wide
 Reduce the time to market and the TCO adopting a new technology platform
with a new development and deployment methodology
 Combine a strong and widely recognized business expertise with a new,
Cloud & SaaS ready, IT architecture
 Standardize deployment, distribution and installation for all customers and
environments
 In order to:
 Expand the company’s business footprint on the international market
 Maintain existing customers by replacing the legacy solutions with a new
generation of services based on best-in-class open software and technologies
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
5
Cashless 3.0: Basic Requirements
Application framework had to comply with:
High Portability: Wide range of supported platforms at 0 cost
(OS, AS, DBMS, Browser)
High Scalability: Scaling out and Scaling up, transparently on demand
High Flexibility: Convention over Configuration, Code by exception
High Pluggability: Add-On & Customizations decoupled from the core standard
product and dynamically injected on demand
High Interoperability: Quick and cheap integration in different scenarios with a variety
of systems and clients (also Legacy Systems: MF/COBOL)
High Resilience: Dynamic and real-time load-adaptive architecture
High Performance: Real-time response to a huge number of concurrent requests
(e.g: authorizing of 1K+ payment tx per sec)
Cashless 3.0 Payment Systems & Java EE
© TAS Group 2015
6
Cashless 3.0: Advanced Requirements
Architecture had to be:
Natively designed As a composable set of self-consistent, interoperable business
for SOA services provided through well-defined and stable interfaces
Built on “Best of Class” But compliant with the most diffused IT Technologies and
OSS Technology Industry Standards (Oracle, Red-Hat, IBM, IBM z/OS)
I18n/L10n Full Support for MultiLocale, MultiLanguage, MultiCurrency
Cloud & SaaS Ready Full Support MultiCompany and MultiTenancy
Compliance With the OWASP and PCI-PA-DSS security standards
Vertical Procedures
Cashless 3.0 Payment Systems & Java EE
Cloud Services
© TAS Group 2015
7
Cashless 3.0: The Organizational Perspective
New application architecture should drive a new culture of innovation
based on remote team working and agile programming.
A new way of thinking, designing and programming standard, reusable, and
fully portable SW components
Guarantee the business continuity on existing installations by elaborating
migration strategies and patterns to make the new value proposition attractive
for the established customers
Initial efforts devoted to internal training, knowledge exchanges and sharing
Key steps:

Collect and actualize the existing know-how

Apply the resulting business logics to the new architecture

Define application components and business services

Evaluate effort, cost estimation, task definition and planning

Staff up and skill building
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
8
Cashless 3.0: The Existing Assets
Legacy business components written in COBOL
Some Java Web Applications for data setup and management
(JSF 1.2, Servlet 2.3, JSP 2.1, Hibernate, Spring, GWT, JDBC ...)
Some vertical J2EE Applications (EJB 2.X, Hibernate, ...)
e.g. POS Terminal Management, ATM Terminal Management, Key Management System
Java SE 1.4/1.5, J2EE 1.4
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
9
Cashless 3.0: The whole pricture
Cashless 3.0: The Main
Picture
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
10
Cashless 3.0: CMS organization model
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
11
Cashless 3.0: CMS production model
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
12
Cashless 3.0: CMS sales model
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
13
Cashless 3.0: The Big Challenge
At the end of the day:
 A big challenge with many risk factors
 But also a sensational opportunity for a “brave heart” SW Engineer.
OK ... more or less
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
14
Cashless 3.0: The first crucial decision
The first and most important decision:
Adoption of the Java EE 6.0 Platform as the only
development platform for all components.
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
15
Cashless 3.0: Decision Factors
Why the Java EE 6.0 Platform?

To replace the existing “puzzle” with a unique set of standard
technologies, vendor-independent, platform neutral

To avoid direct dependencies on external frameworks enforcing the full
compliance with the standard API specifications

To use the EJB3 Technology to encapsulate the business logic of the
business services

To use the JTA Technology to manage in a transparent and safe way the
transaction management and concurrency

To use JPA Technology to abstract the persistent layer from the
underlying DBMS
In a nutshell…
Java EE 6.0 natively provided us all the features we needed.
Plus, Java’s roadmap gave us strong guarantees on future
development.
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
16
Cashless 3.0: A quick look at the history of Java EE
 At the beginning of 2013 the available releases of Java
Platform Enterprise Edition were:
Release
Release Date
JSR
J2EE 1.4
November 2003
JSR 151
Java EE 5.0
May 2006
JSR 244
Java EE 6.0
December 2009
JSR 316
 Last stable release was Java EE 6.0, RI:
Oracle-Sun Open Source Glassfish AS 3.1.2
 The new release already planned:
Java EE 7.0 [JSR 342]*
January 2010
*actual release date: May 2013
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
17
Cashless 3.0: Java EE 5.0 was groundbreaking
 The transition from J2EE 1.4 to JEE 5.0 was accompanied by a deep
architecture refactoring providing
a simplified
programming model:
No more:
Java “Evil Edition”
 EJB as @Annotated POJO
Instead: Java Enterprise Edition
 ORM Lightweight Persistence Architecture
 Dependency Injection for EJB
 The need for refactoring came from the community and the
marketplace:
 EJBs 2.x were too complex while emerging frameworks like Spring
provided simpler and more flexible solutions based on the new patterns:
IOC, DI, AOP
 Entity Beans were very frequently replaced by lightweight ORM
frameworks like Hibernate, MyBATIS, EclipseLink
 Java EE 5.0 integrated most of the new features introduced by the
emerging frameworks into:
 EJB 3.0 - JSR 220
 JPA 1.0 - JSR 220
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
18
Cashless 3.0: Java EE 6.0 was strengthening
Java EE 6.0 reinforced and improved new technologies introduced
by Java EE 5.0 while pruning some obsolete or useless API.
Main improvements:

Web: Servlet 3.0, Java Server Faces 2.0
 @WebServlet, @ServletFilter, @WebServletContextListener
 Distributed configuration: web-fragment.xml
 Programmatic creation of Servlets, Filters, Listeners

Web Services: JAX-WS 2.2, JAX-RS 1.1

Enterprise: EJB 3.1, JPA 2.0, CDI 1.0







Portable JNDI Names
No-interface View SLSB
Singleton Beans, Concurrency Management (@Lock, @AccessTimeout)
@Asynchronous SLSB methods and Future Interface
@Schedule, @Schedules
Improved JPQL features, Criteria API
@Inject
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
19
Cashless 3.0: Building the Ecosystem
Analysis & Modeling: Adoption of Visual Paradigm
a lightweight and flexible UML Modeling Tool, supporting the
Agile Model Driven Development while keeping separate the
two phases of Modeling and Programming
Development: Adoption of Eclipse Java EE IDE
Building & Distribution: Adoption of Maven for project management, building,
deployment, assembly and packaging
Versioning: Adoption of SVN
Ticketing & Milestones: Adoption of Trac
Functional & Adoption of SoapUI for API functional and performance testing
Performance Testing:
Quality Assurance: Adoption of SonarQube for code analysis
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
20
Cashless 3.0: Building the Application Architecture
 Lean and clean architecture based on well defined
and decoupled layers
 Small & self-contained projects ensuring a clear
separation of roles and responsibilities
 Common sets of
programming patterns
naming conventions
templates
 Strong focus on reuse and portability
 No SFSB, only SLSB and Singleton Beans
 Parallel processing through @Asynchronous
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
21
Cashless 3.0: Building the Application Architecture
 Auto-incremented ID as PK on all JPA Entities
 Version on all JPA Entities for optimistic locking
 Natural candidate key on all JPA Entites to redefine
equals() and hashCode()
 Lazy Fetching for all associations
 No embedded SQL/JPQL inside the code but re-usable
JPQL and Native static queries
 Use of Criteria API for dynamic queries, just in case
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
22
Cashless 3.0: Building the Application Architecture
 Generic, reusable DAO to abstract application code from
the persistence layer and transaction management
(CMT/BMT/Local TX)
 Separated Persistence Unit for TP and Batch processing
 JTA-CMT for OTP
 JTA-BMT or Local Transactions for Batch Processing
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
23
Cashless 3.0: A look inside
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
24
Cashless 3.0: Agile MDD
 Application of the basic principles of OO for Business Analysis:




Forward Engineering
Encapsulation;
Loose coupling;
But flexible and not invasive
High cohesion;
Clear separation of role and responsabilities.
 Creation of the application model by UML/SOAML:




Use Case Modeling;
Component Modeling;
Process and Service Modeling;
Data Modeling.
 Generation (full/incremental) of DDL and Entities for persistence
 Development of the business
Reverseservices
Engineering
(interface, control logic, business logic)
 Functional & Performance Test by SoapUI
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
25
Cashless 3.0: Programming Patterns
Web Tier (JSF):
 Standard templates
 Composite components
Business Tier (EJB, JTA, JPA):
 Service Locator
 Session Facade
 Message Facade
 Business Delegation
 On Demand Caching
 Abstract Factory
 Singleton
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
26
Cashless 3.0: Smart programming
Eclipse IDE is the only workbench for developers:
 Transparently integrated with Maven Repo by M2Eclipse
 Transparently integrated with SVN by Subclipse
 Transparently integrated with Trac and MyLyn
 Hot deployment on JBoss for local test and debugging
 Real-time code analysis by SonarQube, FindBugs, Lapse
ITALY-BOLOGNA
ITALY-ROME
ITALY-MILAN
SWITZERLAND
SPAIN-CORDOBA
Multi Country Software Factory
CENTRAL TEST ENVIRONMENT
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
CENTRAL TEST ENVIRONMENT
27
Cashless 3.0: Smart building
Smart and Transparent Building for different targets
Selection of different combinations of AS and DBMS
through the use of maven profiles:
mvn -P jboss, postgresql
mvn -P jboss, mysql
mvn -P websphere, db2
mvn -P weblogic, oracle
It affects JPA the specific configuration for DBMS, the
tune-up of transaction management/resources and the
specific deployment descriptors for the AS.
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
28
Cashless 3.0: Switchable Features and Setup
Activation of switchable features
Enable/Disable multilanguage support
mvn (-P ML | -P noML)
DB Multitenancy setup and deliverables building through
dynamic properties:
mvn –D owner=<client_code>
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
29
Cashless 3.0: Pluggable Custom Components
Abstraction from specific client needs and custom
implementations through pluggable delegates
Web Services
GUIs
Core Business
Logic
Business
Business
delegates
Business
delegates
Delegates
Client
Client
technologies
Client
technologies
Technologies
Achieved through standard CDI specializations,
stereotypes and alternatives:
@Specializes
public class Client1AuthorizationDelegate extends AuthorizationDelegate { … }
@Client1
public class SolutionADelegate implements SolutionDelegate { … }
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
30
Cashless 3.0: Target Driven Packaging
Dynamically building of final deliverables
 Ad-hoc package assembly through maven profiles and
modular dependency
 Libraries, delegates and custom implementations are
automatically included in the final deliverables
specific to the client
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
31
Cashless 3.0: Switchable Features and Setup
The Java EE 7.0 API we are working on
Rearrangement of batch processes accordingly to the Batch
all folks!
Applications for the JavaThat’s
Platform
(JSR-352) and “chunkoriented” programming
Usage of the Concurrency Utilities for the Java EE (JSR-236)
for improved asynchronous parallel processing
Usage of the improved CDI 1.2 API
Usage of HTML5 and WebSocket
Cashless 3.0 Payment Systems & Java
© TAS Group 2015
32
TM
Andrea Folli
(646) 351-0969
+39 348 0990260
[email protected]
TAS Group
TAS USA
www.tasgroup.eu
www.tasgroup.us.com
[email protected]
[email protected]
THANK YOU
Cashless 3.0: Java EE proves effective for
mission critical e-Payment Systems