You are on page 1of 50

CHAPTER 1 INTRODUCTION 1.

1 Company Profile Cache Next Generation Cache Next Generation is an emerging IT consulting firm, striving to provide outstanding professional services to our clients irrespective of where we operate. CNG's slogan has always been as 'Clients are our Bosses'. People within CNG family abide by this slogan and tries to provide range of professional services that help clients to meet their business challenges. Cng is a global software solutions provider and technology staffing company, delivering it staffing services, software services to the manufacturing, banking & financial services, insurance, healthcare, utilities, telecom, and technology industries. we integrate business and technology through domain focused, cost effective solutions delivered on platforms of the choice of our clients. Cng's success is dependent on the quality of our people; hence its human resources are drawn from various backgrounds after careful screening, and live by the set of shared values of the company. our people are our key asset, with this in mind cng provides a good working environment to them where they get an equal opportunity to learn and develop their skills. we help them to perform the best they can this provides us with versatile pool of resources to provide clients with a wide range of perspectives, experience, ideas and capabilities. our key differentiator is our commitment in combining domain and technology expertise in our business operations. experienced domain professionals occupy critical management, business development and research positions across our practices. they are, in equal measure, aided by skilled technical experts who ensure successful state-of-the-art productisation of future-centric concepts.

1.2 Abstract

Resilience Manage Prison is generally a collection of criminal and staff records in a systematic order which is fully computerized and also reduces the workload. In the existing system only we can see the details of particular information about the prisoners details manually, the existing system has more workload for the authorized person. The main objective of this project RESILIENCE MANAGE PRISON is to develop a prison management system that is a collection of registers and reports for the effective management of prisons. Besides this police and government officials can see crime/criminals report for their purpose. It provides a user friendly way of managing various records related to prison and prisoner over the internet in a secure way. The central repository enables to track account- level data, fund details, all in-out information and session details. This enables prison administrator to discharge their duties in an efficient and easy manner. This project provides user friendly GUI Environment to Administrators for Backup, Restoring and Recovery. Optimized use of Incremental Backup feature for efficient and faster Backups of In-Out Registers. It also provides Better password management ,server security are implemented to ensure sensitive government records are protected.

1.3 Problem Definition

In this project it was difficult to find the Criminals records and maintain the database. Gate keeper is a module which has taken care in maintaining all the In/Out details of the users as well as the staffs. It was difficult for Government officials to view the details of the criminals all over the india.

CHAPTER 2

SYSTEM ANALYSIS 2.1 Existing System In the existing system only we can see the details of particular information about the prisoners details manually, the existing system has more workload for the authorized person. but in the case of Proposed System, all the documents have been maintained separately. Drawbacks All the records are to be maintain by manually. More workload and mental conflict should be handled while maintaining database

2.2 Proposed System The aim of proposed system is to develop a system of improved facilities. The proposed system can overcome all the limitations of the existing system. The system provides proper security and reduces the manual work. The existing system has several disadvantages and many more difficulties to work well. The proposed system tries to eliminate or reduce these difficulties up to some extent. The proposed system will help the user to reduce the workload and mental conflict. The proposed system helps the user to work user friendly and he can easily do his jobs without time lagging. The system provides the following facilities. Authenticate all user of the system. Track all the visitors their contact details. Track all the staff, non-staff and prisoner in out details

2.3 User Interface Requirements Main Modules Super User Gate Keeper Jail admin Data Manager Police officers Government officials

Gate Keeper Gate keeper task is to maintain the logging details. To record the police officers, prisoners, and visitors in and out time details

Jail Admin Jail admin handle a specific database for maintain behavior of all prisoners. To generate report for all prisoners.

Data Manager The data manager has the highest privilege in this project. To add OR remove prisoner or police records.

Police Officers Every police have rights to search a prisoner details about. The Warden also have the same rights to search the prisoner details.

Government Officials In this module we can make a report about prisoner in all over india.

CHAPTER 3 DEVELOPMENT ENVIRONMENT 3.1 Hardware Requirement Processor Hard Disk Ram Monitor Mouse Keyboard : : : : : : Intel Dual Core 20 GB 512 MB Color Optical 102 Keys

3.2 Software Requirement Operating System Languages Front End Platform Web Servers Backend Browser Program : : : : : : : Windows 2000/xp java2(JDBC,JSP,Servlet) HTML, JavaScript J2EE Web Logic8.1/Tomcat 5.0 My SQL Internet explorer/Mozilla Fireworks

CHAPTER 4 SYSTEM DESIGN 4.1 Data Model 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 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.

4.1.1 Entity Relationship Diagram

Figure 4.1.1.1 ER Diagram

4.1.2 Data Dictionay

Table Name: User Registration Fieldname Name Username Password Secret question Answer Address Pincode Phone Email Village Taluk District State Data Type Varchar Varchar Varchar Varchar Varchar Varchar Integer Integer Varchar Varchar Varchar Varchar Varchar Length 20 20 20 50 50 50 9 10 30 15 15 15 15 Key Primary key -

Table 4.1.2.1 User Registration Table Name: Login Fieldname Username Password Data Type Varchar Varchar Length 20 25 Key Primary key -

Table 4.1.2.2 Login

10

Table Name: Staff Fieldname Staffid Reason Intime Outtime Date1 Data Type Varchar Varchar Time Time Date Length 15 15 Key Primary Key -

Table 4.1.2.3 Staff

Table Name: nonstaff Fieldname Name Reason Intime Outtime Date1 Data Type Varchar Varchar Time Time Date Length 15 15 Key Primary Key -

Table 4.1.2.4 Nonstaff

Table Name: Prisoner_In/Out

11

Fieldname Pri_id Reason Intime Outtime Date1

Data Type Varchar Varchar Time Time Date

Length 15 15 -

Key Primary Key -

Table 4.1.2.5 Prisoner_In/Out Table Name: prisoner Fieldname Pri_id FIRno Caseno Jno Indate Remand Releasedate Data Type Varchar Time Date Varchar Date Varchar Date Length 15 20 20 Key Primary Key -

Table 4.1.2.6 Prisoner

12

Table Name:staff_report Fieldname staff_id Intime Date Data Type Varchar Time Date Length 15 Key Primary Key -

Table 4.1.2.7 Staff_Report

Table Name:nonstaff_report Fieldname Name Intime Date Data Type Varchar Time Date Length 15 Key Primary Key -

Table 4.1.2.8 Nonstaff_Report

13

4.1.3 Logical 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.

4.1.4 Physical Data Design 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. 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

14

4.2 Process Model 4.2.1Context Analysis

UserID,

Record Management

User

Administrator Manage prison Solutions

Figure 4.2.1.1 Context Analysis Diagram

15

4.2.2 Use Case Diagram


Create Prisoner

Add parole register

Add staff details

Data Manager

Add Interview register

Add duty register

Dairy generator

Staff IN/ OUT register

Non staff IN/ OUT register

Prisoner IN/ OUT register Gate Keeper Modify IN OUT register /

Report generate

Figure 4.2.2.1 Use Case Diagram

16

4.2.3 Data Flow Diagram DFD- Administrator

Data Manager
Gate Keeper

In/Out Details

Gate details

Logi n

Police

Police Details

Police Details

Prison Prisoner Details

Prisoner DetaIls

Report Generatio n View Reports

Add Reports

Reports

User

Figure 4.2.3.1 DFD Diagram

17

4.2.4 Sequence Diagram

18

Po e lic

S p rU r u e se

Ja A m il d in

G v rn e t O e o e m n ffic

G kee ate e p r

D ta m n g r a aae

1 : L g () o in

2 : p g d la e () a e isp y d 3: S a h fo p n r() e rc r risio e

4 : V wp ie risio e d ta n r e ils() 5 : Exp rt to PD o F()

6 : S n p te m ssa e e d riva e g () 7 : Fin in d r() d tru e

8 : v wlo p file ie g ro s()

9 : Ad o re o e p d r m v risio e a d u r() n r n se

1 : M d d list() 0 o ifie 1 : G n ra re o fo p 1 e e te p rt r risio e n r()

1 : vie d ry g n ra r() 2 w ia e e to 1 :G e 3 en rate re o a o e in ia p rt ll v r d ()

1 : Re o v w d 4 p rt ie e () 1 : M rk sta a d n n ff in u re iste 5 a s ff n o sta o t g r()

1 : M rk p 6 a s risio e in u re iste n r o t g r()

1 : u d te in u re iste 7 pa o t g r()

1 : G n rate re o o in u re iste 8 ee p rts f o t g r()

1 : L g o t() 9 o u

19

Po e lic

S p rU r u e se

Ja A m il d in

G ve m n O e o rn e t ffic

G k e er ate e p

D ta m a e a an g r

1 : L g () o in

2 : p g d la e () a e isp y d 3: S a h fo p n e rc r risio er()

4 : V wp ie risio e d ta n r e ils() 5 : E o to P F() xp rt D

6 : S n p te m ssa e e d riva e g () 7 : Fin in d r() d tru e

8 : v wlo p file ie g ro s()

9 : A d o re o e p d r m v risio e a d u r() n r n se

1 : M d d list() 0 o ifie 1 : G n ra rep rt fo p 1 e e te o r risio e n r()

1 : vie d 2 w iary g n ra r() e e to 1 : G n ra re ort a o e in ia 3 e e te p ll v r d ()

1 : R p rt v w () 4 e o ie ed 1 : M rk sta an n n 5 a s ff d o staff in u re iste o t g r()

1 : M rk p 6 a s risio e in u re iste n r o t g r()

1 : u d te in u re iste 7 pa o t g r()

1 : G n ra re o o in u reg r() 8 e e te p rts f o t iste

1 : L g o t() 9 o u

Figure 4.2.4.1 Sequence Diagram 4.2.5 Collaboration Diagram

20

/ Data manager 13 : Generate report for all over india() 18 : Generate reports of in and out register() 14 : Report viewed() 4 : View prisioner details() 5 : Export to PDF() 8 : View log profile() 1 : login() 15 : Marks staff and nonstaff inout register() 17 : Update in and out register() 16 : Marks prisioner inout register() / Gate keeper

11 : Generate report for prisioner() 6 : Send private message() 7 : Find intruder() 9 : Add or remove prisioner and user() 19 : Logout() 3 : Search for prisioner() 12 : View diary generator() 2 : Page displayed() : Modified list() 10 / Police / J ail admin / Government office

/ Super user

Figure 4.2.5.1 Collaboration Diagram

21

4.2.6 System Architecture

Figure 4.2.6.1 System Architecture Diagram

22

CHAPTER V ARCHITECTURAL DETAILS Java Java is a small, simple, safe, object oriented, interpreted or dynamically optimized, byte coded, architectural, garbage collected, multithreaded programming language with a strongly typed exception-handling for writing distributed and dynamicaly extensible programs.

Java is an object oriented programming language. Java is a high-level, third generation language like C, FORTRAN, Small talk, Pearl and many others. You can use java to write 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.

RMI Architecture The RMI architecture consists of three layers


Stub/Skeleton Layer Remote Reference Layer Transport Layer

23

client

server

Skelton

Stub

Remote Reference Layer

Remote Reference Layer

Transport Layer
Figure 5.1 RMI Architecture

Transport Layer

RMI Registry is a service that runs on the RMI server. The remote objects (server objects) created by the server are registered by the objects 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.

24

CHAPTER VI SYSTEM IMPLEMENTATION 6.1 Client Side coding Viewall.java package com.servlet.datam; import java.io.IOException; import javax.ejb.EJB; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.datam.ejb.DatamRemote; /** * Servlet implementation class ViewAll */public class ViewAll extends HttpServlet { private static final long serialVersionUID = 1L; @EJB DatamRemote dr; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String jno; 25

String result=""; HttpSession session; response.setContentType("text/html"); session=request.getSession(); com.bean.LogonBean loginbean; loginbean=(com.bean.LogonBean)session.getAttribute("loginbean"); if(loginbean.getJno()!=null && loginbean.getCategory()==3) { jno=loginbean.getJno(); if(dr!=null) { String log=loginbean.getLog(); log+="<li>Tried To View All Register Details</li>"; loginbean.setLog(log); result=dr.returnRecord(jno); if(result!=null) { response.getWriter().write("<span style='color:#7A1312;position:relative;left:15px;'><b><h2>View All Registers.</h2></b></span>"+result); } else { response.getWriter().write("<div style='color:red;width:40%;height:40%;marginleft:35%;margin-top:20%;'><p><b>Failed To Connect To Database</b></p></div>"); } }

26

else { response.getWriter().write("<div style='width:40%;height:40%;marginleft:35%;margin-top:20%;color:red;'><p><b>"+result+"</b></p></div>"); } } else { } }

27

Viewallbymonth.java

28

package com.servlet.datam; import java.io.IOException; import javax.ejb.EJB; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.datam.ejb.DatamRemote; /** * Servlet implementation class ViewAll */ public class ViewAllByMonth extends HttpServlet { private static final long serialVersionUID = 1L; @EJB DatamRemote dr; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

29

// TODO Auto-generated method stub String jno; String result=""; int year,month; month=Integer.parseInt(request.getParameter("month")); year=Integer.parseInt(request.getParameter("year")); HttpSession session; response.setContentType("text/html"); session=request.getSession(); com.bean.LogonBean loginbean; loginbean=(com.bean.LogonBean)session.getAttribute("loginbean"); if(loginbean.getJno()!=null && loginbean.getCategory()==3) { jno=loginbean.getJno(); if(dr!=null) { String log=loginbean.getLog(); log+="<li>View All Register Detail By Month("+month+"-"+year+")</li>"; loginbean.setLog(log); result=dr.returnRecordByMonth(jno,month,year); if(result!=null) { response.getWriter().write("<span style='color:#7A1312;position:relative;left:15px;'><b><h2>View All Registers.</h2></b></span>"+result);

30

} else { response.getWriter().write("<div style='color:red;width:40%;height:40%;margin-left:35%;margintop:20%;'><p><b>Failed To Connect To Database</b></p></div>"); } } else { response.getWriter().write("<div style='width:40%;height:40%;marginleft:35%;margin-top:20%;color:red;'><p><b>"+result+"</b></p></div>"); } } else { }

31

6.2 Server Side Coding Createbio.java package com.servlet.datam; import java.io.IOException; import javax.ejb.EJB; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.datam.ejb.DatamRemote;

/** * Servlet implementation class CreateBio */ public class CreateBio extends HttpServlet { private static final long serialVersionUID = 1L; @EJB DatamRemote dr; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String id; 32

String name; String fname; String nation; String date; String result,iris,city,state; HttpSession session; response.setContentType("text/html"); session=request.getSession(); com.bean.LogonBean loginbean; loginbean=(com.bean.LogonBean)session.getAttribute("loginbean"); if(loginbean.getJno()!=null && loginbean.getCategory()==3) { id=request.getParameter("text1"); name=request.getParameter("text2"); fname=request.getParameter("text3"); date=request.getParameter("date"); iris=request.getParameter("iris"); city=request.getParameter("city"); state=request.getParameter("state"); nation=request.getParameter("text111"); if(dr!=null) { result=dr.addPrisoner(id,name,fname,date,iris,nation,city,state); String log=loginbean.getLog(); log+="<li>Tried To Add New Prisoner (Prisoner : "+id+")</li>"; loginbean.setLog(log); if(result.equals("true")) {

33

response.getWriter().write("<div Sucessfully&nbsp;&nbsp;<img /></b></p></div>"); } else if(result.equals("alreadyin")) { response.getWriter().write("<div

style='width:40%;height:40%;marginInserted src='images/checkbullet.gif'

left:35%;margin-top:20%;'><p><b>Prisoner

class='err' solid black;background-

style='width:30%;height:10%;margin-left:35%;margintop:20%;color:red;border:2px Present</center></b></p></div>"); } else { response.getWriter().write("<div style='color:red;width:40%;height:40%;margin-left:35%;margintop:20%;'><p>"+result+"</p></div>"); } } else { response.getWriter().write("<div Pool</b></p></div>"); } style='width:40%;height:40%;marginTo Access Data left:35%;margin-top:20%;color:red;'><p><b>Failed color:#fff;'><p><b><center>The Specified Prisoner Data Is Already

34

} else { }

} } Deletestaff.java package com.servlet.datam; import java.io.IOException; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.datam.ejb.DatamRemote; /** * Servlet implementation class PrisonIn */ public class DeleteStaff extends HttpServlet { private static final long serialVersionUID = 1L; @EJB 35

DatamRemote gr2;

/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String jno; String id; //String reason; String result; HttpSession session; response.setContentType("text/html"); session=request.getSession(); com.bean.LogonBean loginbean; loginbean=(com.bean.LogonBean)session.getAttribute("loginbean"); if(loginbean.getJno()!=null && loginbean.getCategory()==3) { id=request.getParameter("text1"); jno=loginbean.getJno(); if(gr2!=null) { String log=loginbean.getLog(); log+="<li>Tried To Delete Staff Detail (Staff : "+id+")</li>"; loginbean.setLog(log); result=gr2.deleteStaff(jno,id); 36

if(result.equals("true")) { response.getWriter().write("<div Sucessfully&nbsp;&nbsp;<img /></b></p></div>"); } else { response.getWriter().write("<div style='color:red;width:40%;height:40%;margin-left:35%;margintop:20%;'><p><b>Failed Database</b></p></div>"); } } else { response.getWriter().write("<div Pool</b></p></div>"); } } else { } } } 37 style='width:40%;height:40%;marginTo Access Data left:35%;margin-top:20%;color:red;'><p><b>Failed To Remove Staff Detail From style='width:40%;height:40%;marginData Deleted src='images/checkbullet.gif'

left:35%;margin-top:20%;'><p><b>Staff

CHAPTER VII SYSTEM TESTING 7.1 Test Case Report Software Testing is the process of executing software in a controlled manner, in order to answer the question - Does the software behave as specified?. Software testing is often used in association with the terms verification and validation. Validation Verification Unit 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. Integration Testing 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. : Are we doing the right job? : Are we doing the job right?

38

Validation Testing 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. 7.1.1 Test Case Report

S.No 1.

Test Condition Description Error Login

Test case/ scenario/ data description Enter the invalid domain or server name or username or password Login with providing domain or server name or username or password Prisoner Details

Expected Results It should deny the user to enter Enter to the Home page

Actual Results "Denied User, Check username and password" username and password matched

Pass/ Fail FAIL

2.

Login with the correct details Enter incorrect name of prisoner Enter incorrect UserID Enter Invalid date for In/Out register

PASS

3.

4.

Personal Details

5.

Register Details

Display Message "Enter correct Details" Display Message "Enter Valid UserID" Display Message "Enter Valid Date"

"Enter Valid Prisoner" "Does not Exist"

PASS

PASS

"Invalid Date, Enter PASS Valid Date"

Figure 7.1.1 Test Case Report

39

CHAPTER VIII CONCLUSION AND FUTURE ENHANCEMENTS 8.1 Conclusion This project was done to monitor the activities of the criminals. The police officials maintain the criminal record in separate database, as well as staffs working in the prison department. It tries to eliminate or reduce these difficulties up to some extent. It helps the user friendly and he can easily to do his jobs without time lagging. Merits of the System Saves a lot of time Looks great Fully secured

8.2 Future Enhancement In future we can use Image recognization instead of using hetrogenious 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.

40

APPENDICES 9.1 Sample Screens

Figure 9.1.1 Login Page

41

Figure 9.1.2 Login Failed Page

42

Figure 9.1.3 Data Manager Login Page

43

Figure 9.1.4 Prisoner Details Upload Page

44

Figure 9.1.5 Prisoner Details

45

Figure 9.1.6 Super User Login Page

46

Figure 9.1.7 Add Prison

47

Figure 9.1.8 Add User

48

Figure 9.1.9 Remove User

49

REFERENCES Books Charles Hampfed ,Instant Java Server Pages University of Toronto, 2000 Herbert Schildt ,Java Complete Reference Tata McGraw Hill, 2000 John Zukowski ,Mastering Java2 BPB Publications, 2000 Jamie Jaworsky J2EE Bible Techmedia Rajeev mall Software engineering Stefen Denninger Enterprise Java Beans-2.1 Authors Press

Web Reference: http://www.theserverside.com http://www.java.sun.com http://www.w3school.com.

50