Presentation (powerpoint) - The DBAbstract Server Project
Download
Report
Transcript Presentation (powerpoint) - The DBAbstract Server Project
Designing a
Middleware Server
for Abstract Database
Connection
Key Concepts
Abstraction of the database connection
layer.
Encryption of client – server
communication.
Compression of data sent from server to
client.
Hiding the underlying implementation
from the client by providing an easy to
use interface.
Remote controlling the server.
Modifying Server parameters without the
need to stop it.
Design Stages
Designing the Server Side.
Designing the Client Side.
Developing a common communication
protocol.
Designing the Server Side
Designing easily replaceable modules and increasing
reusability.
Providing flexible server configuration.
Finding the Right Adapter to serve the client.
Providing telnet based remote control.
Using a profiler to increase efficiency.
Main Server Modules
The Server Adapter
The Server Worker Thread
The Adapters Manager
The Connection Pool
Encryption Streams
Server Modules Functionality
The Server TCP Adapter
- Provide an open server socket for connecting clients
- Provide 2-way decryption / encryption of
clientserver connection
- Spawn a Server Thread for every
accepted connection
The Server Worker Thread
- Check if loop conditions are encountered
- Find the Right Adapter to serve the specific Client
- Interrogate the found Adapter with Client’s queries
- Compress and send query results back to client
Adapter Manager
- Holds all available adapter types for a server.
TCP Adapter
- Is used by a DBAbstract Server to connect to another
server of the same kind in order to solve client’s
request.
- Can use different Encryption keys/algorithms for
incoming/outgoing connection streams
- Provides a permanent connection through which
queries can be issued and results can be obtained
DB Adapter
- Resolves a client request to a specific database
- Loads a specific driver for the permanent database
connection
- Provides a pooled connection to the client
- Solving client’s SQL queries from the database
Server Modules Design
Adapter Manager
Server Thread
Ask For Right
Adapter
Spawn a Thread
Encrypt/Decrypt
Connection Streams
Server TCP Adapter
Encryption/Decryption Stream
Connection Pool Modules
Connection Manager Broker
-Provides means to obtain a connection from the pool.
-Has a worker thread which keeps pooled connections
alive and closes unused connections to minimum from
time to time.
Connection Manager
-Manages a list of all available pools.
-Provides a way to globally address all connection
pools.
Connection Pool
-Manages a list of pooled connections.
Pooled Connection
-A reusable connection to the database
Designing a Connection Pool
Returns
connectio
n
Pool Cleaner
Thread
Connection Manager Broker
Manages
all pools
Clean and
refresh all
pools
Connection Manager
Connection Pool
Reusable
Database
Connection
Connection Pool
Pooled Connection
Vendor Specific Database
Pooled Connection
Encryption
Stream Encryption Key
-An interface providing a key and functions designed
for fast encryption / decryption of a byte stream.
Decrypted Input Stream
-A filter input stream designed to provide decryption to
an underlying byte input stream
Encrypted Output Stream
-A filter output stream designed to provide encryption
to an underlying byte output stream
Database
Loads appropriate
db driver, finds
available pool
connection
DB Server
Can be more than
one type
DB Adapter
To other
Server
TCP Adapter
DB Properties
Finds right adapter
Adapter Manager
TCP Properties
Server Thread
TCP Connection
Properties
Encryption/Decryption Stream
To TCP
Client
Designing the Client Side
Using a Client Adapter to provide access to the DBAbstract
Server.
Providing means to generate an encryption key for the
connection automatically.
Using wrapper classes to hide the underlying connection from
the client by implementing the java jdbc interfaces.
Providing deployment for the Client jar Driver.
Connect to
Server
Encryption/Decryption Stream
TCPD Adapter
JDBC Wrapper classes
Can be used
by Clients
Distributed Architecture Criteria
Allowing server to server connections to find the
needed database.
Allowing load balancing by providing a connection
limit to one server and redirecting clients when
limit exceeded.
Allowing redirection from client to server closest
to data source.
Client – Database Indirect Connection
DBAbstract
Server 1
DBAbstract
Server 2
DBAbstract
Server n
Database
Client
Server
Client – Database Redirection
DBAbstract
Server 1
DBAbstract
Server 2
DBAbstract
Server n
Database
Client
Server
THE END
(finally)