Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Extensible Authentication Protocol wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Wireless security wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Server Message Block wikipedia , lookup
Dynamic Host Configuration Protocol wikipedia , lookup
Hypertext Transfer Protocol wikipedia , lookup
Real-Time Messaging Protocol wikipedia , lookup
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)