Previous | Table of Contents | Next |
Web Request Brokers InterCartridge Exchange (ICX)
The InterCartridge Exchange is a service of the Web Request Broker that allows one cartridge to call on services in another cartridge. In other words, an application written in one language can, through the ICX, use the services of another cartridge without any knowledge of that called cartridges language.
For example, say youve written an application in PL/SQL that needs to access another database via ODBC. Your PL/SQL code can contain a call to the ODBC service, using the Oracle provided packaged procedures called utl_http.request and utl_http.request_pieces for use with the PL/SQL cartridge. These procedures let your application send a request to an ODBC service, and get responses back.
The ICX is modeled after HTTP. Requests via the ICX act like HTTP, and appear the same as an incoming HTTP request to the called cartridge, regardless of whether the calling cartridge is on the same node as the called cartridge, or across the network in a distributed configuration. And ICX allows any cartridge to make calls to any other cartridge, regardless of the languages involved.
The first tier in the Network Computing Architecture model is the universal data server, which does not necessarily mean an Oracle database. The WAS has several mechanisms by which you can access data sources other than Oracle:
Security is one of the most important issues with any Web application, more so than with traditional client-server systems. Since anything on a network is inherently more accessible, the probability of attempted hacks to a system is higher. But more significantly, the stateless nature of Web sessions, while providing significant benefits, also introduces some security questions that must be addressed before any serious application deployment can take place.
WAS provides a number of features to assist with the prevention of unauthorized access to your application.
The WAS offers several options for user authentication. One approach is to create user names and passwords that reside in the WAS, in other words, that you create through the WAS Administrator, and that are stored in files with the Web server. The passwords are encrypted in a similar manner as the Oracle database passwords, but the user names are not in the database.
When setting up these user names and passwords, you must choose between two options: Basic authentication, or Digest authentication. From the users point of view, theres no difference between the two. The difference is in how the passwords are transmitted from client to server. When the user enters a password using Basic Authentication, the password is encoded in Base64 format, and transmitted to the server. Under Digest authentication, the password itself is not sent, but an MD5 checksum is sent instead. The advantage: its impossible to decipher the MD5 checksum. When the server receives the checksum, it can tell that the client must know the password without receiving the actual password.
Instead of configuring usernames and passwords through the WAS, another approach is to use Oracle schema names (user names). This is a new feature with WAS 3.0, believe it or not, and to appreciate why, its important to understand how the WAS is configured. When a new cartridge is set up in the WAS, a Database Access Descriptor (DAD) must be created. This is a set of instructions telling the cartridge how to access its data source. For example, when setting up a PL/SQL cartridge, you must define that cartridges database access. The DAD is given one associated user name in the databasethats oneto service all incoming client requests. In previous versions of the WAS, this meant that the entire collection of users accessing that cartridge was seen as one (probably really busy) user to the database. To provide any sort of database user names and passwords meant that the application developer had to develop and manage user names and passwords themselves. Oracle user names (schemas) could not be used.
This changed with WAS 3.0, which allows for either option. When creating a DAD in WAS 3.0, if you just leave the user name and password blank during the configuration process, users who log in to the application will be prompted by the listener to enter an Oracle user name and password. Also, any roles you may have set up for that user account will function for the users login session.
The WAS also provides methods that allow you to work with the physical IP address from which a user is accessing the system. Every user on the network is associated with a physical address. By telling the WAS to, for example, only accept incoming requests from a given IP address, you effectively prevent any unauthorized access from anywhere else. You could also work the other wayallow access from anywhere except for one particularly troublesome IP address, one from which you know youve had attempted hacks in the past. This is possible, but not very effective, since a hacker can just try from somewhere else. But both options exist, and the first is very effective if your applications user requirements will allow for it.
Previous | Table of Contents | Next |