Designing a Middleware Server for Abstract Database Connection.

Slides:



Advertisements
Similar presentations
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Advertisements

1 Communication in Distributed Systems REKs adaptation of Tanenbaums Distributed Systems Chapter 2.
Session 6 Server-side programming - ASP. An ASP page is an HTML page interspersed with server-side code. The.ASP extension instead of.HTM denotes server-side.
Advanced Java Class Network Programming. Network Protocols Overview Levels of Abstraction –HTTP protocol: spoken by Web Servers and Web Clients –TCP/IP:
Socket Programming.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Security and Digital Recording System Students: Gadi Marcu, Tomer Alon Number:D1123 Supervisor: Erez Zilber Semester:Spring 2004 Mid Semester Presentation.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Introduction to Remote Method Invocation (RMI)
Scuola Superiore Sant’Anna Project Assignments Operating Systems.
Chapter 11 – Database-Oriented Middleware & EAI Database access is the key element to EAI, especially data-level EAI. Database oriented middleware is not.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
The Architecture of Transaction Processing Systems
Chapter 9: The Client/Server Database Environment
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
Review for Exam 4 School of Business Eastern Illinois University © Abdou Illia, Spring 2006.
Distributed Systems: Client/Server Computing
1 © Prentice Hall, 2002 The Client/Server Database Environment.
Lecture The Client/Server Database Environment
SE-2840 Dr. Mark L. Hornick1 Java Servlet-based web apps Servlet Architecture.
The Client/Server Database Environment
8/19/20151 Securing a Database Based on notes by Fei Li and Hong Li.
ODBC Open DataBase Connectivity a standard database access method developed by Microsoft to access data from any application regardless of which database.
Getting connected.  Java application calls the JDBC library.  JDBC loads a driver which talks to the database.  We can change database engines without.
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Lecture On Database Analysis and Design By- Jesmin Akhter Lecturer, IIT, Jahangirnagar University.
Chapter 4: Core Web Technologies
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 12 Communicating over.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Implementing ISA Server Publishing. Introduction What Are Web Publishing Rules? ISA Server uses Web publishing rules to make Web sites on protected networks.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
CYBORG Domain Independent Distributed Database Retrieval System Alok Khemka Kapil Assudani Kedar Fondekar Rahul Nabar.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
Hands-On Microsoft Windows Server Implementing Microsoft Internet Information Services Microsoft Internet Information Services (IIS) –Software included.
© Lethbridge/Laganière 2005 Chap. 3: Basing Development on Reusable Technology The Client-Server Architecture A distributed system is a system in.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
GreenBus Extensions for System-On-Chip Exploration.
Java and Databases. JDBC Architecture Java Application JDBC API Data Base Drivers AccessSQL Server DB2InformixMySQLSybase.
UNIT III - JDBC JDBC Overview – JDBC implementation – Connection class – Statements - Catching Database Results, handling database Queries. Networking–
Department of Computing, School of Electrical Engineering and Computer Sciences, NUST - Islamabad KTH Applied Information Security Lab Secure Sharding.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
What is Java? Object Oriented Programming Language Sun Microsystems “Write Once, Run Everywhere” Bytecode and Virtual Machine Java Platform (Java VM and.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
ATLAS Database Access Library Local Area LCG3D Meeting Fermilab, Batavia, USA October 21, 2004 Alexandre Vaniachine (ANL)
FlowLevel Client, server & elements monitoring and controlling system Message Include End Dial Start.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
1 K. Salah Application Layer Module K. Salah Network layer duties.
1 Example security systems n Kerberos n Secure shell.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Zac Fenigshtien  Introduction: 3 Tier Architecture  SQL Injection ◦ Parameter Sandboxing ◦ Blacklisting, Whitelisting.
AMSA TO 4 Advanced Technology for Sensor Clouds 09 May 2012 Anabas Inc. Indiana University.
Last Class: Introduction
Network Infrastructure Services Supporting WAP Clients
Distributed Computing
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Web Development Web Servers.
The Client/Server Database Environment
The Client/Server Database Environment
CHAPTER 3 Architectures for Distributed Systems
Introduction to J2EE Architecture
Server Side Wrap Operations
Chapter 40 Remote Method Invocation
Chapter 46 Remote Method Invocation
An Introduction to Internetworking
Information Retrieval and Web Design
Message Passing Systems Version 2
Presentation transcript:

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. 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 client- server 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

 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  Adapter Manager - Holds all available adapter types for a server.

Server Modules Design Server Thread Adapter Manager Server TCP Adapter Encryption/Decryption Stream Ask For Right Adapter Spawn a Thread Encrypt/Decrypt Connection Streams

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 Connection Manager Broker Connection Pool Pool Cleaner Thread Connection Manager Connection Pool Pooled Connection Vendor Specific Database Clean and refresh all pools Returns connectio n Reusable Database Connection Manages all pools

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 DB Server DB Adapter Server Thread TCP Adapter Encryption/Decryption Stream To other Server To TCP Client Can be more than one type Loads appropriate db driver, finds available pool connection Adapter Manager TCP Properties TCP Connection Properties Finds right adapter DB Properties

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 Server Client

Client – Database Redirection DBAbstract Server 1 DBAbstract Server 2 DBAbstract Server n Database Server Client

THE END (finally)