CIS501 HOMEWORK5 YANG ZHENG A Note To Instructor: Dr. Bill Hankley This is a late submission due to my delivery of my daughter in this semester. Network Definition: 1. An interconnection of three or more communicating entities. 2. An interconnection of usually passive electronic components that performs a specific function (which is usually limited in scope). [1] Computers running on the Internet communicate to each other using either the Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP). [2] Socket Definition: A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent. [2] Client/server: Any relationship between distributed objects has two sides: the client and the server. The server provides a remote interface, and the client calls a remote interface. These relationships are common to most distributed object standards, including RMI and CORBA. A server runs on a specific computer and has a socket that is bound to a specific port number. The server just waits, listening to the socket for a client to make a connection request. The client knows the hostname of the machine on which the server is running and the port number to which the server is connected. To make a connection request, the client tries to rendezvous with the server on the server's machine and port. If everything goes well, the server accepts the connection. Upon acceptance, the server gets a new socket bound to a different port. It needs a new socket (and consequently a different port number) so that it can continue to listen to the original socket for connection requests while tending to the needs of the connected client. On the client side, if the connection is accepted, a socket is successfully created and the client can use the socket to communicate with the server. Note that the socket on the client side is not bound to the port number used to rendezvous with the server. Rather, the client is assigned a port number local to the machine on which the client is running. The client and server can now communicate by writing to or reading from their sockets. The java.net package in the Java platform provides a class, Socket, that implements one side of a two-way connection between your Java program and another program on the network. The Socket class sits on top of a platform-dependent implementation, hiding the 1 CIS501 HOMEWORK5 YANG ZHENG details of any particular system from your Java program. By using the java.net.Socket class instead of relying on native code, your Java programs can communicate over the network in a platform-independent fashion. Middleware: Middleware services -- transaction monitors, message-oriented middleware, object request brokers, and others -- gave additional impetus to this new architecture. And the growing use of the internet and intranets for enterprise applications contributed to a greater emphasis on lightweight, easy to deploy clients. Multi-tier: During the early 90s, traditional enterprise information system providers began responding to customer needs by shifting from the two-tier, client-server application model to more flexible three-tier and multi-tier application models. The new models separated business logic from system services and the user interface, placing it in a middle tier between the two. Multi-tier design dramatically simplifies developing, deploying, and maintaining enterprise applications. It enables developers to focus on the specifics of programming their business logic, relying on various backend services to provide the infrastructure, and client-side applications (both standalone and within web browsers) to provide the user interaction. Once developed, business logic can be deployed on servers appropriate to existing needs of an organization. But because the multi-tier model has until now been implemented with a variety of divergent standards, it has limited developers' ability to efficiently build applications from standardized components, to deploy a single application on a wide variety of platforms, or to readily scale applications to meet changing business conditions. Instead, it forced developers to focus on "plumbing" details specific to their particular mix of platform, operating system, and middleware services. [2] Protocols: 1. RMI (Java Remote Method Invocation) system allows an object running in one Java Virtual Machine (VM) to invoke methods on an object running in another Java VM. RMI provides for remote communication between programs written in the Java programming language. RMI applications are often comprised of two separate programs: a server and a client. A typical server application creates some remote objects, makes references to them accessible, and waits for clients to invoke methods on these remote objects. A typical client application gets a remote reference to one or more remote objects in the server and then invokes methods on them. RMI provides the mechanism by which the server and the client communicate and pass information back and forth. Such an application is sometimes referred to as a distributed object application. Distributed object applications need to 2 CIS501 HOMEWORK5 YANG ZHENG Locate remote objects: Applications can use one of two mechanisms to obtain references to remote objects. An application can register its remote objects with RMI's simple naming facility, the rmiregistry, or the application can pass and return remote object references as part of its normal operation. Communicate with remote objects: Details of communication between remote objects are handled by RMI; to the programmer, remote communication looks like a standard Java method invocation. Load class bytecodes for objects that are passed around: Because RMI allows a caller to pass objects to remote objects, RMI provides the necessary mechanisms for loading an object's code, as well as for transmitting its data. 2. HTTP (HyperText Transfer Protocol) The Internet protocol, based on TCP/IP, used to fetch hypertext objects from remote hosts. 3. TCP/IP (Transmission Control Protocol based on IP) is an Internet protocol that provides for the reliable delivery of streams of data from one host to another. 4. Corba is the acronym for Common Object Request Broker Architecture, OMG's open, vendor-independent architecture and infrastructure that computer applications use to work together over networks. Using the standard protocol IIOP, a CORBA-based program from any vendor, on almost any computer, operating system, programming language, and network, can interoperate with a CORBA-based program from the same or another vendor, on almost any other computer, operating system, programming language, and network. [3] Other servers: 1. DB server: JDBC makes it possible to send SQL statements to a database and to process the results that are returned. JDBC provides uniform access to a wide range of relational databases and provides a common base on which database tools can be built. The JDBC implementation includes a driver manager to support multiple drivers that mediate the connections between JDBC and various databases. A driver can be written either entirely in the Java programming language so it can be downloaded as part of an applet or in a mixture of the Java programming language and native methods if it needs to bridge to existing database access libraries. [2] Other database server includes MySQL, Oracle 9i, SQL Server 2000, Borland Interbase, etc. 2. Application server: An application server is a server program in a computer in a distributed network that provides the business logic for an application program. The application server is frequently viewed as part of a three-tier application, consisting of a graphical user interface (GUI) server, an application (business logic) server, and a database and transaction server. More descriptively, it can be viewed as dividing an application into: [4] A first-tier, front-end, Web browser-based graphical user interface, usually at a personal computer or workstation 3 CIS501 HOMEWORK5 YANG ZHENG A middle-tier business logic application or set of applications, possibly on a local area network or intranet server A third-tier, back-end, database and transaction server, sometimes on a mainframe or large server 2. Web server: Web servers provide network access to Web pages and other intranet and Internet content. [5] Beans: 1. JavaBean: JavaBean component architecture is the platform-neutral architecture for the Java application environment. It's the ideal choice for developing or assembling networkaware solutions for heterogeneous hardware and operating system environments--within the enterprise or across the Internet. [2] The JavaBeans component architecture extends "Write Once, Run AnywhereTM" capability to reusable component development. In fact, the JavaBeans architecture takes interoperability a major step forward--your code runs on every OS and also within any application environment. A beans developer secures a future in the emerging network software market without losing customers that use proprietary platforms, because JavaBeans components interoperate with ActiveX. JavaBeans architecture connects via bridges into other component models such as ActiveX. Software components that use JavaBeans APIs are thus portable to containers including Internet Explorer, Visual Basic, Microsoft Word, Lotus Notes, and others. [2] 2. EJB: The Enterprise JavaBeans architecture, part of the Java 2, Enterprise Edition platform, is a technology for developing, assembling, deploying, and managing distributed applications in an enterprise environment. It is used by application developers (both in-house IT developers and developers for ISVs) because it simplifies handling the issues inherent in distributed applications. By concealing such complexities as security, transaction handling, and database access, the EJB architecture enables component developers to focus on business logic. [2] Reference: [1] Telecommunications Industry Solutions, “network”, http://www.its.bldrdoc.gov/projects/t1glossary2000/_network.html [2] http://www.java.sun.com [3] Object Management Group, Inc, CORBA BASICS, http://www.omg.org/gettingstarted/corbafaq.htm#TotallyNew [4] sesearchDatabase.com, application server, http://searchdatabase.techtarget.com/sDefinition/0,,sid13_gci211584,00.html [5] about.com, computer networking, http://compnetworking.about.com/cs/webservers/index.htm?terms=web+server 4