Advanced Java Networking

(NOTE: All chapters conclude with a Summary.) Introduction. 1. Advanced Java. Basic Java. Object-Oriented Design Using Java. Applying Good Object-Oriented Design Skills. OOP-Strong, Efficient, and Effective. Java I/O Routines. Streams. The Java Core System. Files. The Abstract Window Toolkit and Swing Classes. I/O in Short. Introduction to Threading in Java. What Are Threads? Threading in Java. Thread Summary. Object Serialization. What Is Serialization? Handling Object Relationships. The Output Streams. Handling Object Webs. Reading Objects. Security and Fingerprinting. Serialization Overview. Performance. Performance Issues. Summary of Performance Issues. A First Look at Java Networking in Action. Pulling It All Together. 2. TCP/IP Fundamentals. In the Beginning? The Protocol Stack. The OSI Stack. The TCP/IP Stack. IP Addresses. Protocols. DNS. HTTP. CORBA and IIOP. RMI. JINI. 3. Java Sockets and URLs. Sockets and Interprocess Communication. Introduction to IPC. URL and URL Connection. Summary of Sockets. Client/Server Methodology. The Pizza Order Protocol (TPOP). The TPOP Server. Server Methodology. Setting Up the Server. Initializing the Server Socket. Creating the Thread. Detecting Information and Starting the Thread. Gathering Information. The TPOP Client. Developing Clients for Servers. Clients and Servers in Short. UDP Client. Datagrams. Creating a UDP Sender. Featured Application. Messaging Format. Client. Server. 4. Java Database Connectivity. Inside JDBC. Database Drivers. JDBC in General. Databases and SQL. Creating an Access Database. Simple SQL. Summary. Retrieving Information. Creating the User Interface. Database Security. Using the JDBC Driver. Creating Queries. Database and SQL Overview. Storing Information. Creating the Connection. Forming a Statement. A JDBC Version of the Featured App. Creating the Database. Mapping the Network Module to Database Queries. Developing the Client. Establishing the Connection. Making an SQL Invocation. Invoking SQL to Make a Change. Shutting Down the Connection. 5. Java RMI: Remote Method Invocation. Distributed Objects. What Is RMI? How Does RMI Work? Local vs. Remote Objects. Applet vs. Application. Dynamic Method Invocations. Overview of RMI. Client. RMI Client Methodology. Catching Exceptions. Handling Security Constraints. Client Overview. Server. RMI Server Classes. Creating a Server Interface. Implementing a Server. RMI Registry Classes. RMI Server Security Constraints. Generating Stubs and Skeletons. Server Overview. Callbacks. Why Callbacks? Creating the Callback. Implementing the Callback Client. Filling in the Callback Method. Registering Callbacks. Invoking Callbacks. Callbacks in Short. A Java RMI Version of the Featured App. RMI Interface. RMI Client. RMI Server. New in JDK 1.2. Activatable Objects. Custom Socket Factories. 6. Java IDL: Interface Definition Language. CORBA. CORBA-Style Communication. The CORBA Vision. Communication with CORBA. Separation of Interface and Implementation. Different Vendors, Different ORBs. Advantages of CORBA. Common Object Services. Object Administration. Clients and Servers and Networks, Oh My! What CORBA Means for You. The Interface Definition Language. Interfaces. Modules. Interface Inheritance. Variables and Structures. Methods. Constructed Data Types. Exceptions. Overview of the IDL. Language Mappings. What Exactly Are Language Mappings? The Sun Microsystems Java Language Mapping. Interfaces, Modules, and Methods. Interface Inheritance. Variables and Structures. Constructed Data Types. Exceptions. Java and CORBA Together. CORBA Clients. Designing a User Interface. Defining the Problem. The Cooler Interface Definition. The Cooler User Interface. Initializing the Client ORB. Client Overview. CORBA Servers. Defining an Interface and Generating Code. Server Overview. CORBA Callbacks. Java Callbacks. Creating a Callback. Registering a Callback. Receiving and Handling a Callback. A Java IDL Version of the Featured App. Server Interface. NetworkModule. Calendar Server. 7. Web Servers, Server-Side Java, and More. Inside an HTTP Server. Web Server Architecture. The HTTP Protocol. Using a Web Server. Advanced Web Server Features. HTTP Server Overview. Common Gateway Interface and CGI Scripts. Servlets. What Is a Servlet? Servlets Overview. Dynamic Documents. Creating the Servlet. A Servlet Version of the Featured App. doGet( ). getAppointments( ). newAppointmentForm( ). insertNewAppointment( ). Java Server Pages. Microsoft Active Server Pages (ASP). PHP. Allaire Cold Fusion. On to JSP. Scriptlets and Expression Evaluation. The Featured Application as a JSP. Dynamic Documents Overview. Multipurpose Servers. 8. Java Beans. Component Models. The Competition. Overview of the Java Beans Component Model. Interface Publishing. Event Handling. Persistence. Layout. Builder Support. Distributed Beans. Why Use Beans? Java Beans. Component Interaction. Network Communication. User Interface Issues. Persistence. Events. Properties. Beans in a Nutshell. Making a Bean. Using Java Beans. Creating a Java Beans Application. A Simple Example. Instantiating Components. Connecting Beans Events. Bean Introspection. Server-Side Java Beans. Enterprise Java Beans. Summary. COM/DCOM and ActiveX. What Is ActiveX? ActiveX Controls. ActiveX and Java. Java Native Interface (JNI). 9. Application Servers. High-Performance Web Servers. Integrated Development Environment. Interfacing to Enterprise Resource Planning Systems. Ability to Interface with Transaction Processing Monitors. Support Stateful Applications. Connection Pooling of Database Connections. Access to Legacy Applications and Legacy Databases. Scalability Through Load Balancing. Automatic Fail- Over. Support of the Enterprise Java Beans Specification. 10. Jini: Sun's Technology of Impromptu Networks. Examples of Jini. Where Did Jini Come From? Our Working Jini Example. Basic Jini Concepts: "Discovery, Join, and Lookup Oh My! " Server. Client. Getting Started with Jini. Let's Get to the Code! Implementing the Jini Server. Implementing the Jini Client. Running the Jini Server. Running the Jini Client. Good References to Get You Started. 11. JMX/JMAPI: Java Management API. What Is Network Management? Network Management at a Glance. Simple Network Management Protocol. The Unique Management Problems of Java. Network Administration Overview. Modifying Clients for JMAPI. AVM Base Classes. AVM Help Classes. Managed Object Interfaces. Setting Up Notifications. Modifying Servers for JMAPI. 12. What Are Directory Services? Some Background. Introducing Java Naming Directory Interface. Using the JNDI to Access LDAP-Based Data. Setting up the Airius Directory. The Airius Schema. Connecting. Searching. Adding Persons to the Directory. Modifying Information Already in the Directory. Removing Entries from the Directory. Authentication. 13. Java and Security. Safety in Java. The Java Security Model. Easy to Use Fine-Grained Access Control. Easy to Configure Security Policy. Easy to Extend Access Control Structure. Easy to Extend Security Checks to Applications. Java Class Security. The Bytecode Verifier. The Class Loader. The Security Manager. Security Problems and Java Security Testing. Encryption. Java Cryptography Extension (JCE). Authentication. Kerberos. Digital Signatures and Public Key Encryption. Secure Sockets Layer. The Government and Security. Export Control. The "Clipper" Controversy. 14. Making an Architectural Decision. Java Sockets. Flexibility. Simplicity. Java RMI Decisions. RMI Advantages. RMI Disadvantages. Three-Tier Applications in RMI. Java IDL. Advantages of Java IDL. Disadvantages of Java IDL. Java IDL Implementations. Java IDL Is Robust. Java IDL Is Difficult. Java IDL Is Powerful. JDBC. Why JDBC Is Not Enough. JDBC and Java IDL or Java RMI. JDBC Alone. JDBC Overview. Other Java Technologies. When to Use Beans. When to Use Servlets and Java Server Pages. Application Servers. Glossary. Index. About the CD-ROM.