Why To Develop Net Conference
Why To Develop Net Conference
Developing Net Conference for National Engineering Corporation. The main concept of Net Conference is developing the conference on the net. We can compare the Net conference with the Telephone Conference. Normally in Telephone Conference, there will be more than two users connected at a time and all the users are able to here words from any one of the user. So implementing the same concept on the Net is nothing but Net Conference
Why to develop Net Conference: Now a days time is becoming more and
more precious.100% industries are computerized and there is a vast development in industries either in the public sector or in the private sector. The common transactions for any company are sales and purchases. So most of the companies now days made on line sales and purchases. So distributors, customers and companies can continue their business dealings using this online sales and purchases. By this they can save their valuable time. Here the company is the manufacturer of Transformers and Stabilizers .For their growth of business they want to develop this sort of Net Conference. Through this they will be able to make conferences with their clients (distributors) or with their customers with timely updates of the company business. So they can improve their products with respect to the customers view. This will help them to become a number one position in the current market. The another advantage is that the company is having branches throughout the country. So this will help them to communicate business affairs of the company and live meetings and conferences between
. e Ie x
their employees and directors. They can conduct board of directors meeting It will give On-line solutions from the superiors to the employees. Likely there are so many advantages by developing this Net Conference for a company like NEC. Features: Grouping: Grouping of selected users Support of multi conference
By selecting the single user from the list, Talk can By selecting all the users in the list, Chat can be
be achieved
achieved
problems of fluctuations by ensuring constant output voltage. The field of application is very wide for AC Stabilizer. Keeping in view of the wide range of our country which spans from Kashmir to Kanyakumari NEC puts its best effort to provide good quality supply. The principal role played by NEC, besides changing the work culture and making the administration more effective and efficient at all levels, is in the nature of demolishing barriers and in making the working of the organization more transparent to the public, as well as in making the information more readily available from one Department to another. The availability of information, accurately and on a timely basis, required by the officials concerned, has given a new dimension to the management. NEC is proud that it has made all this possible. With this support today it is proud to declare that it is going to launch its site on the INTERNET. A major resource of NEC is its highly skilled pool of manpower . The main objective of NEC is 1.To design and develop Transformers and Stabilizers. 2. To generate, skilled manpower within departments. With the facility of having its site on the INTERNET the organization is going to expand than what is today. It can have orders being placed. Today it has an easy access to all this than what it was earlier.
PRESENT SYSTEM
Conferences will take part a vital role for any of the national wide company. A company like National Engineering Corporation it takes part an important role. Because the company is having branches through out India, they need to conduct conferences between their employees and to conduct board of directors meeting among their directors, general managers. Normally conferences will be conducted in some place owned by company or in some conference hall. The person, who has to participate in the conference, has to travel all the way to participate in the conference. So it will be very risky to travel for the persons, and it is risky work for the company also to provide all the felicities to persons. Now a day wherever you see so many strikes are going. In that case to participate in any important conference or to conduct any conference will be very tedious. All this may lead to loss of company and time taking matters. So here the company is decided to develop their conferences on the net itself.
PROPOSED SYSTEM
The proposed system is to maintain the conferences, live meetings, general body meetings on the net. This system is to develop in a client/server environment. It aims to do the following. Grouping: Grouping of selected users Support of multi conference
By selecting the single user from the list, Talk can be achieved By selecting all the users in the list, Chat can be achieved
Need for computerization: Time plays an important role in todays world. Any information is useful if it is available on the right time. Quick and correct information at he right time needs computerization. Many scientists engineers have to spend their valuable time to attend a conference, which is going on a long distance place. For them even one second costs millions and millions of dollars. So this project will help them to participate in the conferences. The main concept of Net Conference is developing the conference on the net. We can compare the Net conference with the Telephone Conference. Normally in Telephone Conference, there will be more than two users connected at a time and all the users are able to here words from any one of the user. So implementing the same concept on the Net is nothing but Net Conference. This project is used to: Conduct conferences with their employees. So they can get online decisions from employees from the different branches of the company. The another advantage is that the company is having branches throughout the country. So this will help them to communicate business affairs of the company and live meetings and conferences between their directors. They can conduct board of directors meeting.
PLATFORM/PACKAGES SELECTED
6
WINDOWS NT:
Windows NT is an operating system developed by Microsoft. Two versions of NT are available: a server version and a workstation version. Both share the same architecture, but the server version is optimized for running server operations, while the workstation version is intended for client machines. Windows NT workstation is focussed on providing a desktop operating system for solving complex business needs, offering performance for systems such as dual-processor workstation or multiprocessor RISC servers. Windows NT is a 32-bit operating system. It offers much greater data transfer speed than a 16 bit operating system, both with in the processor and to peripherals, and it allows a much larger memory space to be addressed, boosting performance even more. The larger memory space means that 32-bit operating systems have the band width to offer other processing advantages, such as the ability to run different applications in separate memory spaces, perform multitasking and so on. NT workstation requires a powerful system. A minimum configuration of a 486 PC with 16 Mbytes of RAM and 200 Mbytes of hard disk is recommended by the Microsoft. Windows NT workstation uses pre-emptive multitasking, which allows users to run tasks simultaneously, without losing system performance. Pre-emptive multitasking assigns processing resources equally between all the applications that are running, slowing down all of them equally.
Multitasking, which is provided by, NT is vital for taking advantage of multiprocessing. It allows different parts of a program to be handled independently by the operating systems Windows NT provides crash protection by running applications in separate address spaces. NT protects system resources by giving each application a mirror of the system resources within its own spaces. If the application crashes only the mirrored resources, is affected, while the real system resources, continues to function. NT meets the security certification requirements for users level security on access to a standalone workstation. Files, folders and application can be made invisible to specific users. It also provides secure user profiles to control access to the desktop applications and system configuration files. A transacted file offers increased data protection. NT workstation comes with the most common networking protocols, including Netware, TCP/IP, IPX/SPX/ SLIP and PPP. It also scalable and runs on a variety of platforms. As more powerful mainstream machines are developed, technologies created for NT workstation will migrate to Windows 95. The advantage is this compatibility brings to customers an users are that applications can be shared across the two operating systems, that training needs are reduced as ease of use is increased and the that the larger volume of application leads to lower software and support cost.
HTML:
To publish information for global distribution, one needs a universally understood language, a kind of publishing mother tongue that all computers may potentially understand. The publishing language used by the World Wide Web is HTML (Hyper Text Markup Language). HTML gives authors the means to Publish online documents with headings, text, tables, lists, photos, etc. Retrieve online information via hypertext links, at the click of a button Design forms for conducting transactions with remote services, for use in searching for information, making reservations, ordering products etc. Include spread sheets, video clips, sound clips, and other applications directly in their documents. A brief history of HTML: HTML was originally developed by Tim Berners-Lee while at CERN, and popularized by the Mosaic browser developed at NCSA. During the course of the 1990s it has blossomed with the explosive growth of the Web during this time. HTML has been extended in a number of ways. The Web depends on Web page authors and vendors sharing the same conventions for HTML. This has motivated joint work on specifications for HTML. HTML 2.0 (November 1995) was developed under the aegis of the Internet Engineering Task Force (IETF) to codify common practice in late 1994. HTML (1993) and ([HTML.30]) (1995) proposed much richer versions of HTML, despite never receiving consensus in standards discussions, these drafts led to the adoption of new features. The efforts of the World Wide Web Most people agree that HTML Consortiums HTML working group to codify common practice in 1996 resulted in HTML 3.2 (January 1997). documents should work well across different browsers and platforms. Achieving interoperability lowers costs to content providers since they must
develop only one version of a document. If the effort is not made, there is much greater risk that the Web will devolve into a proprietary world of incompatible formats, ultimately reducing the Webs commercial potential for all participants. Tables: Authors now have greater control over structure and layout (e.g. column groups). The ability of designers to recommend column widths user agents to display table data incrementally (as it arrives) rather than waiting for the entire table before rendering. Compound documents: HTML now offers a standard mechanism for embedding generic media objects and applications in HTML documents. The OBJECT element (together with its more specific ancestor elements IMG and APPLET provides a mechanism for including images, video, sound, mathematics, specialized applications, and other objects in a document. It also allows authors to specify a hierarchy of alternate renderings for user agents that dont support a specific rendering. Style sheets: Style sheets simplify HTML markup and largely relieve HTML of the responsibilities of presentation. They give both authors and users control over the presentation of documents- font information, alignment, colors, etc. Style information can be specified for specific elements or groups of elements either within an HTML document or in separate style sheets. The mechanism for associating a style sheet with a document is independent of the style sheet language. Before the advent of style sheets, authors had limited control over rendering HTML 3.2 included a number of attributes and elements offering control over alignment, font size, and text color. Authors also exploited tables
10
and images as a means for laying out pages. The relatively long time it takes for users to upgrade their browsers, means that these features will continue to be used for some time. However, since style sheets offer more powerful presentation mechanisms, the World Wide Web Consortium will eventually phase out many of HTMLs presentation elements and attributes. Scripting: Through scripts, authors may create smart forms that react at users fill them out. Scripting allows designers to create dynamic Web pages, and to use HTML as a means to build networked applications. languages. Printing: Sometimes, authors will want to make it easy for users to print more than just the current document. When documents form part of a larger work, the relationships between them can be described using the HTML LINK element or using W3Cs Resource Description Language. Designing documents with HTML 4.0: The following general principles are observed when working with HTML 4.0 Separate structure and presentation HTML has its roots in SGML, which has always been a language for the specification of structural markup. As HTML matures more and more of its presentational elements and attributes are being replaced by other mechanisms, in particular style sheets. Experience has shown that separating the structure of a document from its presentational aspects reduces the cost of serving a wide range of platforms, media, etc., and facilities document revisions. The mechanism provided to associate HTML with scripts are independent of particular scripting
11
Accessibility To The Universal Wide |Web: To make the Web more accessible to everyone, notably those with disabilities, authors should consider how their documents, may be rendered on a variety of platforms, speech-based browsers, Braille readers, etc. We do not recommend that designers limit their creativity, only that they consider alternate renderings in their design. HTML offers a number of mechanisms to this end (e.g., the alt attribute, the access key attribute, etc). Furthermore, authors should keep in mind, that their documents may be reaching a far-off audience with different computer configurations. In order for documents to be interpreted correctly, designers should include in their document information about the natural language and direction of the text, how the document is encoded, and other issues related to internationalization. Help user agents with incremental rendering: By carefully designing their labels and making user of new table features in HTML 4.0, designers can help users agents render documents more quickly. Authors can learn how to design tables for incremental rendering.
JAVA SCRIPT:
JavaScript is a scripting language developed jointly by Sun and Netscape and is meant for the WWW. A scripting language is a simple
12
. e Ie x
programming language designed to enable programmers to write useful programs quickly. A script is a similar to a macro, which tells a program how to perform a specific procedure. JavaScript Facts: JavaScript Is Embedded Into HTML: JavaScript code is usually embedded into a HTML document and is executed, within them. By itself JavaScript has no user interface. It relies on, HTML to provide the means of interaction with the user. Most Java Script objects have HTML tags they represent. JavaScript extends the capabilities of HTML by providing events to HTML tags and provide event driven code to execute it. JavaScript Is Browser Dependent: JavaScript depends on the Web browser to support it. If the browser does not support it, JavaScript code will be ignored. Internet Explorer 3.0 and, Netscape Navigator 2.0 onwards support JavaScript.
JavaScript Is an Interpreted Language: JavaScript is interpreted at runtime by the browser before it is executed it. It is not compiled into a separate program like a .exe but remains part of the HTML file. JavaScript Is a Loosely Typed Language: JavaScript is very flexible compared to Java. You need not specify, the data type of a variable while declaring it. Also you need not declare Variables explicitly. It is perfectly legal to declare variable as and when you
13
require them. JavaScript Is an Object-Based Language: JavaScript is an object-based language. You can work with objects, That encapsulates data (properties) and behavior (method). However JavaScript object model is instance-based and there is no inheritance. This is the basic difference between an object oriented and an object-based language. JavaScript Is Event-Driven: HTML objects such as buttons are enhanced to support event handlers. You can specify the functionality of a button. JavaScript Is Not Java: Java applet is stored in a separate file and connected to a HTML file through the <applet> tag, and it is a strongly typed, object oriented compiled language. JavaScript is loosely typed object based, interpreted language meant to create scripts. JavaScript Is Multifunctional: JavaScript can be used to Enhance HTML pages Develop client side applications Build to a certain extent client/server Web applications Create extensions to a Web server. Provide database connectivity without using CGI.
JavaScript Is Evolving: JavaScript evolved in December 1995. As the time goes buy,
14
JavaScript will be embedded and new features added to it. JavaScript Language Spans Contexts: JavaScript can be used in server side Netscape LiveWire Pro Environment and Microsofts Active X server frame work. It is not just a client side scripting tool. WEB Application Frame Work Client Side Frame Work Client Side Applications Smart Pro Support Data validation Creating Interactive Forms Client Side Lookup Tables State Maintenance
ABOUT JAVA
15
. e Ie x
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.
16
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 memory management), multithreading (the capacity for one program to do more than one thing at a time), security capabilities. The result is that Java is simple, elegant, powerful and easy to use. Java is actually a platform consisting of three components: 1. Java programming language. 2. Java is library of classes and interfaces. 3. Java is a Virtual Machine. The following sections will say more about these components: JAVA IS PORTABLE: One of the biggest advantages Java offers is that it is portable. An application written in Java will run on all the major platforms. Any computer with a Java based browser can run the applications or applets written in the Java programming language. A programmer no longer has to write one program to run on a Macintosh, another program to run on a Windows machine, still another to run on a UNIX machine, and so on. In other words, with Java, developers write their programs only once. The Virtual Machine is what gives Java its cross platform capabilities. Rather than being compiled into Machine language, which is different for each operating systems and computer architecture, Java code is compiled into byte codes. With other languages, the program code is compiled into a language that the computer can understand. The problem is that other computers with different machine instruction set cannot understand that language. Java code, on the other hand is compiled into byte codes rather than a machine language. These byte codes go to the Java Virtual Machine, which
17
executes them directly or translates them into the language that is understood by the machine running it. With JDBC API extending Java, a programmer writing Java code can access all the major relational databases on any platform that supports the Java Virtual Machine. JAVA IS OBJECT-ORIENTED: The Java programming language is object oriented, which makes program design focus on what you are dealing with rather than on how you are going to do something. This makes it more useful for programming in sophisticated projects because one can break the things down into understandable components. A big benefit is that these components can then be reused. Object oriented languages use the paradigm of classes. In simplest term, a class includes both the data and the functions to operate on the data. You can create an instance of a class, also called an object, which will have all the data members and functionality of its class. Because of this, you can think of a class as being like a template, with each object being a specific instance of a particular type of class. The class paradigm allows one to encapsulate data so that specific data values are those using the data can not see function implementation. Encapsulation makes it possible to make the changes in code without breaking other programs that use that code. If for example the implementation of a function is changed, the change is invisible to the another programmer who invokes that function, and it does not affect his/her program, except hopefully to improve it.
18
Java includes inheritance, or the ability to derive new classes from existing classes. The derived class, also called a subclass, inherits all the data and the functions of the existing class, referred to as the parent class. A subclass can add new data members to those inherited from the parent class. As far as methods are concerned, the subclass can reuse the inherited methods, as it is, change them, and/or add its own new methods. JAVA MAKES IT EASY TO WRITE CORRECT CODE: In addition to being portable and object oriented, Java facilitates writing correct code. Programmers spend less time writing Java code and a lot less time debugging it. In fact, developers have reported slashing development time by as much as two thirds. The following is a list of some of Java's features that make it easier to write correct code: GARBAGE COLLECTION: Automatically takes care of allocating and de allocating memory, a huge potential source of errors. If an object is no longer being used (has no references to it), then it is automatically removed from memory, or "Garbage Collected". Programmers don't have to keep track of what has been allocated and de allocated themselves, which makes their job a lot easier, but, more importantly it stops memory leaks. NO POINTERS: Eliminates big source errors. By using object references instead of many pointers, problems with pointer arithmetic are eliminated, and problems with inadvertently accessing the wrong memory address are greatly reduced.
19
STRONG TYPING: Cuts down on runtime errors. Because Java enforces strong type checking, many errors are caught when code is compiled. Dynamic binding is possible and often very useful, but static binding with strict type checking is used when possible. SIMPLICITY: Java is made easier to learn and use correctly. Java keeps it simple by having just one way to do something instead of having several alternatives, as in some languages. Java also stays lean by not including multiple inheritance, which eliminates the errors and ambiguity that arise when you create a subclass that inherits from two or more classes. To replace capabilities, multiple inheritance provides Java lets you add functionality to a class throw the use of interfaces.
JAVA INCLUDES A LIBRARY OF CLASSES AND 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
20
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 inheritance 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. java.lang -- This package is so basic that it is automatically included in any Java program. It includes classes dealing with numeric, strings, objects, runtime, security and threads. Java.io -- Classes that manage reading data from input streams and writing data to the output streams. Java.util -- Miscellaneous utility classes, including generic data structures, bit sets, time, date, the string manipulation, random number generation, system properties, notification and enumeration of data structures. Java.net -- Classes for network support.
21
Java.awt --Classes that manage user interface components such as windows, dialog boxes, buttons, check boxes, lists, menus, scrollbars, and text fields; the "AWT" stands Abstract Window Toolkit. Java.awt.image -- Classes for managing image data, including color models, dropping, color filtering, setting pixel values, and grabbing snapshots. Java.applet -- The Applet class, which provides the ability to write applets, this package also includes several interfaces that connect an applet to its document and to resources for playing audio. Java.sql -- The JDBC API, classes and interfaces that access databases and send SQL statements. The first three packages listed, java.lang, java.io, and java.util form the foundation, they are the basic classes and interfaces for generalpurpose programming. Java Development Kit Version1.1 added some new packages, with JDBC is being one of them. Other new packages include such things as Remote Method Invocation, Security and Java Beans the new API for creating reusable components.
JAVA IS EXTENSIBLE: A big plus for Java is the fact it can be extended. It was purposely written to be lean with the emphasis on doing what it does very well; instead of trying to do everything from the beginning, it was return so that extending it is very easy. Programmers can modify existing classes or write their own new classes or they can write a whole new package. The JDBC API, the java.sql package, is one example of a foundation upon which extensions are
22
being built. Other extensions are being added or worked on in area such as multimedia, Internet Commerce, conferencing, and Telephony. In addition to extensions there are also main tools being developed to make existing capabilities easier to use. For example, there is already a tool that greatly simplifies creating and laying out Graphical User Interfaces such as menus, dialog boxes and buttons. JAVA IS SECURE It is important that a programmer unable to write subversive code for applications or applets. This is especially true with the Internet being used more and more extensively for services such as electronic commerce and electronic distribution of software and multimedia contents. The Java platform builds security in four ways. The way memory is allocated and laid out: In Java an object's location in memory is not determined until the runtime, as opposed to C and C++, where the compiler makes memory layout decisions. As a result, a programmer not looks at a class definition and figure out how it might be laid in memory. 2. The way incoming code is checked: The Java Virtual Machine doesn't trust any incoming code and subjects it to what is called Byte Code Verification. The byte code verifier, part of the virtual machine, checks that a: The format of incoming code is correct b: Incoming code doesn't forge pointers c: It doesn't violate access restrictions d: It accesses objects as what they are
1.
23
3. The way classes are loaded: The Java byte code loader, another part of the virtual machine, checks whether classes loaded during program execution are local or from across a network. Imported classes cannot be substituted for built in classes, and built in classes cannot accidentally reference classes bring in over a network. 4. The way access is restricted for untested code: The Java security manager allows user to restrict untested Java applets so that they cannot access the local network, local files and other resources. JAVA PERFORMS WELL: Java's performance is better than one might expect. Java's many advantages, such as having built in security and being interpreted as well as compiled, do have a cost attached to them. However, various optimizations have been built in, and the byte code interpreter can run very fast the cost it doesn't have to do any checking. As a result, Java has done quite respectably in performance tests. Its performance numbers for interpreted byte codes are usually more than adequate to run interactive graphical end user applications. For situations that require unusually high performance, byte codes can be translated on the fly, generating the final machine code for the particular CPU on which the application is running at run time. High level interpreted scripting languages generally offer great portability and fast prototyping but poor performance. Low level compiled languages like C and C++ offer great performance but require large amounts of time for writing and debugging code because of problems with areas such as memory management, pointers and multiple inheritance. Java offers good performance with the advantages of high level languages but without the
24
disadvantages of C and C++. In the world of design trade-off, you can think of Java as providing a very attractive middle ground. JAVA IS ROBUST: The multi platform environment of the WEB places extraordinary demands on a program, because it must execute reliably in a variety of systems. Thus the ability to create robust programs was given a high priority in the design of Java. To gain reliability, Java restricts you in a few key areas to force you to find your mistakes early in program developments. At the same time, Java frees you from having to worry about many of the most common causes of programming errors. Because Java is strictly typed language, it checks your code at compile time. However, it also checks your code at run time. In fact, many hard to track down bugs that often turn up in hard to reproduce runtime situations are simply impossible to create in Java. Knowing that what you have written will behave in a predictable way under diverse conditions is a key feature of Java.
To understand how Java is robust, consider two main reasons for program failure: Memory management mistakes and mishandled exceptional conditions (run time errors). Memory management can be difficult, tedious task in traditional programming environments. For example in C/C++ the programmer must manually allocate and free all dynamic memory. This sometimes leads to problems. For example some programmers sometimes forget to free memory that has been previously allocated. Or worse, they may free some memory that another part of their code is still using.
25
Java virtually eliminates these problems by managing memory allocations and de allocations. Java helps in this area by providing object oriented exception handling. In a well-written Java program a program should manage all run time errors. JAVA SCALES WELL: Java platform is designed to scale well, from portable consumer electronic devices to powerful desktop and server machines. and compact. The Virtual Machine takes a small footprint and Java byte code is optimized to be small As a result, Java accommodates the need for low storage and for low bandwidth transmission over the Internet. In addition the Java Operating System offers a standalone Java platform that eliminates host operating system overhead while still supporting the full Java platform API. This makes Java ideal for low cost network computers whose sole purpose is to access the Internet.
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.
26
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, However, the program's code is still only passive data until you execute it.
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. 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:
JDBC OVERVIEW: JDBC is a Java API for executing SQL statements. (JDBC is a trademarked name and is not an acronym; nevertheless, JDBC is often thought of as understanding for "Java Database Connectivity".) It consists of a set of classes and interfaces written in the Java programming language.
27
. e Ie x
JDBC provides a standard API for tool/database developers and makes it possible to write database applications using a pure Java API. Using JDBC, it is easy to send SQL statements to virtually any relational database. In other words, with the JDBC API, it is not necessary to write one program to access a Sybase database, another program to access a Oracle database, another program to access a Informix database, and so on.. One can write a single program using the JDBC API, and the program will be able to send SQL statements to the appropriate database. And with in an application written in Java programming language, one also doesn't have to worry about writing different applications to run on different platforms. The combination of Java and JDBC lets a programmer to write it once run it anywhere. Java, being robust, secure, easy to understand, and automatically downloaded on a network, is an excellent language basis for database applications. What is needed is a way for Java applications to walk to a variety of different databases. JDBC is the mechanism for doing this. JDBC extends the concepts, which can be done in Java. For example, with Java and JDBC API, it is possible to publish a web page containing an applet that uses information obtained from a remote database or an enterprise can use JDBC to connect all this employees (even if they are using conglomeration of Windows, Macintosh, and Unix machines) to one or more internal databases via an Internet. With more and more programmers using the Java programming language, the need for easy database access from Java is continuing to grow. MIS managers like the combination of Java and JDBC because it makes disseminating information easy and economical. Businesses can continue to use their installed databases and access information easily even of it
28
is stored on different database management systems. Development time for new applications is short. Installation and version controls are greatly simplified. A programmer can write an application or an update once, put it on the server, and everybody has access to the latest version. And for business selling information services, Java and JDBC offer a better way of getting out information updates to external customers. WHAT DOES JDBC DO? Simply put, JDBC makes it possible to do three things: 1. Establish a connection with the database 2. Send SQL statements 3. Process the results The following code fragment gives a basic example of these three steps: Connection con = DriverManeger.getConnection (Jdbc:odbc:omega, login, password);
USING JDBC INSTEAD OF CGI: Until now, the only way to access a database through Java has been to use streams in Java to call and access Common Gateway Interface (CGI) programs. Calling a CGI script from Java lets you call a separate program that accesses the database and returns results. Using this approach is slow and lets more bugs creep into applications. Developing into two different development languages requires the knowledge of two technologies. When we use JDBC we need to know only the Java language, whereas when we use CGI we must use Java and another language.
29
Another reason to use JDBC is that it is noticeably faster than CGI approach. Using CGI usually requires that you call another program that must be executed by the computer. This separate program then accesses the database and processes the data, returning it to the calling program in a stream. This requires multiple levels of processing, which in turn increases wait time as well s enables more bugs to appear. The following figure displays how CGI program is executed.
Java Application
Web Server
CGI Script
Database
Fig. Calling a CGI script. Whereas calling a CGI script involves actually executing a new script, usually through a web server, executing a JDBC statement against the database requires only some sort of server that passes the SQL commands through the database. This speeds up dramatically the time it takes to execute SQL statements. Whereas the CGI script must actually connect to the database and process the results, the JDBC solution lets your Java application have the connection to the database so that thew application can perform all of the processing. The following figure displays how a JDBC statement is executed.
Java Application
JDBC Server
Database
30
JDBC IS A LOW-LEVEL API AND A BASE FOR HIGER-LEVEL APIs: JDBC is a low-level interface, which means that it is used to invoke (or call) SQL commands directly. It works very well in this capacity and is easier to use than other database connectivity. JDBC APIs were also designed to be a base upon which to build higher-level interfaces and tools. A higher-level interface is user-friendly, using a more understandable or more convenient API that is translated behind the scenes into a low-level interface such as JDBC. At present, two kinds of higher-level APIs are under development on top of JDBC: 1. An embedded SQL for Java: At least one vendor plans to build this. DBMS implement SQL, a language designed specifically for use with databases. JDBC requires that SQL statements be passed as strings to Java methods. An embedded SQL processor allows a programmer to instead mix SQL statements directly with Java: for ex: a Java variable can be SQL statement to receive or provide SQL mix into Java with JDBC calls. 2. A direct mapping of a relational database tables to Java classes: JavaSoft and others have announced plans to implement this. In this object/relational mapping, each row of the table becomes an instance of that class, and each column value corresponds to an attribute of that instance. Programmers can then operate directly on Java objects; the required SQL calls to fetch and store data are automatically generated beneath the covers. More sophisticated mappings are also provided, for example, where rows of multiple tables are combined into Java class.
31
2.1 As interest in JDBC has grown, more developers have been working in JDBC based tools to make building programs easier, as well. Programmers have also been writing applications that make accessing a database easier for the end-user. For e.g., an application might present a menu of database tasks from which to choose. After a task is selected, the application presents prompts and blanks for filling in information needed to carry out the selected task. With the required input typed in, the application then automatically invokes the necessary SQL command. With the help of such an application, users can perform database tasks even when they have little or no knowledge of SQL syntax. JDBC Vs ODBC AND OTHER APIs: At this point, Microsofts ODBC (Open Database Connectivity) API is the most widely used programming interface for accessing relational databases. It offers the ability to connect to almost all databases on almost all platforms. So why not use ODBC form Java? The answer is that you can use ODBC from Java, but this is best done with the help of JDBC in the form of the JDBC-ODBC Bridge. The question now becomes Why do you need JDBC? There are several answers to this question: 1. ODBC is not appropriate for direct use from Java, because it uses a C interface. Calls from Java to native C-code have a number of drawbacks in the security, implementation robustness and automatic probability of applications. 2. A literal translation of the ODBC C API into a Java API would not be desirable. For e.g., Java has no pointers, and ODBC makes copious use of them, including the notoriously error-prone generic pointer void *. You
32
can think of JDBC ac ODBC translated into an object-oriented interface that is natural for Java programmers. 3. ODBC is hard to learn. It mixes simple and advanced features together, and it has complex options even for simple queries. JDBC, on the other hand was designed to keep simple things simple while allowing more advanced capabilities where required. 4. A Java API like JDBC is needed in order to enable a pure Java solution. When ODBC is used, the ODBC driver manager and drivers must be manually installed on every client machine. When the JDBC driver is written completely in Java, however, JDBC code is automatically installable, portable, and secure on all Java platforms from network computers to mainframes. In summary, the JDBC API is a natural Java interface to the basic SQL abstractions and concepts. It builds on ODBC rather than starting from scratch, so programmers familiar with ODBC will find it very easy to learn JDBC. JDBC returns the basic design features of ODBC; in fact both interfaces are based on the (X/Open SQL CLI (Call Level Interface). The big difference is that JDBC builds on end reinforces the style and virtues of Java, and, of course it is easy to use. More recently, Microsoft has introduced new APIs beyond ODBC: RDO, ADO, and OLE dB. These designs move in the same direction as JDBC in many ways, that is, in being an object-oriented database interface based on classes that can be implemented on ODBC. However, there is no compelling functionality in any of these interfaces to make them an alternative basis to ODBC, especially with ODBC driver market well established. Mostly they represent a thin veneer on ODBC. This is not to say that JDBC does not need to evolve from the initial release;
33
however, the general feeling is that most new functionality belongs in higher-level APIs such as the object/relational mappings and embedded SQL mentioned in the previous section. TWO-TIER AND THREE-TIER MODELS:
The JDBC API supports both two-tier and three-tier models for database access. In the two-tier model, A Java applet or application talks directly to the database. This requires a JDBC driver that can communicate with the particular database management system being accessed. A users SQL statements are delivered to the database, and the results of those statements are sent back to the user. The database may be located on another machine to which the user is connected via a network. This is referred to as a client/server configuration, with the users machine as the client, and the machine housing the database as the server. The network can be the Intranet, which, for example, connects employees within a corporation, or it can be the Internet.
Presentation
&
Functionality
&
Functionality
Data Access
Fig. Two-tier Architecture In the three-tier models, commands are send to a "middle-tier" of services, which then send SQL statements to the database. The database
34
process the SQL statements and then send the results back to the middle tier, which then sends them to the user. MIS directors find the three-tier model very attractive because the middle tier makes it possible to maintain control over access and the kinds of updates that can be made to corporate data.
Presentation
DATA RDBMS Legacy application Remote Systems Functionality Application Data Server Connectivity
Server
Client
Server
Fig. Three-Tier Architecture Until now the middle tier has typically been written in languages such as C or C++, which offers fast performance. However, with the introduction of optimizing compilers that translate Java BYTECODE into efficient machine-specific code, it is becoming practical to implement the middle tier in Java. This is a big plus, making it possible to take advantage of Java's robustness, multithreading, and security features. JDBC is important to allow database access from Java middle tier. SQL PERFOMANCE: Structured Query Language (SQL) is the standard language for accessing relational databases. One area of difficulty is that most DBMS use a standard form of SQL for basic functionality, they do not conform to the most recently defined standard SQL syntax or semantics for more advanced
35
functionality. For example, not all databases support stored procedure or outer joins, and those that do not consistent with each other. It is hoped that the portion of SQL that is truly standard will expand to include more and more functionality. In the mean time, the JDBC API must support SQL as it is. One way the JDBC API deals with this problem is to allow any query string to be passed through to an underlying DBMS driver. This means that application is free to use as much SQL functionality as desired, but it runs the risk of receiving an error on some DBMS. In fact, an application query need not even be SQL, or it may be a specialized derivative of SQL designed for specific DBMS (for document or image queries, for example). A second way DBMS deals with problems of SQL conformance is to provide ODBC-style clauses. The escape syntax provides a standard JDBC syntax for the several of more common areas of SQL divergence. For example, there are escapes for date literal and for stored procedure calls. For example applications, JDBC deals with SQL conformance in a third way. It provides description information about the DBMS by means of the Database. MetaData interface so that applications adapt to the requirements and capabilities of each DBMS. Because the JDBC will be used ad a base API for developing higher-level database access tools and APIs, it also has to address the problem of conformance for any thing built on it. The designation "JDBC COMPLAINT" was created to set a standard level of JDBC functionality on which the users can rely. In order to use this designation, a driver must support at least, ANSI SQL-2 Entry level. (ANSI SQL-2 refers to the standard obtained by the American National Standards Institute in 1992. Enter level refers to a specific list of SQL capabilities.) Driver developers can ascertain that their
36
drivers meet these standards by using the test suite available with the JDBC API. The "JDBC COMPLAINT" designation indicates that a vendor's JDBC implementation has passed the conformance tests provided by JavaSoft. These performance tests check for the existence of all the classes and methods defined in the JDBC API, and check as much as possible that the SQL Entry Level functionality is available. Such tests are exhaustive, of course, and JavaSoft is not currently branding vendor implementations, but this compliance definition provides more degree of confidence in a JDBC implementation. With wider and wider acceptance of the JDBC API by database vendors, connectivity vendors, Internet Service Vendors, and application writers, JDBC is quickly becoming the standard for Java databases. JDBC PRODUCTS: At present, a number of JDBC-based products have already been developed or under development. Of course, the information in this section will quickly become dated, so one should consult the JDBC web page URL:http://www.javasoft.com/products/jdbc for the latest information. JavaSoft Frame work: Java Soft provides three JDBC product components as a part of the Java Development Kit (JDK): the JDBC driver manager the JDBC driver test suit, and the JDBC-ODBC bride The JDBC driver manager is the backbone of the JDBC architecture. It actually is quite small and simple; its primary function is
37
to connect the Java applications to the correct JDBC driver and then get out of the way. The JDBC driver test suite provides some confidence that JDBC drivers will run your program. Only drivers that pass the JDBC driver suite can be designated JDBC COMPLAINT. The JDBC-ODBC bridge allows ODBC drivers to be used as JDBC drivers. It was implemented as a way to get JDBC off the ground quickly, and long term will provide a way to access some of the less popular DBMS if JDBC drivers are not implemented for them. JDBC DRIVER TYPES: The JDBC drivers that are available at this time fit into one of the four categories: 1. JDBC-ODBC bridge plus ODBC driver: The JavaSoft bridge product provides JDBC access via ODBC drivers. Note that ODBC binary code, and in many cases database client code, must be loaded on each client machine that uses this driver. As a result, this kind is most appropriate on a corporate network where client installations are not a major problem, or for application server code written in Java in a three-tier architecture. 2. Native-API partly-Java driver: This kind of driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS. Note that like the bridge driver, this style of driver requires that some binary code be loaded on each client machine.
38
3. JDBC-Net pure Java driver: This driver translates JDBC call into DBMSindependent net protocol, which is then translated, to a DBMS protocol by a server. This net middleware is able to connect its pure Java clients to many different databases. The specific protocol used depends on the vendor. In general, this is the most flexible JDBC alternative. It is likely that all vendors of this solution will provide products suitable for Internet use. In order for these products to also support Internet access, they must handle the additional requirements for security, access through firewalls, and so on, that the Web imposes. Several vendors are adding JDBC drivers to their existing database middleware products. 4. Native-protocol pure Java driver: This kind of driver converts JDBC calls into the network protocol used by the DBMS directly. This allows a direct call from the client machine to the DBMS server and is a practical solution for Internet access. Since many of these protocols are proprietary, the database vendors themselves will be the primary source, and several database vendors have these in progress. 5. Eventually, it is expected that driver categories 3 and 4 will be the preferred way to access databases from JDBC. Driver categories 1 and 2 are interim solutions where direct pure Java drivers are not yet available. There are possibly variations on categories 1 and 2 that require a connector, but these are generally less desirable solutions. Categories 3 and 4 offer all the advantages of Java, including automatic installation (for example, downloading the JDBC driver with an applet that uses it). The following chart shows the four categories and their properties: DRIVER CATEGORY ALL JAVA NET PROTOCOL
39
1. JDBC-ODBC bridge 2. Native API as basis 3. JDBC- Net Connector 4. Native protocol as basis JDBC INTERFACES: Connection Overview:
No No Yes Yes
A connection object represents a connection with a database. Connection session includes the SQL statements that are executed and the results are returned over that connection. A single application can have one or more connections with a single database, or it can have connections with many different databases. Opening a connection: The standard way to establish a connection with a database is to call the method DriverManager.getConnection. This method takes a string containing a URL. The DriverManager class, referred to as the JDBC manager layer, attempts to locate a driver than it connect to the database represented by that URL. The DriverManager class maintains a list of registered Driver classes, and when the method getConnection is called, it checks with each driver in the list until it finds one that can connect to the database specified in the URL. The driver method connects uses this URL to actually establish the connection. The user can by pass the JDBC management layer and call driver methods directly. This could be useful in the rare case that two drivers can connect to a database and the user user wants to explicitly select a particular driver. Normally, however, it is much easier to just let the DriverManager class handle opening a connection.
40
The following code exemplifies opening a connection to a database located at the URL "jdbc: ODBC: wombat" with the user ID of "oboy" and "12Java" as the password: String URL = "jdbc: ODBC: wombat"; Connection con=DriverManager.getConnection (url,"oboy","12Java"); DriverManager Overview: The DriverManager class is the management layer of JDBC, working between the user and the drivers. It keeps track of the drivers that are available and handles establishing a connection between a database and the appropriate driver. In addition, the DriverManager class attends to things like driver login time limits and the printing of log and tracing messages. For simple applications, the only method in this class that a general needs to use directly is DriverManager.getConnection. As its name implies, this method establishes a connection to a database. JDBC allows the user to call the DriverManager methods getDriver, getDrivers, and registerDriver as well as the driver method connect, but in most cases it is better to let the DriverManager class manage the details of Establishing a Connection Statement: Statement Overview: A statement object is used to send SQL statements to a database. There are actually three kinds of statement objects, all of which act as containers for executing SQL statements on a given connection: Statement, Prepared statement, which inherits form statement, and callable statement, which inherits from prepared statement. They are specialized for sending particular type of SQL statements; a Statement object is used to execute a simple SQL statement with no parameters; a Prepared Statement object is used to execute a precompiled SQL statement with or without IN parameter; and a
41
callable statement object is used to execute a call to the database stored procedure. The statement interface provides basic methods for executing statements and retrieving results. The PreparedStatement interface adds methods for dealing with IN parameters; CallableStatement adds methods for dealing with OUT parameters.
SERVLETS USING JAVA WEB SERVER One can use Java programming statements to produce HTML output. The real power of Java, however, is the wide array of classes available for use with any Java program. HTML: The HTML Templates feature of the Java Web Server allows easily apply common elements (look and feel) as well as common content to a set of HTML documents without actually changing the HTML files themselves. All of these common items are contained in a single filecalled the template file. ADVANTAGES: The obvious advantage of using the HTML Templates feature is that you can establish, and later update, the way multiple files appear all from one template file. This is especially helpful in cases where content is created before the presentation is decided or when content from multiple origins must
42
. e Ie x
be combined into some cohesive presentation. Rather than go back and edit all those files, you simply create a template filewhich uniformly applies the desired presentation elements. Besides the application of headers and footers to your HTML files, you can also define body content to appear before or after the content of the source HTML documents. This can be a simple but powerful way of including information.
What the Java Web Server Does? When a browser requests a file from the Java Web Server that has been designated to have the common elements of the default. Template applied, a special Java servlet (Template Servlet) is called. The servlet uses the template information to process the file. The resulting file, now reflecting the specified appearance, is then passed to the browser. The file being displayed is not actually changed on disk, only its appearance in the browser is changed. The Java Web Server provides a sample default Template file, which uses abbreviations defined In the default definitions file. These sample files are in the server_root/public_html/template directory. File Specification for Sample: For the sample, select the files in the /template directory as the set of the files that you want the common elements specification applied. To do this, in the Administration Tool: 1. Select Web Service and click Manage 2. Click Setup
43
3. Select Servlet Aliases 4. Scroll through the Alias column. You should see / template And, under the Servlets Invoked column, template. If there is no entry for /template in the Alias column, select the last entry in the Alias field, click Add. This will create a new entry space into which you should type /template. Hit tab key to move to the Servlet Invoked column and then type template.
Well formed HTML File: Be sure that your source HTML files (to which the templates will be applied) are we formed. This means that the HTML is correctly formed with an opening <HTML> tag, a head section enclosed by <HEAD></HEAD> tags, a body section enclosed by <BODY></BODY> tags, and a closing </HTML> TAG. The template servlets parser is very strictif you dont have proper markup, you may see pages with no content. The default template file goes in the document base directory. In general, there needs to be only one default template file per document set. However, like the default template files, more can be used in subdirectories to override attributes present in the parent default template file. To use the Templates feature: 1. Specify the Common Elements Create a file with named default template. This template file should he a well-formed HTML file containing: opening HTML tag, a HEAD section, a BODY section, and a closing HTML tag. Insert one or more
44
. e Ie x
presentations, elements into the desired locations in the template file just as you would insert these elements into any HTML files. Some of the presentation elements we might want to apply to our files include Document color scheme (for example, background color, text color, and link color). Document layout (for example, a table of navigation links) A common header at the start of each page (for example, the product name). A common piece of the art work at the start of each page (for example, the company or product logo) A common footer at the end of each page (for example, email address and fax number) The template file should also contain the following tags : A: In the HEAD section, <subset data=HEAD></subst> This is an HTML extension that the TemplateServlet recognizes. It is a directive to the servlet to copy the contents of the source documents HEAD section into the HEAD section of the template file B: In the BODY section, <subset data=BODY></subst> This is another HTML extension that the Template Servlet recognizes. It is a directive to the servlet to copy the source documents BODY into the BODY section of the template file. Because the directive only copies the contents of the source files BODY section, and not the BODY tag itself, the templates own BODY tag can set with the desired common attributes (background color, text color, etc). Anything outside the HEAD and BODY sections of the source documents are ignored. In particular, this means that frames information in the source document is not copied into the template file. This template file, default template, should be placed in the topmost directory containing HTML files to which you want the template applied.
45
1. Make sure the Java Web Server has loaded the Template Servlets in the Administration Tool: a. Select Web Service and click Manage b. Click the Servlets button c. Under Configure, scroll down to template d. Click on template A tabbed notebook will be shown. The Configuration of the notebook tells you the full class name of the templates. These are also Loaded at Startup and Loaded Now entries on the page, these should both indicates Yes. If they do not, then set them to Yes by pressing the Yes radio button. 1. Indicates the files to which the Templates should be applied Specifying the files to which the template should be applied involves using the Servlet Alias feature of the Java Web Servers Administration Tool. Brief instructions are provided below. For more information on mapping files or directories top servlet aliases, see Servlet Alias. To map a set of files to a servlet alias, in the Administration Tool: a. Select Web Service and click Manage b. Click the Setup button. c. Double-click Servlet Aliases. d. In the Alias column, enter the / template directory or a filename pattern (such as *html) to which the alias will apply. e. In the Servlet Invoked co lumen, type template. This will map the directory to the servlet alias template. Use of HTML Frames: The template file cannot read in a frame set from a source file because only the contents of the HEAD section and the BODY section are
46
copied. However, there is nothing to stop you from using files processed by the template servlet as content in your own frame set. Servlets: Servlets provide a Java based solution used to address the problems currently associated with doing server-side programming, including inextensible scripting solutions, platform-specific APIs, and incomplete interfaces. Servlets are objects that conform to a specific interface that can be plugged into a Java-based server. Servlets are to the server-side what applets are to the client-side object BYTECODES that can be dynamically loaded off the net. They differ from applets in that they are faceless objects (without graphics or a GUI component). They serve as platform-independent, dynamically loadable, pluggable helper byte code objects on the server side that can be used to dynamically extend server-side functionality. For example, an HTTP servlet can be used to generate dynamic HTML content. When you use servlets to do dynamic content. Advantages: Theyre faster and cleaner than CGI scripts Theyre use a standard API (the Servlet API) They provide all the advantages of Java (run on a variety of servers without needing to be rewritten) The Attractiveness of Servlets There are many features of servlets that make them easy and attractive to use. Servlets are: 1. Easily configured using the GUI-based Administration Tool. 2. Loaded and invoked from a local disk or remotely across the network.
47
3. Linked together, or chained, so that one servlet can call another servlet, or several servlets in sequence. 4. Called dynamically from within HTML pages, using server-side include tags. 5. Secure-even when downloading across the network, the servlet security model and servlet sandbox protects your system from unfriendly behavior. The Advantage of the Servlet API: One of the great advantages of the Servlets API is protocol dependence. It assumes nothing about: The protocol being used to transmission the How it is loaded The server environment it will be running in these qualities are important, because it allows the Servlet API to be embedded in many different kinds of servers. and easy to use. Servlets Features: The Java Web Server provides several important servlet features. These includes: 1. Loading and Invoking Servlets: - Servlets can be loaded both locally and remotely. 2. Filters and Servlets Chaining: -The Java Web Server uses mime types to call servlets sequentially. 3. Server-Side Includes: -Servlets can be invoked from dynamic HTML documents using tags. 4. Replacing CGI Script: - Servlets are an effective substitute for CGI script, and provide a faster and cleaner way to generate dynamic document. Its extensible you inherit all your functionality from the base classes made available to you. Its simple, small,
48
SERVLETS
Introduction to Servlets: The JavaServer product family provides servers that can be configured to run one or more services: bodies of the code that implement an application level protocol, such as FTP, DHCP, OR SMTP. Servlets are modules that run inside request / response-oriented services and extends them in some manner. For example, an HTTP services responds to its clients by delivering the HTML files they request. A servlets can extend the capabilities of the HTTP services by taking the client entered in an HTML order - entry form and applying the business logic servlets to satisfy a request, if appropriate. Servlets Architecture Overview: The central abstraction in the JSDK is the Servlets interface. All servlets implement this interface, either directly or, more commonly, by extending a class that implements it such as Http Servlets. The Servlet interface provides for methods that manage the servlet and its communications with clients. Servlet writers provide some or all of these methods when developing a servlet. When a servlet accepts a call from a client it receives two objects: one is a Servlet Request and the other is a Servlet Response. The Servlet Request class encapsulates the communication from the client to the server, while the servlet Response class encapsulates the communication from the servlet back to the client.
49
The Sevlet Request interface allows the servlet access the information such as the names of the parameters passed in by the client, the protocol (scheme) being used by the client, and the names of the remote host that made the request and the server that received it. It also provides the servlet the access to the input stream, Servlet Input Stream, through which the servlet gets data from clients that are using application protocols such as the HTTP POST and PUT methods. Subclasses of Servlet Request allow the servlet to retrieve more protocol-specific data. For example, Http Servlet Request contains methods of accessing HTTP-specific header information. The Servlet Response interface gives the Servlet methods for replying to the client. It allows the Servlet to set the content length and mime type of the reply, and provides an output stream, Servlet Output Stream, and a Writer through which a Servlet can send the reply data. Subclasses of Servlet Response give the Servlet more protocol-specific capabilities. The classes and interfaces described above make up a basic Servlet. HTTP Servlets have some additional objects that over ride session tracking capabilities. The Servlet Writer can use these APIs to maintain state between the Servlet and the client that persists across multiple connections during some time period. Servlet Lifecycle: Services load and run Servlets, which then accept zero or more requests from clients and return data to them. They can also remove Servlets. They are the steps of a Servlets life cycle. The next paragraph describes each step in more details, concentrating on concurrency issues. When a service loads a Servlet, it runs the Servlets init method. Even though most Servlets are run in multi-threaded services, there are no
50
concurrency issues during Servlets initialization. This is because the service calls the init method once, when it loads the Servlet, and will not call it again unless it is reloading the Servlet. The service cant reload a Servlet until after it has removed the Servlet by calling the destroy method. Initialization is allowed to complete before client requests are handled (i.e. before the service method is called) or the Servlet is destroyed. After the service loads and initializes the servlet, the servlet is able to handle client requests. It processes them in its service method. Each clients request has its call to the service method in its own servlet thread: the method receives the clients request, and sends the client its response. Servlets can run multiple service methods at a time. It is important, therefore, that service method be written in a thread-save manner. For example, if a service method updates a field in the servlet object, that access should be synchronized. If, for some reason, a service should not run multiple service methods concurrently. The servlet should implement the SingleThreadModel interface. This interface guarantees that no two threads will execute the servlets service methods concurrently. Servlets run until they are removed from the service, for example, at the request of a system administrator. When a service removes a servlet, it runs the servlets destroyed method. The method is run once; the service will not run it again until after it reloads and reinitializes the servlet. When the destroy method runs, however, other threads might be running service requests. If, in cleaning up, it is necessary to access shared resources (such as network connections to be closed), that access should be synchronized. During a servlets lifecycle, it is important to write thread-safe code for destroying the servlet and, unless the servlet implements the ingleThreadModel interface, servicing client requests.
51
Lifecycle Methods: Servlets that manage resources do so by overriding the lifecycle methods init and destroy. These servlets might need to be given argument at startup, in order to initialize correctly. Overriding the Init Method: During initialization, the servlet should prepare the resources it manages, to ready the servlet for accepting service requests. It can do this without regard for multi-threading concerns, since there is only a single thread running on behalf of the servlet during initialization. As soon as the init method returns, the servlet can receive client requests. If, for some reason, the servlets required resources cannot be made available (for example, a required network connection cannot be established), or some other initialization error occurs that would make it impossible for the servlet to handle requests, the init method should throw an Unavailable Exception exception. The init method takes a ServletConfig object as a parameter. The method should save this object, so that it can be returned by the getServletConfig method. The simplest way to do this is to have the new init method call super.init. If you dont this, you should store the ServletConfig object yourself, and override the getServletConfig method so that it can obtain the object from its new location. As you can see, this init method calls the super. init method to manage the ServletConfig object. The init method also sets a field, resultsDir, with the directory name that is provided as an initialization parameter. It no directory name is provided, the servlet throws an unavailable exception. If the init method completes successfully, the servlet can then handled clients requests.
52
Overriding the Destroy Method: When a service unloads a servlet, it calls the servlets destroy method. The destroy method should undo any initialization work and synchronize persistent state with the current in-memory state. This section begins with a description of how to write a simple destroy method, then describes how to structure a servlet if threads running its service method might still be running when the destroy method is called. Though it is often the case that a servlet that overrides the init method must also override the destroy method to undo that initialization, this is not required. For example, the phone servlet, whose init method is used as an example, does not have a corresponding destroy method. Because initialization involves reading a file and using its contents to initialize a shared data structure, there is no work to undo when the service is finished with the servlet.
OVERVIEW OF SERVLETS Servlets provide a Java-based solution used to address the problems currently associated with doing server-side programming, including in extensible scripting solutions, platform-specific APIs, and incomplete interfaces.
53
. e Ie x
Servlets are objects that confirm to a specific interface that can be plugged into a Java-based server. Servlets are to the server-side what applets are to the client-side - object Byte Codes that can be dynamically loaded off the net. They differ from applets in that they are faceless objects (without graphics or a GUI component). They serve as platform independent, dynamically loadable, pluggable helper Byte Code objects on the server side that can be used to dynamically extend server-side functionality. For example, an HTTP servlet can be used to generate dynamic HTML content. When you use servlets to do dynamic content you get the following advantages: 1. They're faster and cleaner than CGI scripts 2. They use a standard API (the Servlet API) 3. They provide all the advantages of Java (run on a variety of servers without needing to be rewritten) The Attractiveness of Servlets: There are many features of servlets that make them easy and attractive to use. These include easily configured using the GUIbased Admin Tool. Can be loaded and invoked from a local disk or remotely across the network. Can be linked together, or chained, so that one servlet can call another servlet or several servlets in sequence. Can be called dynamically from within HTML pages, using server-side include tags. Are secure - even when downloading across the network, the servlet security model and Servlet sandbox protect your system from unfriendly behavior. The Advantages of the Servlet API:
54
One of the great advantages of the Servlet API is protocol Independence. It assumes nothing about: The protocol being used to transmit on the net How it is loaded The server environment it will be running in These qualities are important, because it allows the Servlet API to be embedded in many different kinds of servers. There are other advantages to the Servlet API as well. These include: it's extensible - you can inherit all your functionality from the base classes made available to you. Its simple, small, and easy to use JAVA SERVLET FEATURES: The Java Server provides several important servlet features. These include Loading and Invoking Servlets: Servlets can be loaded both locally and remote Filters and Servlet Chaining: The Java Server uses mime types to call servlets sequentially. Server-Side Includes: Servlets can be invoked from dynamic HTML documents using server-side include tags. Replacing CGI Scripts: Servlets are an effective substitute for CGI scripts, and provide a faster and cleaner way to generate dynamic documents.
INTERNAL SERVLETS: The Java TM Web Server TM servlet architecture is very flexible and the server takes advantage of this by dividing its work among several internal servlets. These are: FILE SERVLET : The File Servlet provides the standard document serving capabilities of Java Web Server. This servlet includes a caching mechanism to speed up response times for frequently accessed files. INVOKER SERVLET :
55
The purpose of this servlet is to invoke other servlets which are explicitly requested by name, that is http://<server-hostname>/servlets/<servlet name. Server Side Include Servlet : Servlets can be embedded within HTML documents using the servlet tag. When the server detects the servlet tag, it loads the servlet if necessary, invokes that servlet, and sends the output of the servlet to the client at the point where the servlet tag was embedded. Admin Servlet : The Admin servlet facilitates administration of the Java web server through a GUI front end the Administration Tool. CGI Servlet : This servlet acts as a gateway for the CGI 1.1 interface. This servlet allows any program that utilizes the CGI 1.1 standard to operate under Java Web Server.
SYSTEM COFIGURATION
Software Details
Server Operation System Windows NT Server Client Operating System Windows NT Work Station Languages Used: Java 2.0(Servlets, Jdbc, ODBC, JavaWebServer3.0) Java Script, HTML,
56
DataBase : MSACCESS.
Hardware Details
Server
PENTIUM III 500 MHz, With Dual Processor 128MB RAM 256 KB EXTERNAL CACHE MEMORY 17 GB HARD DISK 32 BIT ETHER NET SVGA COLOR MONITOR MICROSOFT MOUSE 108 WINDOWS95 KEYBOARD
Client
57
PENTIUM II 500 MHz 64 MB RAM 256 KB EXTERNAL CACHE MEMORY 8 GB HARD DISK 32 BIT ETHERNET SVGA COLOR MONITOR LOGITECH MOUSE 105 WINDOWS95 KEYBOARD
LOGICAL DESIGN
Logical design is a process through which requirements are translated into a representation of software. Initially the representation depicts a holistic view of software. Subsequent refinement leads to a design representation that is very close to source code. The conceptual structure of a database is called a schema. Schema shows the kinds of data that exists in a database and how the kinds of data are logically related to each other. A schema can be regarded as a blueprint that portrays both kind of data used in building a database and logical relationship that exist among various kinds of data. At the minimum, the schema must represent all needed data items, must correctly represent their interrelationships, and must be able to support all reports. Schema is frequently depicted pictorially using Data Flow Diagrams (DFD).
Data Flow Diagrams Data Flow Diagrams (DFD) depicts information flow and transforms that are applied as data move from input to output. The DFD is also
58
known as Data Flow Graph or Bubble Chart. It is the starting point of the design phase that functionality decomposes the requirement specification down to the lowest level of details. Thus, a DFD describes what data flows (logical) rather than how they are processed.Data Flow Diagrams are made up of number of symbols which represent system components. Data Flow modeling methods used for kinds of symbols. These symbols are used to represent four kinds of system components. Processes, Data Stores, External entities, and Data flows.
Processes Processes show what system does. Each process has one or more data inputs and produces one or more data outputs. Processes are represented by round rectangles in DFD. Data Stores A file or data stores is repository of data. Processes can enter data into a store or retrieve data from data store. The line in the DFD and each store represents each data store as a unique name. External Entities External entities are outside the system but they supply either input data into the system or used for the system output. They are entities on which the designer has no control. There may be an organization or other bodies with which system interacts. Data Flows Data Flows model the passage of data on the system and represented by the lines joining the system components. An arrow indicates the direction of flow and line is labeled by the name of data flow. Flow of data in the system can take place
59
Between two processes From a data store to a process From a process to a process From source to a process From a process to a sink.
Client
Client
Client
60
Necdata Server
Get Employe e Details
61
Client
Send mail
Receiv e mail
62
DATABASE DESIGN
1. Table Name: Necdata Function Table Description Column Empname Dateandtime Emailid : : Definition Char(20) Date/Time Text(50) Description Name of the Client Time of joining Mail id of the Client Contains information of clients.
63
FORM DESIGN
The various input forms and their processing is given below: 1: Server Login Screen: Purpose: The purpose of the screen is to allow the administrator to enter into the system. Details: T he Edit boxes are used to enter the username and password. The ok button is used to login into the system. The cancel button is used to clear the text box giving Permission to login again. Screen Design:
64
2. Employee Details: Purpose The purpose of this screen is to give details of employees formatted in the html table, to the administrator. Details This table contains three columns. The first column in the table gives employee names The second column of this table gives us employees joining time in the Company. The third column of this table gives us employees mail id details. The ok button is used to go to next screen. Screen Design
Processing
65
Empnames will be collected from the table necdata2 which is created in the MsAccess giving Jdbc connection.
Screen fields and their data source/destination The following table gives the employee names from the table necdata.This table correlates between the screen and the database.
3. Adding Users TO Conference: Purpose The purpose of this screen is to call employees to conference. Details The select box will get data from the table, which is created in MsAccess.
66
The add button will add all selected employees to conference and will call the next added screen. Screen Design
Processing Empnames will be collected from the table necdata2 which is created in the MsAccess giving Jdbc connection.
Screen fields and their data source/destination The following table gives the employee names from the table necdata2.This table correlates between the screen and the database.
67
4. Delete From Conference Purpose The purpose of this screen is to get added persons from the adduser screen. After getting list of conference persons, administrator can delete the persons from the conference. Details The select box will get data from the selected options. The delete button will delete the selected employee from the conference screen. Screen Design
68
5. Conference List: Purpose This screen will give us the final conference list. Details: The Select box will get final list of employees who are allowed for participation.
69
6. Client Login Screen: Purpose: The purpose of the screen is to allow accessible clients to enter into the system . Details:
70
T he Edit boxes are used to enter the username and password. The ok button is used to verify their name and password. The cancel button is used to clear the text box giving Permission to login again. Screen Design:
6. Client List Screen Purpose The purpose of this screen is to get added persons from the server. Details The select box will get data from the server . It will help the client to know the persons who are participating in conference.
71
Next button will give the next screen to participate in conference. Screen Design
7. Conference Screen: Purpose: The purpose of this screen is to allow the clients to communicate with other persons in the conference. Details: The select box will give the list of online users in the conference. The text area will display the list of messages that the particular client has received.
72
The Edit box is used to type the messages to communicate with the other persons in the conference. The send button is used to send the message that has typed in the text box to selected persons. The add button is used to get the next screen to add the clients to conference. The close button is used to come out of the conference screen. Screen Design:
SYSTEM TESTING
Software testing is a critical element of software quality assurance and represents the ultimate review of software specification, design and coding. The increasing visibility of software as a system element and the attendant costs associated with a software failure are motivating forces for well planned, thorough testing. It is not unusual for software. Development organization to expend 40 percent of total project effort on testing. Hence the
73
importance of software testing and its implications with respect to software quality can not be overemphasized. Different types of testing have been carried out for this system, and they are briefly explained below. Types of Testing: Two main types of testing have been carried out to ensure that this system is a quality product, namely the Unit Testing and Integration Testing. Unit Testing: Unit Testing focuses verification effort on the smallest unit of software design module. Using the detailed description as a guide, important control paths are tested to uncover errors within the boundary of the module. The various modules that have undergone types of input data were given to ensure the consistency of the module and to ensure that information properly flows into and out of the program unit under test. The database integrity is validated during all steps in the execution.
Integration Testing: Integration testing is a 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 modules and build a program structure that has been detected by design. There are two types of integration testing namely, Top-Down Integration and Bottom-Up Integration. For the system a combination of both the types known as Sandwich Testing has been used. The Top-Down Integration was used during the integration of the various Masters and the Bottom-up Integration method
74
was used during the integration of the various modules of the process generation and the report generation. The various validations done in this system are given below: Server Login Screen: The company administrator name is checked whether it is valid name or not. If he is not a valid person he can not enter into the system to call employees to conference. The password entered by the administrator will be checked with the password set by the system. If it is incorrect he can not login into the system, and also he will get a message like u are not authenticated to server. If he is a valid person he will get the list of employees so that he can call require persons to the conference.
Client Login Screen: The client name is checked, whether it exists in the client details table of the database. If it is invalid he can not enter into the system to participate in the conference. The password entered by the client will be checked with the respective client, if it is incorrect then he will get a message like you are not an authenticated client. When the client name and password is correct he can enter into the system to participate in the conference.
75
If he is a valid person he will get the list of employees selected by system administrator. So that he can select required person to communicate with them.
SYSTEM IMPLEMENTATION
After proper testing and validation, the question arises whether the system can be implemented or not. Implementation includes all those activities that take place to convert from the old system to the new. The new system may be totally new, replacing an existing module or automated system, or it may be a major modification to an existing system. In either case proper implementation is essential to provide a reliable system to meet organization requirements.
76
All planning has now, be completed and the transformation to a fully operational system can commence. The first job will be writing, debugging documenting of all computer programs and their integration into a total system. The master and transaction files are decided, and this general processing of the system are established. Programming is complete when the programs confirmed to the detailed specification. When the system is ready for implementation, emphasis switches to communicate with the finance department staff. Open discussion with the staff is important from the beginning of the project. Staff can be expected to be concerned about the effect of the automation on their jobs and the fear of redundancy or loss of status must be allayed immediately. During the implementation phase it is important that all staff concerned be appraised of the objectives of overall operation of the system. They will need shinning on how computerization will change their duties and need to understand how their role relates to the system as a whole. An organization-training program is advisable, this can include demonstrations, newsletters, seminars etc. The department should allocate a member of staff, who understands the system and the equipment, and should be made responsible for the smooth operation of the system. An administrator should coordinate the users to the system. Users should be informed about new aspects of the system that will, affect them. The features of the system explained with the adequate documentation. New services such as security, on-line application form and back-ups must be advertised on the staff when the time is ripe. Existing documents such as employee loan details should be entered into the new system. Since these files are very large, conversion of these may
77
continue long after the system based on current files has been implemented. Hence we need to assign responsibility for each activity. The system may come into full operation via number of possible routes. Complete change over at one point time is conceptually the most tidy. But this approach requires careful planning and coordination, particularly during the changeover. A phased approach, possible implementing the system of the section relating to one operation or procedure first and progressing to more novel or complex subsystems in the fullness of time. These likely to be less traumatic. A phased approach gives the staff time to adjust to the new system. But depends on being able to split the system, without reliance on it. Thus approach is sensible when the consequences of failure are disastrous, but will require extra staff time. The fourth angle, is pilot operation permits any problems to be tackled on a smaller scale operation. Pilot operation generally means the implementation of the complete system, but at one location or branch only.
78
A hard disk with a minimum of 50 megabytes available space for a full installation. SVGA or higher-resolution screen supported by Microsoft Windows. 32 MB RAM. 1.44 floppies drive. A mouse or other suitable pointing device. To Setup from the floppy discs: The setup can be run as many times as necessary. During the installation process many files and DLLs are added to the Windows directory. Hence it is necessary to remove these files during uninstallation.
Step to Uninstall: Select Settings from the Start menu. Choose Control Panel. Select the Add/Remove programs applet. Select the HLMS icon to uninstall. Starting Net Conference: Once the setup procedure has been completed, Net Conference can be started by using, the start button in the task bar in Windows NT workstation. By selecting Netscape navigator or Internet Explorer version2.5 on wards we can run our project. Before running our project we should run JavaWebServer in Netscape. To run this JavaWebServer we should run this in dos prompt by selecting httpd from bin in the explore session. This JavaWebServer should run till the end of our project. To run this JavaWebServer in Netscape we should
79
give our path and system port number. This is the procedure to run our project successfully.
CONCLUSION
The objective of this project is to conduct conferences on the Internet or Intranet. Instead of conducting conferences in some places by using this project they can participate in conference in their house itself by using their PC. By using this project they can Conduct conferences with their employees. So they can get online decisions from employees from the different branches of the company. The another advantage is that the company is having branches throughout the country. So this will help them to communicate business affairs of the company and live meetings and conferences between their directors. They can conduct board of directors meeting.
80
It will give On-line solutions from the superiors to the employees. Likely there are so many advantages by developing this conference on the net.
81
BIBLIOGRAPHY
Patrick Naughton and Herbert Shildt , The complete reference Java 2.0. Joseph L. weber, Using Java 2.0 , PHI Publishers. Karl Moss, Java Servlets . Jason Hunter with William Crawford , Java Servlet Programming SPD publications. Tom Negrino and Dori smith, Java Script For The world Wide Web.
Jeffrey Ritcher, Adwanced Windows NT, Microsoft Press, 1998. David A. Solomon, Inside Windows NT, Microsoft Press, Second Edition-1998.
82
83
84
EMPLOYEE DETAILS
85
86
87
DELETED USERS
88
89
CLIENT 1 ENTRY
90
91
CLIENT 2 ENTRY
92
93
94
95
96
CLIENT 1 CONFERENCING
97
CLIENT 2 CONFERENCING
98
CLIENT 2 CONFERENCING
99
CLIENT 1 CONFERENCING
100