|
Java and associated technologies are emerging as the most preferable way to build network management solutions, for both the server-side and the client-side applications. The reason for this growing trend is the ease with which the new technology is used, shortening the development cycles. The growth of this industry is also making more and more tools available to network management developers.
The growth of the Internet has given rise to many new technologies to serve the increasing demands of the current generation of applications. Client-server has transformed into Web-based, multitier architecture for more scalability and performance. Application servers are commonly used as a base platform in building these multitier, Web-based applications. With the emergence of multitier architecture, a number of high-end capabilities have been introduced by application server vendors, including massive scalability, transaction support, database integration, load balancing, redundancy, failover, and so on. Many of these capabilities have been through proprietary architecture, requiring solutions to be developed for individual application servers.
Enterprise Java Beans standardize many of these technologies and allow applications developed for EJB to be deployed in multiple application servers. These application servers conform to the EJB standards, without requiring the development of specific application server. EJB has been initially focused on building applications needing to support a large number of users, high availability, high performance, and so on. By using and extending standard technologies, such as JDBC, JNDI, RMI, and CORBA, the EJB standard provides a uniform way of building applications with these capabilities without requiring the developer to implement these capabilities. The developer does not need to implement persistence, transactions, clustering, failover, load balancing, etc. to provide these capabilities.
The number of application servers supporting EJB is growing. Applications written to the standard EJB specification can run in any of these application servers. Most of the differences that exist between application servers supporting a specified version of the EJB specification are not API or application related. The differences are often related to run-time deployment and configuration of the application server EJBs.
EJB supports a high degree of control over applications and components at run time, or even after the application development is complete. The biggest benefit of this is to allow deploying these components in a scalable and flexible architecture, and support load balancing, etc.
There are two kinds of EJBs, namely session EJBs and entity EJBs. Session EJBs represent a client in a multitier system, and perform actions directly in support of client applications. Entity EJBs represent application data that is persistent in the database and is not specific to a client.
EJB Restrictions
To support the capabilities of the application server, including database persistence, transactions, and clustering, it is necessary to restrict the capabilities of EJB components. This is to allow the EJB server to manage the EJB and provide the high-end capabilities expected of the application server. The restrictions limit the EJB from doing any of the following.
Managing or synchronizing threads
Accessing files or directories with the java.io package
Using AWT functionality to display information or to accept information from a keyboard
Listening on a socket, accepting connections on a socket, or using a socket for multicast
Setting a socket factory used by ServerSocket, Socket, or the stream handler factory used by the URL class
Loading a native library
To support these restrictions, and get the high-end capabilities desired by the application, special architecture is needed to support network management applications. WebNMS SNMP API is designed to allow building components and applications that do not violate these restrictions.
|