Payment Billing System: Mini Project Report
Payment Billing System: Mini Project Report
1
CANDIDATE DECLARATION
I the undersigned solemnly declare that the project report “Online
Management System” is based on my own work carried out during the course
of our study under the supervision of Mr. Abhishek Singh. I assert the
statements made and conclusions drawn are an outcome of my research work.
I further certify that
I. The work contained in the report is original and has been done
by me under the general supervision of my supervisor.
II. The work has not been submitted to any other Institution for any
other
degree/diploma/certificate in this university or any other
University of India or abroad.
Amarjeet Kumar
DATE
Roll Number 190302106007
Enrollment number 19129212
BCA 5th Semester
SUNDERDEEP COLLEGE OF
MANAGEMENT & TECHNOLOGY
GHAZIABAD
2
INDEX
1. Abstract………………………………
2. Introduction…………………………..
3. Software & Hardware
Specifications……………………….
4. Software Development Life-Cycle………..
5. Design…………………………………….
6. Database Design……………………………
7. Software Environment……………………..
8. Testing……………………………………..
9. Screen shots…………………………………
10. Conclusion…………………………
11. Bibliography………………………..
3
4
1. Absract
The project titled as “PAYMENT BILLING SYSTEM “is a web based application. An
institute have different branches at different locations want to control and maintain the
accountant salary and student personal and payment details. software provides facility for
reporting , new student details, payment details ,and modify details of student and salary of
the accountant.
Modules
Admin of institute
Accountant of each branch
Functional Requirements:
Can search all candidates studying in various branches and can update and delete
them
Accountant details:
Can search the student personal and payment details as per requirement after login
24X7 availability
5
2. Introduction:
System analysis is a process of gathering and interpreting facts, diagnosing problems and the
information to recommend improvements on the system. It is a problem solving activity that
requires intensive communication between the system users and system developers. System
analysis or study is an important phase of any system development process. The system is
studied to the minutest detail and analyzed. The system analyst plays the role of the
interrogator and dwells deep into the working of the present system. The system is viewed
as a whole and the input to the system are identified. The outputs from the organizations are
traced to the various processes. System analysis is concerned with becoming aware of the
problem, identifying the relevant and decisional variables, analyzing and synthesizing the
various factors and determining an optimal or at least a satisfactory solution or program of
action.
A detailed study of the process must be made by various techniques like interviews,
questionnaires etc. The data collected by these sources must be scrutinized to arrive to a
conclusion. The conclusion is an understanding of how the system functions. This system is
called the existing system. Now the existing system is subjected to close study and problem
areas are identified. The designer now functions as a problem solver and tries to sort out the
difficulties that the enterprise faces. The solutions are given as proposals. The proposal is
then weighed with the existing system analytically and the best one is selected. The proposal
is presented to the user for an endorsement by the user. The proposal is reviewed on user
request and suitable changes are made. This is loop that ends as soon as the user is satisfied
with proposal.
Preliminary study is the process of gathering and interpreting facts, using the information for
further studies on the system. Preliminary study is problem solving activity that requires
intensive communication between the system users and system developers. It does various
feasibility studies. In these studies a rough figure of the system activities can be obtained,
from which the decision about the strategies to be followed for effective system study and
analysis can be taken.
6
2.1 Existing System:
In the existing system only we can see the details of particular information about the police
stations in our state, the existing system has more workload for the authorized person, but in
the case of Proposed System, the user can registered in our site and send the crimereport and
complaint about a particular city or person.
7
2.4 Expected Advantages of Proposed System:
The system is very simple in design and to implement. The system requires very low system
resources and the system will work in almost all configurations. It has got following features
Ensure data accuracy’s.
Proper control of the higher officials.
Reduce the damages of the machines.
Minimize manual data entry.
Minimum time needed for the various processing.
Greater efficiency.
Better service.
User friendliness and interactive.
Minimum time required.
Feasibility study is made to see if the project on completion will serve the purpose of the
organization for the amount of work, effort and the time that spend on it. Feasibility study
lets the developer foresee the future of the project and the usefulness. A feasibility study of
a system proposal is according to its workability, which is the impact on the organization,
ability to meet their user needs and effective use of resources. Thus when a new application
is proposed it normally goes through a feasibility study before it is approved for
development.
The document provide the feasibility of the project that is being designed and lists various
areas that were considered very carefully during the feasibility study of this project such as
Technical, Economic and Operational feasibilities. The following are its features:
8
2.4.2 TECHNICAL FEASIBILITY:
The system must be evaluated from the technical point of view first. The assessment of this
feasibility must be based on an outline design of the system requirement in the terms of input,
output, programs and procedures. Having identified an outline system, the investigation must
go on to suggest the type of equipment, required method developing the system, of running
the system once it has been designed.
Technical issues raised during the investigation are:
The project should be developed such that the necessary functions and performance are
achieved within the constraints. The project is developed within latest technology. Through
the technology may become obsolete after some period of time, due to the fact that never
version of same software supports older versions, the system may still be used. So there are
minimal constraints involved with this project. The system has been developed using Java
the project is technically feasible for development.
The developing system must be justified by cost and benefit. Criteria to ensure that effort is
concentrated on project, which will give best, return at the earliest. One of the factors, which
affect the development of a new system, is the cost it would require.
The following are some of the important financial questions asked during preliminary
investigation:
Since the system is developed as part of project work, there is no manual cost to spend
for the proposed system. Also all the resources are already available, it give an indication of
the system is economically possible for development.
9
2.4.4 BEHAVIORAL FEASIBILITY
This includes the following questions:
Is there sufficient support for the users?
Will the proposed system cause harm?
The project would be beneficial because it satisfies the objectives when developed and
installed. All behavioral aspects are considered carefully and conclude that the project is
behaviorally feasible.
10
Processor : Pentium III/AMD Athlone XP
RAM : 128 MB
Hard disk : 20 GB
FDD : 1.44MB
Monitor : 14 inch
Mouse : 3 Button scroll
CD Drive : 52 X
Keyboard : 108 keys
11
The systems development life cycle (SDLC), or software development process in systems
engineering, information systems and software engineering, is a process of creating or
altering information systems, and the models and methodologies that people use to develop
these systems. In software engineering, the SDLC concept underpins many kinds of software
development methodologies. These methodologies form the framework for planning and
controlling the creation of an information system: the software development process.
A Systems Development Life Cycle (SDLC) adheres to important phases that are essential
for developers, such as planning, analysis, design, and implementation, and are explained in
the section below.It include evaluation of present system, information gathering, feasibility
study and request approval. A number of system development life cycle (SDLC) models have
12
been created: waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and
synchronize and stabilize. The oldest of these, and the best known, is the waterfall model: a
sequence of stages in which the output of each stage becomes the input for the next. These
stages can be characterized and divided up in different ways, including the following:
Systems design: Describes desired features and operations in detail, including screen
layouts, business rules, process diagrams, pseudocode and other documentation.
Integration and testing: Brings all the pieces together into a special testing
environment, then checks for errors, bugs and interoperability.
Maintenance: What happens during the rest of the software's life: changes, correction,
additions, moves to a different computing platform and more. This is often the longest
of the stages.
5. DESIGN:
Design is the first step into the development phase for any engineered product or system.
Design is a creative process. A good design is the key to effective system. The term “design”
is defined as “the process of applying various techniques and principles for the purpose of
13
defining a process or a system in sufficient detail to permit its physical realization”. It may
be defined as a process of applying various techniques and principles for the purpose of
defining a device, a process or a system in sufficient detail to permit its physical realization.
Software design sits at the technical kernel of the software engineering process and is applied
regardless of the development paradigm that is used. The system design develops the
architectural detail required to build a system or product. As in the case of any systematic
approach, this software too has undergone the best possible design phase fine tuning all
efficiency, performance and accuracy levels. The design phase is a transition from a user
oriented document to a document to the programmers or database personnel. System design
goes through two phases of development: Logical and Physical Design.
The logical flow of a system and define the boundaries of a system. It includes the
following steps:
Reviews the current physical system – its data flows, file content, volumes ,
Frequencies etc.
Prepares output specifications – that is, determines the format, content and Frequency
of reports.
Prepares input specifications – format, content and most of the input functions.
Prepares edit, security and control specifications.
Specifies the implementation plan.
Prepares a logical design walk through of the information flow, output, input,
Controls and implementation plan.
Reviews benefits, costs, target dates and system constraints.
Physical system produces the working systems by define the design specifications that
tell the programmers exactly what the candidate system must do. It includes the following
steps.
14
Design the physical system.
Specify input and output media.
Design the database and specify backup procedures.
Design physical information flow through the system and a physical design
Plan system implementation.
Prepare a conversion schedule and target date.
Determine training procedures, courses and timetable.
Devise a test and implementation plan and specify any new hardware/software.
Update benefits , costs , conversion date and system constraints
Design/Specification activities:
Concept formulation.
Problem understanding.
High level requirements proposals.
Feasibility study.
Requirements engineering.
Architectural design.
Admin institute
Accountant of each branch
Can search all candidtates studying in various branches and can update and delete
them
15
Accountant details:
Can search the student personal and payment details as per requirement after login
The input design is the link between the information system and the user. It comprises the
developing specification and procedures for data preparation and those steps are necessary
to put transaction data in to a usable form for processing can be achieved by inspecting the
computer to read data from a written or printed document or it can occur by having people
keying the data directly into the system. The design of input focuses on controlling the
amount of input required, controlling the errors, avoiding delay, avoiding extra steps and
keeping the process simple. The input is designed in such a way so that it provides security
and ease of use with retaining the privacy. Input Design considered the following things:
OBJECTIVES:
Input Design is the process of converting a user-oriented description of the input into a
computer-based system. This design is important to avoid errors in the data input process
and show the correct direction to the management for getting correct information from the
computerized system.
It is achieved by creating user-friendly screens for the data entry to handle large
volume of data. The goal of designing input is to make data entry easier and to be
16
free from errors. The data entry screen is designed in such a way that all the data
manipulates can be performed. It also provides record viewing facilities.
When the data is entered it will check for its validity. Data can be entered with
the help of screens. Appropriate messages are provided as when needed so that
the user will not be in maize of instant. Thus the objective of input design is to
create an input layout that is easy to follow
A quality output is one, which meets the requirements of the end user and presents the
information clearly. In any system results of processing are communicated to the users and
to other system through outputs. In output design it is determined how the information is to
be displaced for immediate need and also the hard copy output. It is the most important and
direct source information to the user. Efficient and intelligent output design improves the
system’s relationship to help user decision-making.
The output form of an information system should accomplish one or more of the following
objectives.
o Convey information about past activities, current status or projections of the
Future.
o Signal important events, opportunities, problems, or warnings.
17
o Trigger an action.
o Confirm an action.
18
information about the timing of processes, or information about whether processes will
operate in sequence or in parallel (which is shown on a flowchart).the basic notation used to
create a DFD’s are as follows:
1. Dataflow: data moves in a specific from an origin to a destination.
2. Process: People ,procedures or device that use or produce data. The physical components
not identified.
4 .Data source: here data are store and referenced by a process in the system.
0-LEVEL DFD
19
Details
UserID, pwd
Payment billing
System Accountant
Admin
Add ,delete
Details
UserID, pwd
Payment billing
System students
Accountant
Add ,modify
20
Administrator Registration details
Login Payment
billing View details
System salary
Add Solutions
Feedback
Registration Registration
User
Username/Password
Username/Password
Login
Verify
Login
modify
modified
Modify
details
E- R DIGRAM:
21
Branc Name
h pswd
Sdnt id
Branch
name
Descriptio
information n
Add/delete
Accountant
login
Sdnt id
Name
Payment
Login Student category details
proce
Modified
details
Add/delet
e
6. DATABASE DESIGN:
22
A database is an organized mechanism that has the capability of storing information through
which a user can retrieve stored information in an effective and efficient manner. The data is
the purpose of any database and must be protected.
The database design is a two level process. In the first step, user requirements are gathered
together and a database is designed which will meet these requirements as clearly as possible.
This step is called Information Level Design and it is taken independent of any individual
DBMS.
In the second step, this Information level design is transferred into a design for the specific
DBMS that will be used to implement the system in question. This step is called Physical
Level Design, concerned with the characteristics of the specific DBMS that will be used. A
database design runs parallel with the system design. The organization of the data in the
database is aimed to achieve the following two major objectives.
o Data Integrity
o Data independence
Normalization is the process of decomposing the attributes in an application, which
results in a set of tables with very simple structure. The purpose of normalization is to make
tables as simple as possible. Normalization is carried out in this system for the following
reasons.
To structure the data so that there is no repetition of data , this helps in
saving.
To permit simple retrieval of data in response to query and report request.
To simplify the maintenance of the data through updates, insertions,
Deletions.
To reduce the need to restructure or reorganize data which new application
Requirements arise.
23
A relational model represents the database as a collection of relations. Each relation
resembles a table of values or file of records. In formal relational model terminology, a row
is called a tuple, a column header is called an attribute and the table is called a relation. A
relational database consists of a collection of tables, each of which is assigned a unique name.
A row in a tale represents a set of related values.
A table is a relation. The rows in a table are called tuples. A tuple is an ordered set of n
elements. Columns are referred to as attributes. Relationships have been set between every
table in the database. This ensures both Referential and Entity Relationship Integrity. A
domain D is a set of atomic values. A common method of specifying a domain is to specify
a data type from which the data values forming the domain are drawn. It is also useful to
specify a name for the domain to help in interpreting its values. Every value in a relation is
atomic, that is not decomposable.
RELATIONSHIPS:
o Table relationships are established using Key. The two main keys of prime
importance are Primary Key & Foreign Key. Entity Integrity and Referential Integrity
Relationships can be established with these keys.
o Entity Integrity enforces that no Primary Key can have null values.
o Referential Integrity enforces that no Primary Key can have null values.
o Referential Integrity for each distinct Foreign Key value, there must exist a matching
Primary Key value in the same domain. Other key are Super Key and Candidate Keys.
o Relationships have been set between every table in the database. This ensures both
Referential and Entity Relationship Integrity.
NORMALIZATION:
As the name implies, it denoted putting things in the normal form. The application
developer via normalization tries to achieve a sensible organization of data into proper tables
and columns and where names can be easily correlated to the data by the user. Normalization
24
eliminates repeating groups at data and thereby avoids data redundancy which proves to be
a great burden on the computer resources. These includes:
A relation is said to be in second normal form if and only if it satisfies all the first normal
form conditions for the primary key and every non-primary key attributes of the relation is
fully dependent on its primary key alone.
Third Normal Form:
According to Third Normal Form, Relation should not have a non key attribute
functionally determined by another non key attribute or by a set of non key attributes. That
is, there should be no transitive dependency on the primary key.
25
In this we decompose and set up relation that includes the non key attributes that
functionally determines other non key attributes. This step is taken to get rid of anything that
does not depend entirely on the Primary Key.
A relation is said to be in third normal form if only if it is in second normal form and more
over the non key attributes of the relation should not be depend on other non key attribute.
26
Branch Varchar2 400 -
Date of joining Varchar2 400 -
Branch Varchar2 400 -
Salary Varchar2 400 -
27
computer applications that crunch numbers, process words, play games, store data or do any
of the thousands of other things computer software can do.
Special programs called applets that can be downloaded from the internet and played safely
within a web browser. Java a supports this application and the follow features make it one of
the best programming languages.
The original and reference implementation Java compilers, virtual machines, and class
libraries were developed by Sun from 1995. As of May 2007, in compliance with the
specifications of the Java Community Process, Sun made available most of their Java
technologies as free software under the GNU General Public License. Others have also
developed alternative implementations of these Sun technologies, such as the GNU Compiler
for Java and GNU Class path.
The Java language was created by James Gosling in June 1991 for use in a set top box project.
The language was initially called Oak, after an oak tree that stood outside Gosling's office -
and also went by the name Green - and ended up later being renamed to Java, from a list of
random words. Gosling's goals were to implement a virtual machine and a language that had
a familiar C/C++ style of notation.
Primary goals
There were five primary goals in the creation of the Java language:
28
1. It should use the object-oriented programming methodology.
2. It should allow the same program to be executed on multiple operating systems.
3. It should contain built-in support for using computer networks.
4. It should be designed to execute code from remote sources securely.
5. It should be easy to use by selecting what were considered the good parts of other
object-oriented languages.
The Java platform is the name for a bundle of related programs, or platform,
from Sun which allow for developing and running programs written in the Java programming
language. The platform is not specific to any one processor or operating system, but rather
an execution engine (called a virtual machine) and a compiler with a set of standard libraries
which are implemented for various hardware and operating systems so that Java programs
can run identically on all of them.
29
The essential components in the platform are the Java language compiler, the libraries, and
the runtime environment in which Java intermediate bytecode "executes" according to the
rules laid out in the virtual machine specification.
The heart of the Java Platform is the concept of a "virtual machine" that executes
Java bytecode programs. This bytecode is the same no matter what hardware or operating
system the program is running under. There is a JIT compiler within the Java Virtual
Machine, or JVM. The JIT compiler translates the Java bytecode into native processor
instructions at run-time and caches the native code in memory during execution.
30
Class libraries
The Java class libraries serve three purposes within the Java Platform. Like
other standard code libraries, they provide the programmer a well-known set of functions to
perform common tasks, such as maintaining lists of items or performing complex string
parsing. In addition, the class libraries provide an abstract interface to tasks that would
normally depend heavily on the hardware and operating system. Tasks such as network
access and file access are often heavily dependent on the native capabilities of the platform.
The Java java.net and java.io libraries implement the required native code internally, then
provide a standard interface for the Java applications to perform those tasks. Finally, when
some underlying platform does not support all of the features a Java application expects, the
class libraries can either emulate those features using whatever is available, or at least provide
a consistent way to check for the presence of a specific feature.
Platform independence
One characteristic, platform independence, means that programs written in the Java language
must run similarly on any supported hardware/operating-system platform. One should be
able to write a program once, compile it once, and run it anywhere.
This is achieved by most Java compilers by compiling the Java language code halfway (to
Java bytecode) – simplified machine instructions specific to the Java platform. The code is
then run on a virtual machine (VM), a program written in native code on the host hardware
that interprets and executes generic Java bytecode. (In some JVM versions, bytecode can
also be compiled to native code, either before or during program execution, resulting in faster
31
execution.) Further, standardized libraries are provided to allow access to features of the host
machines (such as graphics, threading and networking) in unified ways. Note that, although
there is an explicit compiling stage, at some point, the Java bytecode is interpreted or
converted to native machine code by the JIT compiler.
The first implementations of the language used an interpreted virtual machine to achieve
portability. These implementations produced programs that ran more slowly than programs
compiled to native executables, for instance written in C or C++, so the language suffered a
reputation for poor performance. More recent JVM implementations produce programs that
run significantly faster than before, using multiple techniques.
Another technique, commonly known as static compilation, is to compile directly into native
code like a more traditional compiler. Static Java compilers, such as GCJ, translate the Java
language code to native object code, removing the intermediate byte code stage. This
achieves good performance compared to interpretation, but at the expense of portability; the
output of these compilers can only be run on a single architecture. Some see avoiding the
VM in this manner as defeating the point of developing in Java; however it can be useful to
provide both a generic byte code version, as well as an optimized native code version of an
application.
32
One of the ideas behind Java's automatic memory management model is that programmers
be spared the burden of having to perform manual memory management. In some languages
the programmer allocates memory for the creation of objects stored on the heap and the
responsibility of later deallocating that memory also resides with the programmer. If the
programmer forgets to deallocate memory or writes code that fails to do so, a memory leak
occurs and the program can consume an arbitrarily large amount of memory. Additionally,
if the program attempts to deallocate the region of memory more than once, the result is
undefined and the program may become unstable and may crash. Finally, in non garbage
collected environments, there is a certain degree of overhead and complexity of user-code to
track and finalize allocations. Often developers may box themselves into certain designs to
provide reasonable assurances that memory leaks will not occur.
In Java, this potential problem is avoided by automatic garbage collection. The programmer
determines when objects are created, and the Java runtime is responsible for managing the
object's lifecycle. The program or other objects can reference an object by holding a reference
to it (which, from a low-level point of view, is its address on the heap). When no references
to an object remain, the Java garbage collector automatically deletes the unreachable object,
freeing memory and preventing a memory leak. Memory leaks may still occur if a
programmer's code holds a reference to an object that is no longer needed—in other words,
they can still occur but at higher conceptual levels.
The use of garbage collection in a language can also affect programming paradigms. If, for
example, the developer assumes that the cost of memory allocation/recollection is low, they
may choose to more freely construct objects instead of pre-initializing, holding and reusing
them. With the small cost of potential performance penalties (inner-loop construction of
large/complex objects), this facilitates thread-isolation (no need to synchronize as different
threads work on different object instances) and data-hiding. The use of transient immutable
value-objects minimizes side-effect programming.
Comparing Java and C++, it is possible in C++ to implement similar functionality (for
example, a memory management model for specific classes can be designed in C++ to
improve speed and lower memory fragmentation considerably), with the possible cost of
adding comparable runtime overhead to that of Java's garbage collector, and of added
development time and application complexity if one favors manual implementation over
using an existing third-party library. In Java, garbage collection is built-in and virtually
33
invisible to the developer. That is, developers may have no notion of when garbage collection
will take place as it may not necessarily correlate with any actions being explicitly performed
by the code they write. Depending on intended application, this can be beneficial or
disadvantageous: the programmer is freed from performing low-level tasks, but at the same
time loses the option of writing lower level code. Additionally, the garbage collection
capability demands some attention to tuning the JVM, as large heaps will cause apparently
random stalls in performance.
Java does not support pointer arithmetic as is supported in, for example, C++. This is because
the garbage collector may relocate referenced objects, invalidating such pointers. Another
reason that Java forbids this is that type safety and security can no longer be guaranteed if
arbitrary manipulation of pointers is allowed.
Performance
Java's performance has improved substantially since the early versions, and
performance of JIT compilers relative to native compilers has in some tests been shown to
be quite similar. The performance of the compilers does not necessarily indicate the
performance of the compiled code; only careful testing can reveal the true performance issues
in any system.
The Java Runtime Environment, or JRE, is the software required to run any
application deployed on the Java Platform. End-users commonly use a JRE in software
packages and Web browser plug-in. Sun also distributes a superset of the JRE called the Java
2 SDK (more commonly known as the JDK), which includes development tools such as the
Java compiler, Java doc, Jar and debugger.
One of the unique advantages of the concept of a runtime engine is that errors
(exceptions) should not 'crash' the system. Moreover, in runtime engine environments such
34
as Java there exist tools that attach to the runtime engine and every time that an exception of
interest occurs they record debugging information that existed in memory at the time the
exception was thrown (stack and heap values). These Automated Exception Handling tools
provide 'root-cause' information for exceptions in Java programs that run in production,
testing or development environments.
35
method calls with parameters and return values as if the object (service) were to be on the
local host. Objects are transmitted through serialization.
RMI is the object equivalent of Remote Procedure Call (RPC). While RPC
allows you to all procedures over a network, RMI invokes an object’s methods over a
network. In the RMI model, the server defines object’s methods over a network. In the
RMI model, the server defines objects that the client can use remotely. The clients can
now invoke methods of this remote object as if it were a local objects running in the same
virtual machine as the client. RMI hides the underlying mechanism of transporting method
arguments and return values across the network. In Java-RMI, an argument or return value
can be of any primitive Java type or any other Serializable Java object.
RMI Server
RMI Client
RMI Registry
RMI Server
RMI Server contains the objects whose methods are to be invoked remotely.
The server creates several remote objects and makes a reference of these objects in the
36
RMI registry. (The remote object is an ordinary object in the address space of the server
process).
RMI Client
Te client is the process that is invoking a method on a remote object. The
client gets the reference of one or more remote objects from the RMI registry by looking
up the object name. The client then invokes the methods on the remote objects to access
the services of the remote objects.
Once the client gets the reference of the remote object, the methods in the
remote object are invoked just like the methods of a local object. The difference cannot be
identified in terms of whether the methods are invoked on the remote object or are invoked
on the local objects in the client.
RMI Registry
Since both the client and the server may reside on different machine/processes,
there needs to be a mechanism that can establish a relationship between the two. Java RMI
uses a network based registry program called RMI Registry to keep track of the distributed
objects.
RMI Registry is a service that runs on the RMI server. The remote objects
(server objects) created by the server are registered by the object’s unique name in this
registry. In other words, the server object makes methods available for remote invocation
by binding it to a name in the RMI Registry. The client object , can thus check for the
availability of a certain server object by looking up its name in the registry. The RMI
Registry will act as a central management point for Java RMI. RMI Registry is a simple
name repository. RMI Registry does not address the problem of actually invoking remote
methods. Only methods in the remote interface can be invoked. To start the RMI Registry
on the server, execute the start rmiregistry command prompt. By defaults the registry runs
on port 1099.
If the registry is running on a different port , i.e other than 1099, you need
to specify the port number in the URL string specified in the rebind() method of the
Naming class. You must stop and restart the rmiregistry service whenever you modify the
remote interface.
37
RMI Architecture
The RMI architecture consists of three layers
Stub/Skeleton Layer
Remote Reference Layer
Transport Layer
JVM JVM
Client
Server
Stub
Skeleton
Remote Reference
Remote Reference
rereremotrereere
Layer
Transport Layer
Transport Layer
Stub
Stub resides in the client machine. To invoke methods of a remote object, the request
on the client side starts with the stub. The stub acts as a proxy to the skeleton. When a
client invokes a server method, the JVM looks at the stub to do the type checking. The
38
request is then routed to the skeleton on the server, which in turn calls the appropriate
method on the server object.
The stub packages a block of bytes, which should be the parameters in the remote
method. This package uses a device-independent encoding of the parameters used. This
process of encoding the parameters is called parameter marshalling.
When the client calls a remote method, the stub is invoked and it does the following:
Skeleton
Skeleton resides on the server machine. Stub communicates the method invocations to
the remote object through the skeleton.
Skeleton is a server side proxy that continues communication with the stub y reading the
parameters for the call, making the call to the remote service implementation object,
accepting the return value and writing the return value back to the stub.
The Skeleton in turn unmarshals and deserializes the data on the remote machine and
passes the data to the actual method implementation. After the method completes, the
return value is delivered back to the client in the reverse order.
39
The Remote Reference Layer interprets and manages the references made by the client
to the remote object on the server. This layer is present on the client as well as the server.
The RRL on the client-side receives the request for the methods from the stub that is
transferred as a marshaled stream of data to the RRL of the server.
Transport Layer:
The transport layer is a link between the RRL on the server side and the RRL on the
client side. The Transport Layer is responsible for setting up new connections. Its also
responsible for handling remote objects that residing in its address space.
RMI Packages
java.rmi
java.rmi.registry
java.rmi.server
Although a J2EE application can consist of the three or four tiers shown in Figure 1-1, J2EE
multitier applications are generally considered to be three-tiered applications because they
are distributed over three different locations: client machines, the J2EE server machine, and
the database or legacy machines at the back end. Three-tiered applications that run in this
way extend the standard two-tiered client and server model by placing a multithreaded
application server between the client application and back-end storage.
40
Figure 1-1 Multitiered Applications
J2EE Components
J2EE applications are made up of components. A J2EE component is a self-contained
functional software unit that is assembled into a J2EE application with its related classes and
files and that communicates with other components. The J2EE specification defines the
following J2EE components:
Application clients and applets are components that run on the client.
Java Server and Java Server Pages (JSP) technology components are Web
components that run on the server.
Enterprise JavaBeans (EJB) components (enterprise beans) are business components
that run on the server.
J2EE components are written in the Java programming language and are compiled in the
same way as any program in the language. The difference between J2EE components and
"standard" Java classes is that J2EE components are assembled into a J2EE application,
verified to be well formed and in compliance with the J2EE specification, and deployed to
production, where they are run and managed by the J2EE server.
J2EE Clients
A J2EE client can be a Web client or an application client.
41
Web Clients
A Web client consists of two parts: dynamic Web pages containing various types of markup
language (HTML, XML, and so on), which are generated by Web components running in
the Web tier, and a Web browser, which renders the pages received from the server.
A Web client is sometimes called a thin client. Thin clients usually do not do things like
query databases, execute complex business rules, or connect to legacy applications. When
you use a thin client, heavyweight operations like these are off-loaded to enterprise beans
executing on the J2EE server where they can leverage the security, speed, services, and
reliability of J2EE server-side technologies.
Applets :
A Web page received from the Web tier can include an embedded applet. An applet is a small
client application written in the Java programming language that executes in the Java virtual
machine installed in the Web browser. However, client systems will likely need the Java
Plug-in and possibly a security policy file in order for the applet to successfully execute in
the Web browser.
Web components are the preferred API for creating a Web client program because no plug-
ins or security policy files are needed on the client systems. Also, Web components enable
cleaner and more modular application design because they provide a way to separate
applications programming from Web page design. Personnel involved in Web page design
thus do not need to understand Java programming language syntax to do their jobs.
Application Clients :
A J2EE application client runs on a client machine and provides a way for users to handle
tasks that require a richer user interface than can be provided by a markup language. It
typically has a graphical user interface (GUI) created from Swing or Abstract Window
Toolkit (AWT) APIs, but a command-line interface is certainly possible.
Application clients directly access enterprise beans running in the business tier. However, if
application requirements warrant it, a J2EE application client can open an HTTP connection
to establish communication with a servlet running in the Web tier.
42
database. JavaBeans components are not considered J2EE components by the J2EE
specification.
JavaBeans components have instance variables and get and set methods for accessing the
data in the instance variables. JavaBeans components used in this way are typically simple
in design and implementation, but should conform to the naming and design conventions
outlined in the JavaBeans component architecture.
43
J2EE Web components can be either servlets or JSP pages. Servlets are Java programming
language classes that dynamically process requests and construct responses. JSP pages are
text-based documents that execute as servlets but allow a more natural approach to creating
static content. Static HTML pages and applets are bundled with Web components during
application assembly, but are not considered Web components by the J2EE specification.
Server-side utility classes can also be bundled with Web components and, like HTML pages,
are not considered Web components. Like the client tier and as shown in Figure 1-3, the Web
tier might include a JavaBeans component to manage the user input and send that input to
enterprise beans running in the business tier for processing.
44
1. Figure 1-4 Business and EIS Tiers
There are three kinds of enterprise beans: session beans, entity beans, and message-driven
beans. A session bean represents a transient conversation with a client. When the client
finishes executing, the session bean and its data are gone. In contrast, an entity bean
represents persistent data stored in one row of a database table. If the client terminates or if
the server shuts down, the underlying services ensure that the entity bean data is saved.
A message-driven bean combines features of a session bean and a Java Message Service
(JMS) message listener, allowing a business component to receive JMS messages
asynchronously. This tutorial describes entity beans and session beans.
Enterprise Information System Tier
The enterprise information system tier handles enterprise information system
software and includes enterprise infrastructure systems such as enterprise resource planning
(ERP), mainframe transaction processing, database systems, and other legacy information
systems. J2EE application components might need access to enterprise information systems
for database connectivity
Java Server Pages (JSP):
Java Server Pages technology is the Java platform technology for building applications
containing dynamic Web content such as HTML, DHTML and XML. The Java Server Pages
technology enables the authoring of Web pages that create dynamic content easily but with
maximum power and flexibility.
45
The Java Server Pages technology offers a number of advantages:
Write Once, Run Anywhere properties:
The Java Server Pages technology is platform independent, both in its dynamic Web
pages, its Web servers, and its underlying server components. You can author JSP pages
on any platform, run them on any Web server or Web enabled application server, and
access them from any Web browser. You can also build the server components on any
platform and run them on any server.
46
JSP architecture
JSPs are built on top of SUN’s servlet technology. JSPs are essential an HTML page with
special JSP tags embedded. These JSP tags can contain Java code. The JSP file extension is
.jsp rather than .htm or .html. The JSP engine parses the .jsp and creates a Java servlet source
file. It then compiles the source file into a class file; this is done the first time and this why
the JSP is probably slower the first time it is accessed. Any time after this the special
compiled servlet is executed and is therefore returns faster.
Java Script
JavaScript is a programming language that allows scripting of events, objects, and actions
to create Internet applications. A website development environment that will allow the
creation of Interactive Web Pages. The coding techniques capable of accepting a client's
requests and processing these requests.
The web site development environment should also provide the facility for 'validating' user
input. With JavaScript, forms are a consideration in nearly every page you design. Capturing
user requests is traditionally done via a 'form'. So the web site needs to have facilities to
create forms. Text fields and text areas can dynamically change in response to user responses.
TOMCAT 5.0
Tomcat is a servlet container and Java Server Pages implementation it may be used stand
alone ,or in conjunction with several popular web servers .
47
FEATURES OF O.S :
This project work is done on the windows 2000 professional, which is the operating
system. An operating system is a set of software tools designed to make it easy for people or
programmers to make optimum use of the computer. People who use computers have
different levels of needs and interest. These peoples can be separated can be two groups,
users and programmers. The user wants a convenient set of commands to manage files of
data or programs, copy and run application package while a programmer used as a set of
tools that can be held together and debug programs.
No matter where you are working, your computer will be easier to use and manage,
because Microsoft Windows 2000 Professional is more compatible and more powerful than
any workstation you’ve used before. The main features of Windows 2000 Professional
operating system are
Easier to use.
Easier to manage
More compatible
More powerful
EASIER TO USE
With Windows 2000 Professional, you have faster access to information, and you arte
able to accomplish tasks more quickly and easily.
Windows 2000 Professional makes it easier to:
48
Set up.
Administrator
Support.
MORE COMPATIBLE:
Windows 2000 Professional offers increased compatibility with different types of
network and with a wide array of legacy hardware and software.
Windows 2000 also provides:
MORE POWERFUL:
For all your computing needs, Windows 2000 Professional provides:
Industrial-strength reliability
The highest level of security
Powerful performance
Windows 2000 also contains the following features:
PORTABILITY:
Windows file protection protects core system files from being overwritten by
application installs.
Driver certification provides safeguards to assure you that device drivers have not
been tampered with and reduces your risk of installing non-certified drivers.
Full 32 bit operating system minimizes the chance of application failures and
unplanned reboots.
MOBILITY
49
Hibernate turns off your computer and monitors after a predetermined time while
retaining your desktop on disk.
Offline viewing makes entire WebPages with graphics available for viewing offline
Synchronization manager allows you to compare and update your offline files and
folders with those on the network.
Smart battery gives you a more accurate view of your battery’s life enabling you to
reduce power to specify functions to extend your battery power.
Hot docking tells you dock or undock your notebook computer without changing
hardware configuration or rebooting.
Universal Serial Bus (USB) lets you connect and disconnect a wide array of
peripherals such as joysticks, scanners and camcorders without configuring or
rebooting your computer.
J2EE 1394 provides a higher band width connection for devices that require faster
data transfer.
MAINTAINABILITY
System preparation tool (sys prep) helps administrators clone computer configuration
systems and applications.
Set up manager provides a graphical wizard that guides administrators in designing
installation scripts.
Multilingual support allows users to easily create, read and edit documentation in
hundreds of languages.
Windows 2000 server offers 25% faster performance than Windows 95 or Windows
98 on systems with 64MB or more of memory.
32 bit architecture allows you to run more programs and perform more faster at the
same time than Windows 95 or 98.
Windows 2000 can support to 4GB of Ram and two symmetric multiprocessors.
Encrypting file system (EFS) encrypts each file with a randomly generated key.
IP Security (IP Sec) support protected data transmitted across a network.
Kerberos support provides industry standard high-strength authentication with a fast,
single login to windows 2000 enterprise resources.
INTERNET CAPABILITY
50
Internet Information Services (IIS) 5.0 includes web and FTP server support, as well
as support for Front-page transactions, Active Server Pages (ASP) and database
connections.
Windows 2000 has strong development platform support for dynamic HTML
behaviors and XML.
Intelliforms alleviates the tedious of filling out forms on the web by automatically
entering your name, address or other information that you have securely stored on
your computer.
Automated proxy automatically locates a proxy server configures Internet Explorer
5.0 to connect to the internet through the server.
8. Testing :
Software testing should not be confused with debugging. Debugging is the process of
analyzing and localizing bugs when software does not behave as expected. Although the
identification of some bugs will be obvious from playing with the software, a methodical
approach to software testing is a much more thorough means for identifying bugs. Debugging
is therefore an activity which supports testing, but cannot replace testing.
51
Other activities which are often associated with software testing are static analysis and
dynamic analysis. Static analysis investigates the source code of software, looking for
problems and gathering metrics without actually executing the code. Dynamic analysis
looks at the behavior of software while it is executing, to provide information such as
execution traces, timing profiles, and test coverage information.
Testing is a set of activity that can be planned in advanced and conducted systematically.
Testing begins at the module level and work towards the integration of entire computers
based system. Nothing is complete without testing, as it vital success of the system testing
objectives, there are several rules that can serve as testing objectives. They are
Test for correctness are supposed to verify that a program does exactly what it was designed
to do. This is much more difficult than it may at first appear, especially for large programs.
8.1 TEST PLAN
A test plan implies a series of desired course of action to be followed in accomplishing
various testing methods. The Test Plan acts as a blue print for the action that is to be followed.
The software engineers create a computer program, its documentation and related data
structures. The software developers is always responsible for testing the individual units of
the programs, ensuring that each performs the function for which it was designed. There is
an independent test group (ITG) which is to remove the inherent problems associated with
52
letting the builder to test the thing that has been built. The specific objectives of testing should
be stated in measurable terms. So that the mean time to failure, the cost to find and fix the
defects, remaining defect density or frequency of occurrence and test work-hours per
regression test all should be stated within the test plan.
The levels of testing include:
Unit testing
Integration Testing
Data validation Testing
Output Testing
Unit testing focuses verification effort on the smallest unit of software design – the
software component or module. Using the component level design description as a guide,
important control paths are tested to uncover errors within the boundary of the module. The
relative complexity of tests and uncovered scope established for unit testing. The unit testing
is white-box oriented, and step can be conducted in parallel for multiple components. The
modular interface is tested to ensure that information properly flows into and out of the
program unit under test. The local data structure is examined to ensure that data stored
temporarily maintains its integrity during all steps in an algorithm’s execution. Boundary
conditions are tested to ensure that all statements in a module have been executed at least
once. Finally, all error handling paths are tested.
Tests of data flow across a module interface are required before any other test is initiated.
If data do not enter and exit properly, all other tests are moot. Selective testing of execution
paths is an essential task during the unit test. Good design dictates that error conditions be
anticipated and error handling paths set up to reroute or cleanly terminate processing when
an error does occur. Boundary testing is the last task of unit testing step. Software often fails
at its boundaries.
53
Unit testing was done in Sell-Soft System by treating each module as separate entity and
testing each one of them with a wide spectrum of test inputs. Some flaws in the internal logic
of the modules were found and were rectified.
Integration testing is systematic technique for constructing the program structure while at
the same time conducting tests to uncover errors associated with interfacing. The objective
is to take unit tested components and build a program structure that has been dictated by
design. The entire program is tested as whole. Correction is difficult because isolation of
causes is complicated by vast expanse of entire program. Once these errors are corrected,
new ones appear and the process continues in a seemingly endless loop.
After unit testing in Sell-Soft System all the modules were integrated to test for any
inconsistencies in the interfaces. Moreover differences in program structures were removed
and a unique program structure was evolved.
This is the final step in testing. In this the entire system was tested as a whole with all
forms, code, modules and class modules. This form of testing is popularly known as Black
Box testing or System tests.
Black Box testing method focuses on the functional requirements of the software. That
is, Black Box testing enables the software engineer to derive sets of input conditions that will
fully exercise all functional requirements for a program.
Black Box testing attempts to find errors in the following categories; incorrect or missing
functions, interface errors, errors in data structures or external data access, performance
errors and initialization errors and termination errors.
The system considered is tested for user acceptance; here it should satisfy the firm’s need.
The software should keep in touch with perspective system; user at the time of developing
and making changes whenever required. This done with respect to the following points
54
Input Screen Designs,
Output Screen Designs,
Online message to guide the user and the like.
The above testing is done taking various kinds of test data. Preparation of test data plays a
vital role in the system testing. After preparing the test data, the system under study is tested
using that test data. While testing the system by which test data errors are again uncovered
and corrected by using above testing steps and corrections are also noted for future use.
Validation Checking:
55
9. SCREEN SHOTS:
Home Page:
56
Admin Login:
57
On Filling Incorrect Details:
58
On Filling Correct Details:
59
Create new accountant page :
60
After creating accountant each accountant can login through welcome
page. And admin can browse any accountant as follows:
61
Accountant Login:
62
Searching Records:
63
To modify detail first find the record you want to modify it as follows:
64
Query to Admin:
10. Conclusion :
65
The project titled as “payment billing system” is a web based application. This software
provides facility for, create ,update and delete accountants details after login . it can search
branch wise accountant. And also search all candidates studying in the various branches and
can update and delete them The software is developed with modular approach. All modules
in the system have been tested with valid data and invalid data and everything work
successfully. Thus the system has fulfilled all the objectives identified and is able to replace
the existing system.
The project has been completed successfully with the maximum satisfaction of the
organization. The constraints are met and overcome successfully. The system is designed as
like it was decided in the design phase. The project gives good idea on developing a full-
fledged application satisfying the user requirements.
The system is very flexible and versatile. This software has a user-friendly screen that
enables the user to use without any inconvenience. Validation checks induced have greatly
reduced errors. Provisions have been made to upgrade the software.
In future we can use photo reorganization instead of using heterogeneous database more
over High speed, accuracy and non-redundant data are the main advantages of the proposed
system. In the proposed system the user is provided with a choice of data screen, which are
similar in formats to the source documents. Data entry errors can be minimized through
validity checks. After the verification only the data are placed the permanent database. The
software can be developed further to include a lot of modules because the proposed system
is developed on the view of future, for example we should develop the system as a database
independent using JDBC so we can connect it to any other database, Now the proposed
system is based on PC and intranet but in the future if we need to convert it into internet then
we need to change the front end only because we are developing this on the basis of OOP
technology and most of the business logic’s are bounded in the class files and module like
reusable components.
66
12. Bibliography
BOOKS:
Charles Hampfed (2000) ‘Instant Java Server Pages’ University of Toronto
Herbert Schildt (2000) ‘Java Complete Reference’ Tata McGraw Hill
John Zukowski (2000) ‘Mastering Java2’ BPB Publications
Jamie Jaworsky ‘J2EE Bible’ Techmedia
Stefen Denninger ‘Enterprise Java Beans-2.1’ Author’s Press
Ian Somerville ‘Software engineering’
Rajeev mall ‘Software engineering’
Elmasri Navathe ‘Fundamentals of database systems’
ONLINE REFERENCE:
www.java.sun.com
www.w3schools.com
www.wikipedia.com
67