Académique Documents
Professionnel Documents
Culture Documents
Project Report
Project Report
files.
Since the RSFS provides interoperability, problem can be Native code conversions operations, such as conversion from Implementation of authentication protocol based on Access
easily handled by using native code conversion. one file system format to its machine code are very easy to implement. Control List provides good security than NFS for granting access to
1.3 EXISTING SYSTEM: The existing system is platform independent but it has some limitations such as the independency is applicable only among certain group of operating systems. (e.g., independency among windows alone). The existing system does not support interoperability. (ie. in existing system, file system in client had to run on all network computers. Since a number of vendors are shipping several different types of NCs, it is not possible to develop a single client that works on all of them). Disadvantages: The system can be platform independent among only certain The system does not support the more interoperability. Good security is not provided by the existing system.
Project Report
other file systems. This system is more platform independent than the existing
system.
Project Report
System analysis is the process of studying systematically a given system to find how a system functions, its components and the interactions and interrelationships between them. Through system analysis an analyst may come to know how a business functions and its objective, drawbacks if any and with these details he/she may make improvements to enhance the business systems performance. 2.1.1 IDENTIFICATION OF NEED: Accessing of files between heterogeneous file systems is not possible. Since the network computers have different file systems that are important to have a common file system for accessing heterogeneous file system. Problem Definition: Java network file system is on system side program that share and access the file from one operating system of the computer system to the different operating system of the operating system. The system side program developed under GUI environment which share the file between the different operating system of the systems. The system side program has to develop under the Network file system, Java Network file system. Network File System: In the Network file system, we share the file from one file system of the Network to the same file system of the Network.
Project Report
In the java Network file system we share the file from one file system of the Network the different file system of the network and share access the file from one operating system of the system to the different operating system of the systems in the Network. 2.1.2 PRELIMINARY INVESTIGATION: Preliminary investigation is to evaluate project requests. It is not a design study, nor does it include the collection of details to completely describe the business system. Rather, it is the collecting of information that permits committee members to evaluate the merits of the project and make the feasibility of the proposed project. size. Access costs and benefits of alternative approaches. Determine the technical and operational feasibility of Report the findings to management, with recommendation Clarify and understand the project request and Determine the
alternative approaches. outlining the acceptance or rejection of the proposal. 2.1.2.1 Reviewing Organization Documents: The analysis conducting the investigation first learns about the organization involved in or affected by the project. For example, to review an inventory systems proposal means knowing first how the inventory department operates and who the managers and supervisors are. Analysis can usually learn these details by examining organization charts and studying written operating procedures. The procedures describe how the inventory process should operate and identify the most important steps involved in receiving, managing, and dispensing stock.
Project Report
2.1.2.2 On-site Observations:
Another important technique to collect data is on-site observation. In this method, the analysts observe the activities of the system directly. One purpose of on-site observation is to get as close as possible to the real system being studied. During on-site observation, the analysts can see the office environment, work load of the system and the users, methods of work and the facilities provided by the organization to the users. 2.1.2.3 Conducting Interviews: Written documents tell the analysts how the systems should operate, but they may not include enough detail to allow a decision to be made about the merits of a systems proposal, nor do they present user views about current operations. To learn these details, analysts use interviews. Interviews allow analysts to learn about the nature of the project request and the reason for submitting it. To accomplish the purpose of the interview, analysts must be sure to emphasize the request and the problem it addresses. In other words, interviews should provide details that further explain the project and show whether assistance is merited economically, operationally, and technically. Working out a solution to the situation comes later during the detailed investigation. Usually, preliminary investigation interviews involve only management and supervisory personnel. 2.2. FEASIBILITY STUDY: Feasibility is the determination of whether or not a project is worth doing. The process followed is making this determination is called feasibility study. This type of study determines if a project can and should be taken. Once it has been determined that a project is feasible, the analyst can go ahead and prepare the project specification 7
Project Report
2.2.1 TECHNICAL FEASIBILTY: This is concerned with specifying equipment and software that will successfully satisfy the user requirement. The technical needs of the system may vary considerably, but might include The facility to produce outputs in a given time. Response time under certain conditions. Ability to process a certain conditions. Facility to communicate data to distant location.
Project Report
hold the data required to use the new system? inquiries, regardless of the number or location of users?
Project Report
2.2.2 ECONOMICAL FEASIBILITY: Economical analysis is the most frequently used technique for evaluating the effectiveness of a proposed system. More commonly known as cost/benefit analysis, the procedure is to determine the benefits and savings that are expected from a proposed system and compare them with costs. If benefits outweigh costs, a decision is taken to design and implement the system. Otherwise, further justification or alternative in the proposed system will have to be made if it is to have a chance of being approved. This is an ongoing effort that improves in accuracy at each phase of the system life cycle. Financial benefits must equal or exceed the costs. The analysts raise various financial and economic questions during the preliminary investigation. The cost to conduct a full systems investigation. The cost of hardware and software for the class of application The benefits in the form of reduced costs or fewer costly The cost if nothing changes.
being considered. errors. To be judged feasible, a proposal for the specific project must pass all these tests. 2.2.3 OPERATIONAL FEASIBILITY: It is mainly related to human organizational and political aspects. The points to be considered What changes will be brought with the system? What organizational structures are disturbed? What new skills will be required?
10
Project Report
they be trained in due course of time? Generally the project will not be rejected simply because of operational unfeasibility but such considerations are likely to critically affect the nature and scope of the eventual recommendations. This feasibility study is carried out by a small group of people who are familiar with information system techniques, who understand the parts of the business that are relevant to the project and are skilled in system in system analysis and design process. Proposed projects are beneficial only if they can be turned into information systems that will meet the operating requirements of the organization. This test of feasibility asks if the system will work when it is developed and installed. Are there major barriers to implementation? Some of the important questions that are useful to test the operational feasibility of a project are given below: Is there sufficient support for the project from the management? From users? If the present system is well liked and used to the extent that persons will not be able to see reasons for a change, there may be resistance. Are current business methods acceptable to the users? If they are not, Users may welcome a change that will bring about a more operational and useful system. Have the users been involved in the planning and development of the project? If they are involved at the earliest stage of project development, the chances of resistance can be possibly reduced. Will the proposal system cause harm? Will it produce poorer result in any case or area? Will the performance of staff member fall down after implementation?
11
Project Report
: : :
: :
INTERFACE REQUIREMENTS :
MAIN PROCESSOR
: : :
12
Project Report
MOUSE NETWORK ENVIRONMENT DATA TRANSFER RATE : :
13
Project Report
INTRODUCTION: Design is what virtually every engineer wants to do. It is the place where customer requirements, business needs, and technical considerations all come together in the formulation of a product or system. Design creates a representation or model of the software, but unlike model (that focuses on describing required data, function, and behavior), the design model provides detail about software data structures, architecture, interfaces, and components that are necessary to implement the system. Design is a solution, a how to approach to the creation of a new system. Design depicts the software in a number of ways. First, the architecture of the system or product must be represented. Then, the interfaces that the software to end-users, to other systems and devices, and to its own constituent components is modeled. Finally, the software components that are used to construct the system are designed. Each of these views represents a different design action, but all must conform to a set of basic design concepts that guide all software design work. A design model that encompasses architectural, interface, componentlevel, and deployment representation is the primary work product that is produced during software design. One of our basic design objectives is to provide the user goodness of GUI accompanying the completeness of a hard-core technology from the every aspect of the project. 3.1 USE CASE DIAGRAM: Use- case describes the manner in which an actor (in the context of user interface design, an actor is always a person) interacts with a system. It shows how an end-user performs some specific work related task.
14
Project Report
3.2 FLOW CHART: The purpose of flow chart diagrams is to provide a semantic bridge between users and systems developers. It is a graphical representation. It is used to represent the flow of data from server to client and vice versa.
15
stop
16
Project Report
3.3 SEQUENCE DIAGRAM:
The sequence diagram explains the sequence of operations The authentication check is carried out by checking the user The server will be in listening mode after it receives request Accessing files from client after authentication as well client
between server and client. name and password. from the client. can also access files from server 3.4 MODULES INVOLVED: 1. Authentication 2. Accessing of Files 3. Transferring of Files 4. Event Log
17
Project Report
3.4.1 MODULES EXPLANATION:
3.4.1.1
Authentication:
The server will be in listening mode to access the remote We use the rmi port numer 1099. Once the server got request from client, it invoke the Server
Machine. port. The RSFS Login checks the username and password in the
18
Project Report
RSFS Server
RSFS Server
locally.
The server can able to access the files both in remote and its It uses Local list Listener to fetch the local files from it. For accessing the files in the remote machine it will be using Remote List Listener will fetch the file from it and then it will
the remote list listener. code. 3.4.1.3 Native code conversion: This is the main module which converts the file system of different format, so that it can access files between the heterogeneous file systems. To do this conversion it involves the following steps: The system of heterogeneous file system will be connected by To access the file system from server to client namely FAT16 using the socket concept. to FAT32 (vice-versa), we will be implementing the RSFS on top of native file. 19 transfer the file to the Server accordingly by converting into its native
Project Report
and the client side file which is to be accessed to its machine code by doing the following steps: 1. Whatever the file to be accessed between this heterogeneous file system is selected. . 2. As soon as its selected it wont be transferred by its native file system instead the RSFS will be using that particular file and using the StringTokenizer it converts the whole file to tokens. 3. Then it compiles at that time it actually converted as class file so that all machine can access even though it is of different file system. 3.4.1.4 Transferring of Files: Request from the client Login Entry
Uploading
Allows the authorized user
Downloading
20
Project Report
The user logins by entering the user name and password. Soon after entering, the user name and password authenticate The authorized user is allowed to access the files. The server accessing of files from client. The Client responses to Server. The file from one file system format to another is converted to Thus the accessing of file between the different file systems
by server.
another by using the native code conversion. takes place. 3.4.1.5 Event Log: All the information about the transferring of files will be It stores details like information about to which system the This module actually used to displays all these information. It uses this to maintain the Log about the systems connected in It will be mainly used for future reference.
stored in the database. files is trasferrred, its size and time etc.
the network.
21
Project Report
File sent through Transfer Control Protocol Shared folder source files Granted permission 6 4 Authorize d user
1 8
1 4 . 2 1 7
Server program to convert into native file system 1 6 1 5 Remote systems shared folder
1 4 . 1
Remo te Serve
r
Authe nticati on 1
22
Project Report
The implementation activity encompasses a set of coding and testing tasks that lead to operational software that is ready for delivery to the customer or end-user. The primary goal of implementation is to write source code and internal documentation so that conformance of the code to its specification can be very easily verified, thereby debugging, testing and modification are made easy. In modern software engineering work, coding may be: The direct creation of programming source code; The automatic generation of source code using an intermediate The automatic generation of executable code using a fourth
design like representation of the component to be built; generation programming language(e.g. Visual C++) Coding Principles: Constrain your algorithms by following structured
programming practice. Select data structures that will meet the needs of the design. Understand the software architecture and create interfaces that Keep conditional logic as simple as possible Create nested loops in way that makes them easily testable. Select meaningful variable names and follow other local Write coding that is self-documenting. Create a visual-layout that aids understanding.
coding standards.
23
Project Report
IMPLEMENTATION TOOLS : CREATION OF JAVA:
Java was conceived by James Gosling, Patrick Naughton, Chris Warth, Ed Frank and Mike Sheridan at SUN Micro Systems Inc Corporation in 1991. It took 18months to develop the first working version. This language was initially called "OAK", but was renamed JAVA" in 1995. Before the initial implementation of OAK in 1992 and the public announcement of Java in1995, many more contributed to the design and evolution of the language. JAVA OVERVIEW: Java is powerful but lean on Object Oriented programming language. It has generated a lot of excitement because it makes it possible to program for Internet by creating applets, programs that can be embedded in web page. The context of an applet is limited only by one's imagination. For example, an applet can be an animation with sound, an interactive game or a ticker tape with constantly updated stock prices. Applets can be just little decorations to liven up web page, or they can be serious applications like word processors or spreadsheet. But Java is more than a programming language for writing applets. It is being used more and more for writing standalone applications as well. It is becoming so popular that many people believe it will become standard language for both general purpose and Internet programming. There are many buzzwords associated with Java, but because of its spectacular growth in popularity, a new buzz word has appeared ambiguous, indeed, all indications are that it will soon be everywhere. Java builds on the strength of C++. It has taken the best features of C++ and discarded the more problematic and error prone parts. To this lean core, it has added garbage collection (automatic 24
Project Report
25
Project Report
THE JAVA BUZZ WORDS:
No discussion of the genesis of java is complete without a look at the java buzzwords. Although the fundamentals that necessitated the invention of java are portability and security, there are other factors that played an important role on molding the final form of the language. The java in the following list of buzzwords summed up the key considerations. Simple Portable Object-oriented Robust Multithreaded Architectural-neutral High performance Distributed Dynamic
OBJECT ORIENTED PROGRAMMING AND JAVA: Object-oriented Programming was developed because of limitations found in earlier approaches of programming. In order appreciate what OOP does, we need to understand the limitations present in the traditional programming.
Procedural Languages:
26
Project Report
27
Project Report
Project Report
encapsulated into a single entity. Data encapsulation and data hiding are key terms in the description of object oriented languages. A Java program typically consists of a number of objects, which communicate with each other by calling one anothers members functions. We should mention that what are called member functions in C++ are called methods in Java. Also, data items are referred to as instance variables. Calling an objects member function is referred to as sending a message to the object.
JAVA IS PORTABLE:
29
Project Report
JAVA IS OBJECT-ORIENTED:
30
Project Report
31
Project Report
SIMPLICITY:
32
Project Report
INTERFACES: The Java platform includes an extensive class library so that programmers can use already existing classes as it is, create subclasses to modify existing classes, or implement interfaces to augment the capabilities of classes. Both classes and interfaces contain data members (fields) and functions (methods), but there are major differences. In a class, fields may be either variable or constant, and methods are fully implemented. In an interface, fields must be constants, and methods are just prototypes with no further implementations. The prototypes give the method signature (the return type, the function name, and the number of parameters, with the type for each parameter), but the programmer must supply implementations. To use an interface, a programmer defines a class, declares that it implements the interface, and then implements all the methods in that interface as part of the class. These methods are implemented in a way that is appropriate for the class in which the methods are being used. Interfaces let one add functionality to a class and give a great deal of flexibility in doing it. In other words interfaces provide most of the advantages of multiple inheritances without its disadvantages. A package is a collection of related Java classes and interfaces. The following list, though not complete, gives examples of some Java packages and what they cover.
33
Project Report
34
Project Report
Project Report
Project Report
37
Project Report
Project Report
39
Project Report
Project Report
41
Project Report
Project Report
Polymorphism, Encapsulation, and Inheritance Work Together: When properly applied, polymorphism, encapsulation, and inheritance combine to produce a programming environment that supports the development of far more robust and scaleable programs than does the process-oriented model. A well-designed hierarchy of classes is the basis for reusing the code in which you have invested time and effort developing and testing. Encapsulation allows you to migrate your implementations over time without breaking the code that depends on the public interface of your classes. Polymorphism allows you to create clean, sensible, readable, and resilient code. JAVA IS MULTITHREADED: Multithreading is simply the ability of a program to do more than one thing at a time. For example an application could be faxing a document at the same time it is printing another document. Or a program could process new inventory figures while it maintains a feed for current prices. Multithreading is particularly important in multimedia: a multimedia program might often be running a movie, running a audio track and displaying text all at the same time. The Internet helped catapult Java to the forefront of programming and Java in turn has had a profound effect on the Internet. The reason is simple: Java expands the universe of objects that can move about freely in cyberspace. In a network, there are two broad categories of objects transmitted between the Server and your Personal Computer: Passive Information and Dynamic, Active Programs. For example, when you read your e-mail, you are viewing passive data. Even when you download a program, the program's code is still only passive data until you execute it. However, there is a second type of object that can be transmitted to your computer: a dynamic, self-executing program. Such a program would be an active agent on the Client computer, yet the Server would initiate it. 43
Project Report
As desirable as dynamic, networked programs are, they also present serious problems in the areas of security and portability. Prior to Java cyberspace was effectively closed to half the entities that now live there. Java addresses these concerns and doing so, has opened the door to an exiting a new form of program: INTRODUCTION TO RMI: Remote Method Invocation (RMI) facilitates object function calls between Java Virtual Machines (JVMs). JVMs can be located on separate computers - yet one JVM can invoke methods belonging to an object stored in another JVM. Methods can even pass objects that a foreign virtual machine has never encountered before, allowing dynamic loading of new classes as required. Remote method invocation allows applications to call object methods located remotely, sharing resources and processing load across systems. Unlike other systems for remote execution which require that only simple data types or defined structures be passed to and from methods, RMI allows any Java object type to be used - even if the client or server has never encountered it before. Any object that can be invoked this way must implement the Remote interface. When such an object is invoked, its arguments are ``marshaled'' and sent from the local virtual machine to the remote one, where the arguments are unmarshalled''. When the method terminates, the results are marshaled from the remote machine and sent to the caller's virtual machine. If the method invocation results in an exception being thrown, the exception is indicated to caller. 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
44
Project Report
Advantages of RMI: One of the important features of RMI is its ability to download the byte codes (or simply code) of an object's class even though the class is not defined in the receiver's virtual machine. The type and behavior of an object, previously available only in a single virtual machine, can be transmitted to another, virtual machine. RMI passes objects by their true type, and hence the behavior of those objects is not changed, when they are sent to another virtual machine. This allows new types to be introduced into a remote virtual machine, thus extending the behavior of an application dynamically. RMI is made up of interfaces and classes. The methods used in RMI are defined using the interfaces which are implemented by the classes. In a distributed application some of the implementations are assumed to reside in different virtual machines. Objects that have methods that can be called across virtual machines are remote objects. An object becomes remote by implementing a remote interface, which has the following characteristics. A remote interface extends the interface
45
Project Report
46
Project Report
For each of these methods, a command -- and possibly a set of arguments -- is passed to an operating-system-specific function call.
47
Project Report
Class java.lang.Process: The exec methods return an instance of a subclass of Process that can be used to control the process and obtain information about it. The sub process is not killed when there are no more references to the Process object, but rather the sub process continues executing asynchronously. The Runtime. exec methods create a native process and return an instance of a subclass of Process that can be used to control the process and obtain information about it. The class Process provides methods for performing input from the process, performing output to the process, waiting for the process to complete, checking the exit status of the process, and destroying (killing) the process. The Runtime.exec methods may not work well for special processes on certain native platforms, such as native windowing processes, daemon processes, Win16/DOS processes on Win32, or shell scripts. The created sub process does not have its own terminal or console. All its standard io (i.e. stdin, stdout, stderr) operations will be redirected to the parent process through three streams(Process.getOutputStream(),Process.getInputStream(),Process. getErrorStream()). The parent process uses these streams to feed input to and get output from the sub process. Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of 48
Project Report
OutputStream: Like InputStream, the abstract class OutputStream provides the fundamental methods used by all its derived stream classes. Also like 49
Project Report
ByteArrayOutputStream: This class is the complement of ByteArrayInputStream in that it allows you to write data into an array of bytes. Except with this output version, the class internally creates and maintains the byte array for you. In fact, it even will expand the byte array as needed. Of course, it also has methods to retrieve the internal byte array at any point as a byte array, string, or Unicode string.FileInputStream:
50
Project Report
The BufferedInputStream's contribution to its attached stream is the addition of a buffer, or cache, to the stream. This has the effect of improving the performance of some input streams, especially those bound to slower sources like a file or network connection. The user can specify the size of the buffer used by
BufferedInputStream when it is created or accept the default of 2048 bytes. It then intercepts your calls to the read methods and attempts to satisfy your request with data in its buffer. If the data in the buffer is not sufficient, a read to the next input stream in the chain is done to fill the buffer and return the data requested. Anytime a read request can be satisfied from the buffer, you have saved a potentially slow read from the attached stream. BufferedInputStream also supports marking and ensures that the mark limit set remains valid.
BufferedOutputStream:
BufferedOutputStream provides the same performance gains that BufferedInputStream does for input streams, but its buffer is used for an output stream. The basic concept is the same. Requests to write to an output stream are cached in an internal buffer. When the internal 51
Project Report
The Administrator should be able to inform the user before performing the terminal operations on the users system. Incase of the user not being available on that system, the administrator can abnormally terminate the system.
The Administrator should be able to search the files by specifying the valid IP address, drive in which the file has to be searched and also the type file that has to be searched. These files are to be listed in a table. The administrator can be able to download the desired file and can also be able to upload the file.
Use of Java in this Project: The concerns for Java security is bound with the power of Java. With Java Applet we can download executable content from open network which brings both exciting advantage and dangerous risk to us. The original Java security model is called sandbox model, which creates a restricted working environment for entrusted code obtained from the
52
Project Report
File System Alternatives for Network Computers: There are several alternatives to NFS that provide some form of file system support on an NC. We briefly discuss each below: Remote method invocation:
53
Project Report
Remote method invocation (RMI), is a mechanism for invoking an object's methods, even though the object is executing on a foreign Java Virtual Machine (JVM). RMI is similar to remote procedure calls (RPCs), but has an added advantage - method signatures can contain Java objects as well as primitive data types. Even objects that a foreign JVM has never encountered before can be used, so new tasks and methods can be passed across a network. The use of Server Socket or Datagram Socket in this system: Datagram Socket allows a server to accept UDP packets, whereas Server Socket allows an application to accept TCP connections. It depends on the protocol you're trying to implement. If you're creating a new protocol, here's a few tips Datagram Sockets communicate using UDP packets. These packets don't guarantee delivery - you'll need to handle missing packets in your client/server. Server Sockets communicate using TCP connections. TCP guarantees delivery, so all you need to do is have your applications read and write using a socket's Input Stream and Output Stream. How do I get the IP address of a machine from its hostname: The InetAddress class is able to resolve IP addresses for you. Obtain an instance of InetAddress for the machine, and call the getHostAddress() method,which returns a string in the address form. InetAddressinet = InetAddress.getByName("www.davidreilly.com"); System.out.println ("IP : " + inet.getHostAddress()); WINDOWS XP:
54
Project Report
involves following procedures: Let us consider the accessing of files between a client and server of heterogeneous file systems.
55
Project Report
Linux).
waits till it gets the permission for authentication from server(say After getting permission, sharing of files is allowed. Thus
RSFS allows to share the files of heterogeneous file systems. IMPLEMENTATION: The main implementation of our project RSFS is to access the heterogeneous file system. To do this the overall process to be done is as follows: Select the network computers in which the file to be accessed of different heterogeneous file system. As soon as selected make the server to the listening mode until it gets the authentication. Then see to that the client is ready to access the files between the server by pressing the yes or no. If it says ok the server and the client can able to access the files. Because it may be of different file format it should be converted to its native code. It wont be transferred by its native file system instead the RSFS will be using that particular file and using the StringTokenizer it converts the whole file to tokens. Then it actually compiles at that time it actually converted as class file so that all machine can access even though it is of different file system.
5. PERFORMANCE EVALUATION/TESTING: Testing is the process of detecting the errors present in the project. It does not stop with just detecting, but continues with the
56
Project Report
57
Project Report
58
Project Report
CONCLUSION: In this project, we have proposed a new concept of accessing files between two different file systems based on native
59
Project Report
code conversion. Current java existing network
Our
system
interoperability and more platform independency and providing the Our implementation results show that, with properly to obtain a better solution model studied in this project. Thus our project java network file system provides the network computers a good security, more platform dependency and interoperability. 6.1 FUTURE ENHANCEMENTS: The proposed system can be extended to problems in future highspeed networks. Enhancement should be made in future in order to allow the all sharing of files for accessing in all drives in a network. Although many researchers had studied the network file system, sharing of files between all drives can be improved especially when there are different network computers. The proposed can be easily extended to solve the above said problem. Based on the proposed system, the only thing we need to change is sharing of files between all files in all drives. So that all files that are not included in share folder should also be accessed. This can be done by extending our proposed java network file system. Second step, all the security can be provided more by extending our proposed system and there by including effective algorithms. handling the
native code conversion, the proposed java network file system is able
SCREENS 60
Project Report
61
Project Report
62
Project Report
63
Project Report
64
Project Report
65
Project Report
66
Project Report
67
Project Report
68
Project Report
69
Project Report
Transferring the client system file to the remote system file of different operating systems:
70
Project Report
The downloaded client file and log file in remote servers download folder:
71
Project Report
References: 1. Brent Callaghan. WebNFS: The Filesystem for the World Wide Web, 3 May 1996. 2. J. Franks et al. An extension to HTTP: Digest access
72
Project Report
authentication, January 1997..
3. John Gartner. Network computer market takes shape. TechTools, 30 April 1997. 4. James Gosling and Henry McGilton. The Java Language Environment: A White Paper. JavaSoft Inc., May 1996. 5. JavaSoft Inc. Remote method invocation specification, May 1997. SunSoft Inc. The NFS distributed file service, March 1995. 6. Peter Madany. JavaOS: A Standalone Java Environment, 1997. 7. J. Postel and J. Reynolds. File transfer protocol, October 1985. 8. Benjamin Renaud. Java Cryptography Architecture API Specification and Reference. JavaSoft Inc., 1997. 10. Gustavus J. Simmons. A survey of information authentication. In Gustavus J. Simmons, editor, Contemporary Cryptology: The Science of Information Integrity, pages 379-419. IEEE Press, 1991.
73