ZhengH5

advertisement
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
Download