powertier ejb in high-performance applications
DESCRIPTION
PowerTier EJB in High-Performance Applications. John Killoran European Technical Services Manager Persistence Software. Agenda. The need for a new approach PowerTier architecture & benefits Implementation example Q & A. The need for a new approach. Time-to-Market Developer productivity - PowerPoint PPT PresentationTRANSCRIPT
PowerTier EJBPowerTier EJBin High-Performance Applicationsin High-Performance ApplicationsJohn KilloranJohn KilloranEuropean Technical Services ManagerEuropean Technical Services ManagerPersistence SoftwarePersistence Software
AgendaAgenda
The need for a new approachThe need for a new approach
PowerTier architecture & benefitsPowerTier architecture & benefits
Implementation exampleImplementation example
Q & AQ & A
The The need for a new approachneed for a new approach
Time-to-MarketTime-to-Market– Developer productivityDeveloper productivity– ComplexityComplexity– Skills shortageSkills shortage– CostsCosts
Performance & ScalabilityPerformance & Scalability– Good response timesGood response times– Huge scalabilityHuge scalability– Realistic hardware platformRealistic hardware platform– CostsCosts
PowerTier ProductivityPowerTier Productivity
True True Object-Oriented approachObject-Oriented approach– Manage complexity through modellingManage complexity through modelling
• CASE tool integrationsCASE tool integrations– Easier maintenanceEasier maintenance
Code GenerationCode Generation– Code generation & re-generationCode generation & re-generation– Container managed persistenceContainer managed persistence
Increased QualityIncreased Quality– Reduced testingReduced testing
Code Generation
Object Model
Server
Container
EJB Bean/C++ Object
EJB Bean/C++ Object
Object Builder
PowerTier provides much of the required application and infrastructure code automatically
Servlet Engine
JSP JSP JSPPowerPage
Builder
EJB Bean/C++ Object
EJB Bean/C++ Object
DatabaseSchema
Automating DevelopmentAutomating Development
Source: Reuters Equities benchmark
Time required to implement auction benchmark
2 weeks - 426 lines of code
PowerTier Automated Coding
Competing Approach Hand Coding
1 day - 20 lines of code
Developer EfficiencyDeveloper Efficiency
Scalability BottleneckScalability Bottleneck• Growing numbers of users Growing numbers of users • Increasing need for common data Increasing need for common data
& processes& processes• Real-time response challengeReal-time response challenge
The Need for a New ArchitectureThe Need for a New Architecture
Transactions and Transactions and DocumentsDocuments
The Need for a New ArchitectureThe Need for a New Architecture
100%100%WriteWrite
100%100%ReadRead
OLTP
Client/Server
eCommerce
PersistencePersistence
Content Cache
Web Server
Java Servlet Engine
Application Server
Real-Time ServerSynchronisation
Object Caching
The Persistence J2EE SolutionThe Persistence J2EE Solution
DynamaiDynamai
Apache
ServletMillServletMill
PowerSyncPowerSync
PowerTier TransactionalPowerTier TransactionalApplication ServerApplication Server
The Persistence J2EE SolutionThe Persistence J2EE Solution
Performance & ScalabilityPerformance & Scalability
Performance & scalability are similar - but not Performance & scalability are similar - but not the same!the same!
PerformancePerformance– That which affects the response time of your
system to requests from a single user at a time
ScalabilityScalability– The ability of your system to maintain the
same response times as the number of users increase
Data SourcesData SourcesServlet EnginesServlet Engines& App Servers& App Servers
ServletEngine
EJBServer ca
che
ServletEngine
EJBServer ca
che
ServletEngine
EJBServer ca
che
LoadBalance
CacheSync
Web ServersWeb Servers
WebServer
WebServer
WebServer
DynamaiDynamaiCachesCaches
cach
eca
che
cach
e
Database
LegacySystems
ERPApplications
Scalable N-Tier ArchitectureScalable N-Tier Architecture
Component ArchitectureComponent Architecture
PowerTier EJB ServerPowerTier EJB Server
PowerTier Servlet EnginePowerTier Servlet Engine
PSE plug-inPSE plug-in
Apache Web ServerApache Web Server
Dynamai Dynamic Web CacheDynamai Dynamic Web Cache
HTTPHTTP
HTTP or PSE native protocolHTTP or PSE native protocol
Native DB protocol or JDBCNative DB protocol or JDBC
DatabaseDatabase
• Dynamai protects against peak loads even for dynamically generated web pages.
• PSE plug-in provides load balancing and transparent failover support for SE requests
• Servlet Engine and EJB Server run in the same process to reduce communication lag
• Efficient native connections to databases
432.36
10.78
172.9
3.312.680.020
50
100
150
200
250
300
350
400
450
Avg
Wai
t per
Use
r (m
illis
ecs)
1 100 250
Number of Users
Persistence
Alternative
Source: Morgan Stanley OO-Fin Benchmark
Customer BenchmarkCustomer Benchmark
Multi-User ScalabilityMulti-User Scalability
Number of Simultaneous Requests
Access Time Per Request(ms)
Source: Morgan Stanley OO-Fin Benchmark
PowerTier is orders of magnitude more
scalable than a stateless application server
= PowerTier
Legend
= Stateless Server
0
100
200
300
400
500
100 2501
Web Transactions Web Transactions
Source: Persistence caching benchmark
Read transactions per second
58,000 TPS
308 TPS
PowerTier Shared Caching
Competing Approach using standard JDBC drivers
Sample Product FeaturesSample Product Features
Optimistic lockingOptimistic locking
Transactional multi-threadingTransactional multi-threading
Optimistic LockingOptimistic Locking
Automated feature of PowerTierAutomated feature of PowerTier
Object VersioningObject Versioning
Optimistic ControlOptimistic Control– Version number (Integer, Long)Version number (Integer, Long)– Timestamp (datetime)Timestamp (datetime)
Automated runtime behaviourAutomated runtime behaviour– Checking on commitChecking on commit– IncrementIncrement
Optimistic LockingOptimistic Locking
Server A
Server B
1 1
1
12
12
Database
TxCache
SharedCache
TxCache
ObjectCache
Transactional MultithreadingTransactional Multithreading
PowerSync
InstinetInstinet
Global Fixed Income Trading SystemGlobal Fixed Income Trading System
Business BackgroundBusiness Background
Instinet CorporationInstinet Corporation– Reuters subsidiary since 1987Reuters subsidiary since 1987– Founded 1969Founded 1969– Brokerage services in 30+ countriesBrokerage services in 30+ countries– Global customer baseGlobal customer base
StrategyStrategy– Innovative application of advanced ITInnovative application of advanced IT– Agency broker - therefore neutralAgency broker - therefore neutral
Fixed Income TradingFixed Income Trading– Fixed income securities; esp. Euro bondsFixed income securities; esp. Euro bonds– New market for InstinetNew market for Instinet
Business RequirementsBusiness Requirements
Global tradingGlobal trading
Fair playFair play– ““Level playing field”Level playing field”– Anonymous tradesAnonymous trades
Time to marketTime to market– Ready in 9 monthsReady in 9 months
Future proofFuture proof
Market shareMarket share– Dominant market share through superior technologyDominant market share through superior technology
Technical RequirementsTechnical Requirements
PerformancePerformance– ~1000 transactions/sec~1000 transactions/sec
Developer productivityDeveloper productivity– Nine month development cycleNine month development cycle
Highly distributedHighly distributed– Service 1000s clients distributed globallyService 1000s clients distributed globally
Flexible architectureFlexible architecture– Future proofingFuture proofing
AvailabilityAvailability– Very high availabilityVery high availability
SecuritySecurity– Anonymity & restricted accessAnonymity & restricted access
Core Ring
Remote Ring
DBCore Core
Core
Core
Core
Core
Core
Core
Gateway
GW
Remote Site
(Java clients)
GWApp
GW
App
Systems Architecture Systems Architecture
GWApp
App
London
DBCore Core
Core
Core
Core
Core
Core
Core
GWAppDBCore Core
Core
Core
Core
Core
Core
Core
New York
Global Systems ArchitectureGlobal Systems Architecture
GW
AppGW
App
GW
AppGW
App
GW
App
Architectural FeaturesArchitectural Features
Based on Async MessagingBased on Async Messaging– Load balancingLoad balancing
Cache SynchronisationCache Synchronisation– Certified messagingCertified messaging– Remote cachesRemote caches
Hierarchical CachesHierarchical Caches– PowerTier “OpenAgent”PowerTier “OpenAgent”– EJB Entity BeansEJB Entity Beans
• Permanent storage is transparent to the Permanent storage is transparent to the application logicapplication logic
Q & AQ & A