Net8 is the fundamental networking technology that allows Oracle services and clients to communicate with each other over a network. The most common application for Net8 is to allow clients to talk to database servers, but Net8 also enables server-to-server and other types of communication, as shown in Figure 1.1.
In this chapter, you’ll learn about Oracle’s architectural goals for Net8. You’ll also learn about the major components that make up Net8. Some of these components are behind-the-scenes in that they are only used by the Net8 communications stack. Others are management tools that you invoke directly.
The overarching mission of Net8 is fairly obvious: to enable connectivity in an Oracle environment. Oracle wants to make it as easy and painless as possible for developers to connect client applications to an Oracle database. In support of that mission, Oracle has set these goals for Net8:
By meeting these three goals, Oracle has made Net8 a very easy to use connectivity solution. Much of the complexity of dealing with various networking protocols and operating-system platforms has been hidden from the user. A developer or DBA working with Net8 only needs to understand how Net8 works. There’s no need to have a detailed understanding of the underlying protocols or the underlying operating systems.
Location transparency refers to the fact that an application does not need to know anything about the network location of the service to which it is connecting. Node names, IP addresses, and the like are transparent to the application. Net8 needs to know these details, but they are hidden from the application.
Net8 achieves location transparency by associating the network address of a server with a Net8 service name. You then use that Net8 service name in client applications in order to connect to the database server. If the address of the server changes, that change only needs to be made at the Net8 level. Client applications and database links that use the service name are completely unaffected.
Platform independence refers to the fact that Net8 works the same way regardless of the specific hardware or software platform being used. An application that uses Net8 on Unix does not need to be modified in order to use Net8 on Windows NT or Windows 2000.
Net8 achieves platform independence by implementing common functionality and a common API on each platform that Oracle supports. Most applications, in fact, do not call Net8 directly. Instead, they make calls to the Oracle Call Interface (OCI). The OCI, in turn, interfaces with Net8. The result is that Oracle applications do not need to be aware of the specific hardware and software platform on which they are running.
Protocol transparency refers to the fact that applications using Net8 do not need to be aware of the underlying network protocol being used. Net8 works the same over TCP/IP as it does over SPX or any other networking protocol. In fact, if you need to translate between protocols, the Oracle Connection Manager will do that for you, and it will be totally transparent to the applications involved.
Net8 achieves protocol transparency through the use of protocol adapters. Protocol adapters sit between Net8 and the underlying networking protocol being used. They allow Net8 packets to be transmitted and received using protocols such as TCP/IP or SPX. Figure 1.2 shows how protocol adapters fit into the Net8 equation.
As Figure 1.2 shows, Net8 can support multiple protocols simultaneously. When you define a service name to Net8, you also define the protocol (or protocols) that may be used to reach that service. The database service shown in Figure 1.2 can be reached using either TCP/IP or SPX. Net8 will use whichever protocol is supported by the client machine that is making the connection.
Because the network protocol to use is known only to Net8, it can easily be changed without affecting client applications. All you have to do is make sure that the appropriate adapters are installed and that the Net8 service name definition specifies the protocol to use.