eSobi site Initiation
Allan Huang @ eSobi Inc.
Agenda
 Large-scale

Site Requirement
 Proposed Infrastructure
 Testing Infrastructure
 Conclusion
Large-scale Site Requirement
 Requirement



High availability
High scalability

 Considered





factors

Clustering
Load Balancing
Fail Over
Session Persistence
Clustering


What kind of clustering (Topology)





What kind of communication





Vertical scaling
 multiple server running on single machine
Horizontal scaling
 multiple machines in the cluster
One-to-Many Communication Using IP Multicast
Server Communication Using IP Sockets

What tier should clustering




Web server
Application server
Database server
Load Balancing
 Which


Round-Robin DNS






kind of strategy

cheap, easy setup, and simplicity
no server affinity support
no support for high availability

Hardware





expensive, complex setup, and single point of failure
server affinity support
support for high availability
metrics
Load Balancing
 Factors




When server selected
How server selected (Policy)
Where is load balancing accomplished
Fail Over
 Solution




Request-level fail over
 when one server goes down, all subsequent
requests should be redirected to the remaining
servers in the cluster
Session-level fail over
 when one server goes down, another server
should be able to carry on with the sessions that
were being handled by the first server
Fail Over
 Factors





How are server failures detected
When is it right time to fail over and try another
server
What about system and application state at the
failed node
Session Persistence
 Solution




Memory-to-memory replication
File system session persistence
Database session persistence
Session Persistence
 Factors







How is state communicated
How often is it communicated
How is object state materialized
Is the state persistence mechanism efficient
Consistency of replicated state
Any network constraints in replicating the session
state
Proposed Cluster Setup I
 Highly

scalable
 Fault-tolerant
 Dynamically configurable
 Automatic cluster member discovery
 In-memory session state replication
Proposed Cluster Setup II
 Pluggable/configurable

load-balancing

policies
 Group membership notification
 No loss of message transmission
 Seamless from web application to server
Proposed Infrastructure
Realistic Context Deployment
System Architecture

Business Delegate Layer

Deployment Layer
Business Tier
Business Logic Layer
(Business Object)

Integration Tier
Data Access Object Layer

Architecture Component Layer
(Framework)

Domain Object Layer
(Domain Model / Entity)

Presentation Layer
(Servlet / JSP)
Presentation Tier
Testing Infrastructure
Testing Context Deployment
Value Object Layer
(Domain Object)

Presentation Layer
(Servlet / JSP)
Delegate Layer
(Service Locator)
Deployment Layer
(EJB / Web Services)
Business Logic Layer
(Business Object)
Data Access Object Layer
(DAO Object)
JUnit / TestNG Framework

Architecture Component Layer
(Framework)

Unit Test Architecture
Conclusion
 Next

Step?

eSobi Site Initiation

Editor's Notes