30-08-2014, 12:18 PM
The purpose of this document management system is to present a detailed description of scanning/indexing and DMS (Document Management System) for Modern Record Room Madhya Pradesh. This application will be used by scanning team in 342 tehsils location of 50 district of Madhya Pradesh. It will explain the purpose and features of system, the interfaces of the system, what the system will do, the constraints under which it must operate and how the system will react to external stimuli. This document is intended for both the stakeholders and the developers of the system. This application will support multiple operating systems(window and linux) with multiple level of security. Document Management System should provide state-of-art technology,enabling digitalization and automate into Paperless Office. It essentially should involve Document Imaging-conversion of paper documents into digital images on a computer. System should meet the needs of safe archival as well as quick digital access. The proposed system should necessarily integrate the following features for smooth functioning:
Javais a set of severalcomputer softwareproducts and specifications fromSun Microsystems(which has since merged withOracle Corporation), that together provide a system for developingapplication softwareand deploying it in across-platformcomputing environment. Java is used in a wide variety ofcomputing platformsfromembedded devicesandmobile phoneson the low end, toenterprise serversandsupercomputerson the high end. While less common ondesktop computers,Java appletsare sometimes used to provide improved and secure functions while browsing theWorld Wide Web.
Writing in theJava programming languageis the primary way to produce code that will be deployed asJava bytecode. There are, however, bytecodecompilersavailable for other languages such asAda,JavaScript, Python, andRuby. Several new languages have been designed to run natively on theJava Virtual Machine(JVM), such asScala,ClojureandGroovy.Java syntaxborrows heavily fromCandC++, but object-oriented features are modeled afterSmalltalkandObjective-C.Java eliminates certain low-level constructs such aspointersand has a very simple memory model where every object isallocated on the heapand all variables of object types arereferences. Memory management is handled through integrated automaticgarbage collectionperformed by the JVM.
On November 13, 2006, Sun Microsystems made the bulk of its implementation of Java available under theGNU General Public License(GPL).
Platform
An edition of theJava platformis the name for a bundle of related programs from Sun that allow for developing and running programs written in theJavaprogramming language. The platform is not specific to any one processor oroperating system, but rather an execution engine (called avirtual machine) and a compiler with a set of libraries that are implemented for various hardware and operating systems so that Java programs can run identically on all of them.
· Java Card: A technology that allows small Java-based applications (applets) to be run securely onsmart cardsand similar small-memory devices.
· Java ME(Micro Edition): Specifies several different sets of libraries (known as profiles) for devices with limited storage, display, and power capacities. Often used to develop applications for mobile devices, PDAs, TVset-top boxes, and printers.
· Java SE(Standard Edition): For general-purpose use on desktop PCs, servers and similar devices.
· Java EE(Enterprise Edition): Java SE plus various APIs useful formulti-tierclient–serverenterprise applications.
The Java platform consists of several programs, each of which provides a portion of its overall capabilities. For example, the Java compiler, which converts Java source code into Java bytecode (an intermediate language for the JVM), is provided as part of theJava Development Kit(JDK). TheJava Runtime Environment(JRE), complementing the JVM with ajust-in-time (JIT) compiler, converts intermediate bytecode into native machine code on the fly. An extensive set of libraries are also part of the Java platform.
The essential components in the platform are the Java language compiler, the libraries, and the runtime environment in which Java intermediate bytecode "executes" according to the rules laid out in the virtual machine specification.
JVM ( Java Virtual Machine )
The heart of the Java platform is the concept of a "virtual machine" that executesJava bytecode programs. This bytecode is the same no matter what hardware or operating system the program is running under. There is a JIT(Just In Time) compiler within theJava Virtual Machine, or JVM. The JIT compiler translates the Java bytecode into native processor instructions at run-time and caches the native code in memory during execution.
The use of bytecode as an intermediate language permits Java programs to run on any platform that has a virtual machine available. The use of a JIT compiler means that Java applications, after a short delay during loading and once they have "warmed up" by being all or mostly JIT-compiled, tend to run about as fast as native programs.Since JRE version 1.2, Sun's JVM implementation has included ajust-in-time compilerinstead of an interpreter.
Although Java programs arecross-platformor platform independent, the code of the Java Virtual Machines (JVM) that execute these programs is not. Every supported operating platform has its own JVM.
Languages:
The word Java, alone, usually refers to the Java programming language that was designed for use with the Java platform. Programming languages are typically outside of the scope of the phrase "platform", although the Java programming language is listed as a core part of the Java platform. The language and runtime are therefore commonly considered a single unit.
Nevertheless, third parties have produced manycompilersorinterpretersthat target the JVM. Some of these are for existing languages, while others are for extensions to the Java language. These include:
BeanShella lightweight scripting language for Java Clojure Groovy JRuby, aRubyinterpreter Jython, aPythoninterpreter that includes jythonc, a Python-to-Java bytecode compiler Rhino, aJavaScriptinterpreter Scala Gosu
Java Development Kit
TheJava Development Kit(JDK) is aSunproduct aimed at Java developers. Since the introduction of Java, it has been by far the most widely used Javasoftware development kit(SDK).It contains a Java compiler, a full copy of theJava Runtime Environment(JRE), and many other important development tools.
Java’s Magic : Byte Code
The key that allows Java to solve both the security and the portability problems just described is that the output of a Java compiler is not executable code. Rather, it is byte code. Bytecode is a highly optimized set of instructions designed to be executed by the Java Run time system, which is called the Java Virtual Machine (JVM). That is, in its standard form, the JVM is an Interpreter for bytecode. Only the JVM needs to be implemented for each environment and any Java program can run on any operating system. Programs are built either in notepad or in the Dos Editor and then executed in Dos prompt.
Principles
There were five primary goals in the creation of the Java language:
· It should be "simple, object-oriented and familiar
· It should be "architecture-neutral and portable"
It should execute with "high performance" It should be "interpreted, threaded, and dynamic"
Versions
Major release versions of Java, along with their release dates:
§ JDK 1.0 (January 23, 1996)
§ JDK 1.1 (February 19, 1997)
§ J2SE 1.2 (December 8, 1998)
§ J2SE 1.3 (May 8, 2000)
§ J2SE 1.4 (February 6, 2002)
§ J2SE 5.0 (September 30, 2004)
§ Java SE 6 (December 11, 2006)
§ Java SE 7 (July 28, 2011)
Java Characteristic
1.One characteristic of Java is portability, which means that computer programs written in the Java language must run similarly on any hardware/operating-system platform. This is achieved by compiling the Java language code to an intermediate representation calledJava bytecode, instead of directly to platform-specificmachine code. Java bytecode instructions are analogous to machine code, but are intended to beinterpretedby avirtual machine(VM) written specifically for the host hardware.End-userscommonly use aJava Runtime Environment(JRE) installed on their own machine for standalone Java applications, or in a Web browser for Javaapplets.
2.Standardized libraries provide a generic way to access host-specific features such as graphics,threading, andnetworking.
3.A major benefit of using bytecode is porting. However, the overhead of interpretation means that interpreted programs almost always run more slowly than programs compiled to native executables would. Just-in-Time (JIT) compilers were introduced from an early stage that compile bytecodes to machine code during runtime.
Creating And Using Packages
To make types easier to find and use, to avoid naming conflicts, and to control access, programmers bundle groups of related types into packages.
Definition:
Apackageis a grouping of related types providing access protection and name space management. Note thattypesrefers to classes, interfaces, enumerations, and annotation types. Enumerations and annotation types are special kinds of classes and interfaces, respectively, sotypesare often referred to in this lesson simply asclasses and interfaces.
The types that are part of the Java platform are members of various packages that bundle classes by function: fundamental classes are injava.lang, classes for reading and writing (input and output) are injava.io, and so on. You can put your types in packages too.
Suppose you write a group of classes that represent graphic objects, such as circles, rectangles, lines, and points. You also write an interface,Draggable, that classes implement if they can be dragged with the mouse.
You should bundle these classes and the interface in a package for several reasons, including the following:
You and other programmers can easily determine that these types are related. You and other programmers know where to find types that can provide graphics-related functions. The names of your types won't conflict with the type names in other packages because the package creates a new namespace. You can allow types within the package to have unrestricted access to one another yet still restrict access for types outside the package.
Chapter 4
Hardware And Software Requirements
4.1 hardware
HARDWARE
SPECIFICATIONS
CPU
INTEL CORE I3
BARCODE READER
FINGURE PRINT READER
BARCODE PRINTER
SCANNER INSTALLATION
RAM
4GB
HARD DISK
500GB
4.2 software
Software
Module
Version
Database
SQL SERVER
2008 R2
BROWSER
MOZILLA FIREFOX
IDE
ECLIPSE
2008 or higher
OPERATING SYSTEM
UBUNTU
12.04
Framework
SPRING , HIBERNATE
4.0
4.3 Description Of Tools Used
4.3.1 Spring Framework:
The Spring Framework is an open source application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBean (EJB) model.
Modules:
The Spring Framework includes several modules that provide range of services:
inversion of control container: configuration of application components and lifecycle management of java objects, done mainly via dependency injection aspect-oriented programming: enables implementing cross-cutting concerns. data access: working with relational database management systems on the java platform using jdbc and object-relational mapping tools and with nosql databases transaction management: unifies several transaction management apis and coordinates transactions for java objects model–view–controller: an http- and servlet-based framework providing hooks for extension and customization for web applications and restful web services. remote access framework: configurative rpc-style marshalling of java objects over networks supporting rmi, corba and http-based protocols including web services (soap) convention over configuration: a rapid application development solution for spring-based enterprise applications is offered in the spring roo module authentication and authorization: configurable security processes that support a range of standards, protocols, tools and practices via the spring security sub-project (formerly acegi security system for spring). remote management: configurative exposure and management of java objects for local or remote configuration via jmx messaging: configurative registration of message listener objects for transparent message-consumption from message queues via jms, improvement of message sending over standard jms apis testing: support classes for writing unit tests and integration tests.
4.3.2 Hibernate Frame Work:
hibernate orm (hibernate in short) is an object-relational mapping library for the java language, providing a framework for mapping an object-oriented domain model to a traditional relational database. hibernate solves object-relational impedance mismatch problems by replacing direct persistence-related database accesses with high-level object handling functions.
Hibernate is a free software that is distributed under the gnu lesser general public license.
Hibernate's primary feature is mapping from java classes to database tables (and from java data types to sql data types). hibernate also provides data query and retrieval facilities. it generates sql calls and relieves the developer from manual result set handling and object conversion. applications using hibernate are portable to supported sql databases with little performance overhead
Mapping
mapping java classes to database tables is accomplished through the configuration of an xml file or by using java annotations. when using an xml file, hibernate can generate skeleton source code for the persistence classes. this is unnecessary when annotations are used. hibernate can use the xml file or the annotations to maintain the database schema.
facilities to arrange one-to-many and many-to-many relationships between classes are provided. in addition to managing associations between objects, hibernate can also manage reflexive associations where an object has a one-to-many relationship with other instances of its own type.
Hibernate supports the mapping of custom value types. this makes the following scenarios possible:
overriding the default sql type that hibernate chooses when mapping a column to a property. mapping java enum to columns as if they were regular properties. mapping a single property to multiple columns.
4.3.3 Ide: Integrated Development Environment (Eclipse)
In computer programming, eclipse is an integrated development environment (ide). it contains a base workspace and an extensible plug-in system for customizing the environment. written mostly in java, eclipse can be used to develop applications. by means of various plug-ins, eclipse may also be used to develop applications in other programming languages: ada, abap, c, c++, cobol, fortran, haskell, javascript, lasso, perl, php, python, r, ruby (includingframework), scala, clojure, groovy, scheme, and erlang. it can also be used to develop packages for the software mathematica. development environments include the eclipse java development tools (jdt) for java and scala, eclipse cdt for c/c++ and eclipse pdt for php, among others.
The initial codebase originated from ibm visualage. the eclipse software development kit (sdk), which includes the java development tools, is meant for java developers. users can extend its abilities by installing plug-ins written for the eclipse platform, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules.
4.3.4 Database: Sql Server
sql ( structured query language) is a special-purpose programming language designed for managing data held in a relational database management system (rdbms).
originally based upon relational algebra and tuple relational calculus, sql consists of a data definition language and a data manipulation language. the scope of sql includes data insert, query, update and delete, schema creation and modification, and data access control. although sql is often described as, and to a great extent is, a declarative language (4gl), it also includes procedural elements.
Language Elements
A chart showing several of the sql language elements that compose a single statement
the sql language is subdivided into several language elements, including:
clauses, which are constituent components of statements and queries. expressions, which can produce either scalar values, or tables consisting of columns and rows of data. predicates, which specify conditions that can be evaluated to sql three-valued logic (3vl) (true/false/unknown) or boolean truth values and which are used to limit the effects of statements and queries, or to change program flow. queries, which retrieve the data based on specific criteria. this is an important element of sql. statements, which may have a persistent effect on schemata and data, or which may control transactions, program flow, connections, sessions, or diagnostics. sql statements also include the semicolon (";") statement terminator. though not required on every platform, it is defined as a standard part of the sql grammar. insignificant whitespace is generally ignored in sql statements and queries, making it easier to format sql code for readability.
4.3.5 Operating System: Ubuntu
Ubuntu is a debian-based linux operating system, with unity as its default desktop environment (gnome was the previous desktop environment). it is based on free software and named after the southern african philosophy of ubuntu (literally, "human-ness"), which often is translated as "humanity towards others" or "the belief in a universal bond of sharing that connects all humanity". According to some metrics, ubuntu is the most popular desktop linux distribution. see installed base section. Development of ubuntu is led by canonical ltd., a company based on the isle of man and owned by south african entrepreneur mark shuttleworth. canonical generates revenue through the sale of technical support and other services related to ubuntu. the ubuntu project is publicly committed to the principles of open source development; people are encouraged to use free software, study how it works, improve upon it, and distribute it.