390 likes | 465 Views
Net8 Architecture. Overview of Stack Communications (1/8). Stack communications can be explained by referencing the Open Systems Interconnection (OSI) model.
E N D
Overview of Stack Communications (1/8) • Stack communications can be explained by referencing the Open Systems Interconnection (OSI) model. • In the OSI model, communication between separate computers occurs in a stack-like fashion with information passing from one node to the other through several layers of code.
Overview of Stack Communications (2/8) • Client application • The OSI layer closest to the user, and as such is dependent on the functionality requested by the user. • For example, in a database environment, a Forms application may attempt to initiate communication in order to access data from a server.
Overview of Stack Communications (3/8) • Presentation • Ensures that data is represented in a format that the application and session layers can accommodate. • This includes keeping track of syntax and semantics of the data transferred between the client and server. • If necessary, the presentation layer translates between multiple data representation formats by using a common data format.
Overview of Stack Communications (4/8) • Session • Establishes, manages, and terminates network sessions between the client and server. • This is a virtual pipe that carries data requests and responses. • The session layer manages whether the data traffic can go in both directions at the same time (referred to as asynchronous), or in only one direction at a time (referred to as synchronous).
Overview of Stack Communications (5/8) • Transport • Implements the data transport ensuring that the data is transported reliably.
Overview of Stack Communications (6/8) • Network • Ensures that the data transport is routed through optimal paths through a series of interconnected subnetworks.
Overview of Stack Communications (7/8) • Link • Provides reliable transit of data across a physical link.
Overview of Stack Communications (8/8) • Physical • Defines the electrical, mechanical, and procedural specifications for activating, maintaining and deactivating the physical link between client and server.
Stack Communications in a Typical Net8 Client/Server Environment
Net8 Client-Side Interaction (1/10) • In an Oracle client-server transaction, information passes through the following layers: • Client Application • Oracle Call Interface (OCI) • Two-Task Common (TTC) • Net8 • Network-Specific Protocols
Net8 Client-Side Interaction (2/10) • Client application • The application identifies database operations to send to the server and passes them through to the Oracle Call Interface (OCI).
Net8 Client-Side Interaction (3/10) • Oracle Call Interface (OCI) • Oracle Call Interface (OCI) code contains all the information required to initiate a SQL dialog between the client and the server. It defines calls to the server to: • Parse SQL statements for syntax validation • Open a cursor for the SQL statement • Bind client application variables into the server shared memory • Describe the contents of the fields being returned based on the values in the server's data dictionary • Execute SQL statements within the cursor memory space • Fetch one or more rows of data into the client application • Close the cursor
Net8 Client-Side Interaction (4/10) • Two-Task Common (TTC) • Two-Task Common (TTC) is Oracle's implementation of the presentation layer. • TTC provides character set and data type conversion between different character sets or formats on the client and server. • This layer is optimized on a per connection basis to perform conversion only when required.
Net8 Client-Side Interaction (5/10) • Net8 (1/) • Net8 provides all the session and transport layer functionality in an Oracle communication stack. • It is responsible for establishing and maintaining the connection between the client application and server, as well as exchanging messages between them. • Net8 is also responsible for mapping session functionality into industry-standard protocols.
Net8 Client-Side Interaction (6/10) • Net8 has three component layers: • Network Interface (NI) • Network Session (NS) • Oracle Protocols
Net8 Client-Side Interaction (7/10) • Network Interface (NI) • This layer provides a generic interface for Oracle clients, servers, or external processes to access Net8 functions. • NI uses Network Naming (NN) to resolve names to connect descriptors.
Net8 Client-Side Interaction (8/10) • Network Session (NS) • This layer receives requests from NI, and settles all generic machine-level connectivity issues, such as: • the location of the server or destination (open, close functions) • whether one or more protocols will be involved in the connection (open, close functions) • how to handle interrupts between client and server based on the capabilities of each (send, receive functions). • NS uses Network Route (NR) to route the network session to the destination and Network Authentication (NA) to negotiate any authentication requirements with the destination.
Net8 Client-Side Interaction (9/10) • Oracle protocols • Oracle protocols are Oracle's implementation of the transport layer. • Each protocol is responsible for mapping the equivalent functions between NS and a specific protocol. Oracle protocols include: • TCP/IP • TCP/IP with SSL • SPX • Named Pipes • LU6.2
Net8 Client-Side Interaction (10/10) • Network-Specific Protocols • All Oracle software in the client-server connection process requires an existing network protocol stack to make the machine-level connection between the two machines for the transport layer. • The network protocol is responsible only for getting the data from the client machine to the server machine, at which point the data is passed to the server-side Oracle protocol.
Server-Side Interaction (1/3) • Two components above the network session layer are different from those on the client side: • Oracle Program Interface (OPI) • Oracle Server
Server-Side Interaction (2/3) • Oracle Program Interface (OPI) • Oracle Program Interface (OPI) performs a complementary function to that of the OCI. • It is responsible for responding to each of the possible messages sent by the OCI. • For example, an OCI request to fetch 25 rows would have an OPI response to return the 25 rows once they have been fetched.
Server-Side Interaction (3/3) • Oracle Server • The Oracle Server side of the connection is responsible for receiving requests from the client OCI code and resolving SQL statements on behalf of the client application. • Once received, a request is processed and the resulting data is passed to the OPI for responses to be formatted and returned to the client application.
Server-to-Server Interaction • When two servers communicate to complete a distributed transaction, the server acts as a client application. • The server has its own version of OCI, called the Network Program Interface (NPI).
Stack Communication for JDBC Clients (1/6) • Oracle offers two JDBC drivers. • JDBC/OCI • Oracle's Level 2 JDBC driver. • It is targeted to client-server Java application programmers and Java-based middle-tier developers. • The JDBC/OCI driver converts JDBC invocations to calls to the Oracle Call Interface (OCI) which are then sent over Net8 to the Oracle database server. • Thin JDBC driver • Oracle's Level 4 driver. • It is designed for Java applet and Java application developers. • The JDBC driver establishes a direct connection to the Oracle database server over Java sockets. • Access to the database is assisted with a lightweight implementation of Two-Task Common (TTC) and Net8.
Stack Communication for JDBC Clients (2/6) • In a Java client applet-server transaction, information passes through the following layers: • DBAccess Interface • JavaTTC • JavaNet • TCP/IP Protocol
Stack Communication for JDBC Clients (3/6) • DBAccess Interface • The Java DBAccess Interface layer enables the client to initiate a SQL session much like Oracle Call Interface (OCI) does in a standard client communication stack.
Stack Communication for JDBC Clients (4/6) • JavaTTC • JavaTTC provides a subset version of the Two-Task Common (TTC) implementation necessary for exchanges of information between the Java client and the database. JavaTTC is responsible for: • Negotiating protocol version and data type • Determining whether conversions between the Java client character set and server character set are necessary • SQL statement execution
Stack Communication for JDBC Clients (5/6) • JavaNet • JavaNet provides a communication infrastructure that is equivalent to NI, NR/NN/NA, and TNS in Net8. • Communication Interface • Provides an interface between JavaTTC and other networking layers much like NI does in a standard client communication stack. • Addressing • Processes Net8 destination addresses much like NN does in a standard client communication stack. • Java NS • Provides a common interface to TCP/IP, and settles all generic machine-level connectivity issues. • Java Sockets • Provides a connection between Java NS and TCP/IP.
Stack Communication for JDBC Clients (6/6) • TCP/IP Protocol • Java NS will only run on top of TCP/IP, because Java sockets use TCP/IP.
Stack Communications for Oracle8i JServer Clients (1/3) • Oracle8i has Java support with Oracle8i JServer. • Oracle8i JServer includes support for Java stored procedures, JDBC, SQLJ, Common Object Request Broker Architecture (CORBA), and Enterprise JavaBeans (EJBs).
Stack Communications for Oracle8i JServer Clients (2/3) • Oracle8i JServer supports the General Inter-Orb Protocol (GIOP) presentation for Java Virtual Machine (VM) requests. • GIOP is used by clients accessing Enterprise Java Beans and CORBA Servers in the Java VM. • EJB and CORBA clients use a different communication stack than a typical Net8 client stack. • Differences include: • GIOP as the presentation layer • No session layer
Stack Communications for Oracle8i JServer Clients (3/3) • The server side does not require many of the Net8 communication layers needed in a typical Net8 connection. • Instead, the server side only requires a network protocol of TCP/IP and an Oracle protocol of TCP/IP or TCP/IP with SSL. • The only component of Net8 required is Network Session (NS).