DSPACE LDAP AUTHENTICATION WITH VIDEO INTEGRATION
Mini Project Report
submitted by
Antony J NalkaraAswin Venugopal
Bony David Thomas
In partial fulfilment of the requirements for award of the degree of Bachelor of Technology in Computer Science & Engineering
FEDERAL INSTITUTE OF SCIENCE AND TECHNOLOGY (FISAT)Angamaly-683577, Ernakulam
Affiliated to
MAHATMA GANDHI UNIVERSITYKottayam-686560
May 2010
FEDERAL INSTITUTE OF SCIENCE AND TECHNOLOGY (FISAT)Mookkannoor(P.O), Angamaly-683577
CERTIFICATE
This is to certify that the mini project titled Dspace LDAP Authentication
with Video integration submitted by Antony j Nalkara, Aswin Venugopal,
Bony David Thomas, towards partial fulfilment of the requirements of the
award of the degree of Bachelor of Technology in Computer Science &
Engineering is a record of bonafide work carried out by them during the
academic year 2009-2010.
Staff Incharge Head of the Department
Place:Date:
Internal Examiner: External Examiner:
ACKNOLEDGEMENT
If the words were considered as symbols of Approval and token of
Acknoledgement, then let the words pay the heralding role of expressing gratitude. First
and Foremost we praise the God Almighty for the grace he showered on us during our
studies as well as our day to day activities.
We would like to take this chance to thank the chairman of FISAT
Mr. P V Mathew, and Principal, Dr. P S Sreejith for providing us with such an
enviornment, where students can explore their creative ideas. Equally eligible is the
Head of the Department of Computer Science Mr Prasad J C for encouraging the
students to make these nations true.
We are extremely gratefull to the project-incharge, Mr Mahesh.C,
Ms Resmi R and Ms Anjali G Nair for their valuable suggestions for the project. We
also sincierly thank the Computer Scienc Department Faculty for providing us with
invaluable help.
Overall nothing compares the support and hard work equally put in
by our team mates. Last but not the least, we thank all our families and friends for
giving us the help, strength and courage for accomplishing the task.
ABSTRACT
Dspace authentication using LDAP and video streaming in
Dspace . The project aims at integrating LDAP with Dspace and integrating a video
player in Dspace which can stream flash videos within its collection.
Dspace is created using JSP(Java Server Pages) and Java servlets.It can be
installed in a 2 step build procedure. Once its build, it can be customised to contain
LDAP authentication. This is done in the configuration file. Once its configured with
the given LDAP settings, a user can login into Dspace with the LDAP username and
password. Once a user tries to login,the LDAP DN(Distinguished Name) of that user is
sent to the LDAP server and the bind is performed by the LDAP administrator for
checking the credentials.If it is a valid user,login is validated.
A video player is integrated in Dspace by creating a function in the
'itemtag.java' in the Dspace source file. Also the player framework is added along with
the source components. This will modify the Dspace after the build phase. So once a
flash video is uploaded in Dspace collections, a user can view it in Dspace itself without
any external video players.The function is called when a flash video is selected and this
results in the embedded video player appearing on the webpage which streams the
selected video.
CONTENTS
1.0 PREAMBLE
1.1 Introduction of the project
1.2 Objectives of the project
1.3 Scope of the project
2.0 SYSTEM STUDY
2.1 Proof of concept
2.1.1 Need of Proof of concept
2.1.2 Proof of concept design
2.1.3 Proof of concept results
2.2 System Specifications
2.2.1 Software specification for development, implementation
2.2.2 Hardware specification for development, implementation
3.0 SYSTEM DESIGN & MODELLING
3.1 Design Methodologies
3.2 System Architecture
3.3 Control Flow Diagram
3.4 Layer Explanation Diagram
3.5 Application Design diagram
3.6 Flowchart
3.7 Technology Explanations
4.0 TESTING
4.1 Introduction
4.2 Test Cases
5.0 IMPLEMENTATION
5.1 Introduction
5.2 Installation Procedure
5.3 Implementation plan
6.0 CONCLUSION
6.1 Advantages and Disadvantages of the system
6.2 Future scope
7.0 APPENDIX
7.1 Sample code
7.2 Technology explanation
7.3 Glossary
7.4 Screenshots
DSpace LDAP authentication and video integration Preamble
1.0 PREAMBLE
1.1 Introduction to the project
Today people and businesses rely on networked computer systems
to support distributed applications. Applications might interact with computers on the
same local area network, within a corporate intranet, within extranets linking up
partners and suppliers, or anywhere on the worldwide Internet.
LDAP
LDAP is the Lightweight Directory Access Protocol. It is basically a directory of
users whose accounts are built up in a hierarchy. The DN (distinguished name) of a user
is a unique name that identifies a single user in the tree. It is made up of several parts
including their CN (common name), any OUs (organisational units) that they are in, and
the DC (domain component).
Dspace
DSpace is an open source software package that provides the tools for management
of digital assets, and is commonly used as the basis for an institutional repository. It
supports a wide variety of data, including books, theses, 3D digital scans of objects,
photographs, film, video, research data sets and other forms of content. The data is
arranged as community collections of items, which bundle bitstreams together.
DSpace is also intended as a platform for digital preservation activities. Since
its release in 2002, as a product of the HP-MIT Alliance, it has been installed and is in
production at over 240 institutions around the globe, from large universities to small
higher education colleges, cultural organizations, and research centers.t is shared under
a BSD licence, which enables users to customize or extend the software as needed.The
first version of DSpace was released in November 2002, following a joint effort by
developers from MIT and HP Labs in Cambridge, Massachusetts.
Federal Institue Of Science & Technology 1 Computer Science & Engineering
DSpace LDAP authentication and video integration Preamble
1.2 Objectives of the project
The objectives of this project are:
• Dspace LDAP authentication
• Enable Video streaming in Dspace
Dspace LDAP authentication
DSpace goes through 3 steps to authenticate a user against an LDAP server:
1. Collect username and password
2. Bind to the LDAP server
3. Use the connection
The user can login into Dspace using LDAP username and password and the Dspace
auto-registers the user and grants access if the login information is authentic.
Video streaming in Dspace
The other objective of this project is to include or embedd a video player in Dspace.
Such a player will actually makes it possible to watch videos in Dspace and gives an
impression of live video streaming.The video player will be made possible using a
function which will create an object and this will be result in the video player appearing
whenever a video is selected in Dspace collections.
1.3 Scope of the project
The LDAP Hierarchical Authentication makes it easy for institutions/firms
using LDAP for authentication purpose. Such an instituton can install and use Dspace
without having to register all the members in the Dspace database. The Dspace
automatically use LDAP for authentication once enabled.
Federal Institue Of Science & Technology 2 Computer Science & Engineering
DSpace LDAP authentication and video integration Preamble
The LDAP Hierarchical Authentication method is particularly useful when you
have users in separate LDAP containers and need to to have users in different containers
log in. For example, you may have students in one container and faculty/staff in another
container, with both containers at the same level in the hierarchy of your organization's
LDAP server.
Video streaming in Dspace is an important step forward as it can play video
internally. The administrator can store flash videos in the filesystem of Dspace which
can be watched by all users of Dspace with the help of embedded video player. It
becomes a huge advantage when the computer system does not have a video player
preinstalled.
Using communities and groups, different types of data can be stored
category-wise and permissions can be altered by administrator according to the
company requirements.
Federal Institue Of Science & Technology 3 Computer Science & Engineering
DSpace LDAP authentication and video integration System Study
2.0 SYSTEM STUDY
2.1 Proof of Concept
We attempt to bind to the ldap server with the username and password
provided by the user. If bind succeeds, user login valid. If the bind fails there could be
problems such as wrong password, ldap server down, network problem etc. It is
possible to integrate DSPACE with LDAP .
2.1.1 Need of Proof of Concept
Various languages and scripting tools can be used for development
and to access a LDAP server.In case of Java various alternatives exist to connect a
client to a LDAP server. JNDI is one of such alternatives. Since JNDI is part of J2EE, it
is more convenient to use. JDNI is similar to JDBC, which is not directly
communicating with underlying LDAP server, can be easily replaced by some other
system provider when required. That means without any LDAP server, client application
can be developed at early stage and simply switch to actual JNDI provider when
everything is ready. More importantly, JNDI is really good in maintaining object
persistence on the network. JDNI is covering more area compared to other technologies
for same purpose.
JavaServer Pages (JSP) is a JAVA technology that helps software developers
serve dynamically generated web pages based on HTML, XML, or other document
types. JSP allows Java code and certain pre-defined actions to be interleaved with static
web markup content, with the resulting page being compiled and executed on the server
to deliver an HTML or XML document. Since JSP uses Java technology, it is possible to
authenticate LDAP using JSP pages. In the LDAP, authentication information is
supplied in the "bind" operation. In LDAP, a client initiates a connection with the LDAP
server by sending the server a "bind" operation that contains the authentication
Federal Institue Of Science & Technology 4 Computer Science & Engineering
DSpace LDAP authentication and video integration System Study
information. A JSP page having authentication information can redirect to some other
pages according to whether the “bind” was sussesfull or not.
Dspace application contains components that communicate with the world outside
which is web based. That is, Dspace uses a Web User Interface. The DSpace Web UI is
most-used component in the application layer. There are two versions for Dspace web
UI:
1. JSPUI: Built on Java Servlet and JavaServer Page technology
2. XMLUI : Built on XML
Since it has a JSP User Interface, if the concept of authenticating LDAP using
Java or JSP turns true then Dspace can be successfully integrated with LDAP.
DSpace makes use of a stackable authentication mechanism. This means that
several authentication systems can be used, and when a user attempts to log in, their
credentials are tried in each system. If none of the systems will authenticate the users
then they are disallowed from logging in. Often installations just use one mechanism,
but you may wish to have several. For example you might wish to enable IP
authentication so that users can login without a username, just because they are on
campus. People off-campus can use LDAP, and administrators could use accounts in the
built-in DSpace user database.
Federal Institue Of Science & Technology 5 Computer Science & Engineering
DSpace LDAP authentication and video integration System Study
2.1.2 Proof of Concept design
For integrating LDAP with a JSP page, a JSP page requesting authentication
information of the user is created. Authentication information contain username and
user credential. This is passed to another JSP page which try to connect to the LDAP
server. If connection cannot be established, then an exception is created. If connection is
established then it try to perform a bind operation with the given information. On
successfull bind the page gives a validated signal. On unsuccessfull bind the page gives
a failure signal.
2.1.3 Proof of Concept results
Result of Proof of concept is the jsp web page which authenticates an LDAP user
if its an authentic account.
The screenshot can be viewed in the Appendix.Page Nos- xiv,xv Fig.16,Fig.17.
Federal Institue Of Science & Technology 6 Computer Science & Engineering
JSP page User Input LDAP Server
DSpace LDAP authentication and video integration System Study
2.2 System Specifications
2.2.1 Software Specification for development, implementation
1. UNIX-like OS or Microsoft Windows
Linux is a generic term referring to Unix-like computer operating systems based on
the Linux kernel. Their development is one of the most prominent examples of free and
open source software collaboration; typically all the underlying source code can be
used, freely modified, and redistributed, both commercially and non-commercially, by
anyone under licenses such as the GNU General Public License.
2. Java JDK 5 or later
The Java Development Kit (JDK) is a Sun Microsystem product aimed at java
developers. Since the introduction of Java, it has been by far the most widely used Java
SDK. On 17 November 2006, Sun announced that it would be released under the GPL,
thus making it a free software.
3. Relational Database: (PostgreSQL or Oracle)
PostgreSQL, often simply Postgres, is an object-relational database management
system (ORDBMS).It is released under an MIT-style license and is thus free and open
source software. As with many other open source programs, PostgreSQL is not
controlled by any single company, but has a global community of developers and
companies to develop it.
.Servlet Engine:Jakarta Tomcat 4.x or later
Apache Tomcat is an open source software implementation of the Java
Federal Institue Of Science & Technology 7 Computer Science & Engineering
DSpace LDAP authentication and video integration System Study
Servlet andJavaServer Pages technologies. The Java Servlet and JavaServer Pages
specifications are developed under the Java Community Process.
Building Tools:
1. Apache Maven 2.0.8 or later
Maven is a software tool for Java project management and build automation.
It is similar in functionality to the Apache Ant tool, but is based on different concepts.
Maven is hosted by the Apache Software Foundation, where it was formerly part of the
Jakarta Project.
Maven uses a construct known as a Project Object Model (POM) to describe the
software project being built, its dependencies on other external modules and
components, and the build order. It comes with pre-defined targets for performing
certain well defined tasks such as compilation of code and its packaging.
Maven dynamically downloads Java libraries and Maven plug-ins from one or
more repositories. Maven provides built-in support for retrieving files from the Maven 2
Central Repository and other Maven repositories, and can upload artifacts to specific
repositories after a successful build. A local cache of downloaded artifacts acts as the
primary means of synchronizing the output of projects on a local system.
Maven is built using a plugin-based architecture that allows it to make use of any
application controllable through standard input. Theoretically, this would allow anyone
to write plugins to interface with build tools (compilers, unit test tools, etc.) for any
other language. In reality, support and use for languages other than Java has been
minimal. Currently a plugin for the .Net framework exists and is maintained , and a
C/C++ native plugin was at one time maintained for Maven.
Project Object Model provides all the configuration for a single project. General
configuration includes the project's name, its owner and its dependencies on other
projects. One can also configure individual phases of the build process, which are
Federal Institue Of Science & Technology 8 Computer Science & Engineering
DSpace LDAP authentication and video integration System Study
implemented as plugins. For example, one can configure the compiler-plugin to use
Java version 1.5 for compilation, or specify that project can be packaged even if some
unit test fails.
2. Apache Ant 1.6.2 or later
Apache Ant is a software tool for automating software build processes. It is
similar to Make but is implemented using the Java language, requires the Java platform,
and is best suited to building Java projects.
The most immediately noticeable difference between Ant and Make is that Ant
uses XML to describe the build process and its dependencies, whereas Make has its
Makefile format. By default the XML file is named build.xml.
Ant is an Apache project. It is open source software, and is released under the
Apache Software License.
2.2.2 Hardware specification for development, implementation
Processor : Pentium4
Memory : 512 MB
RAM : 256 MB
HDD : 20 GB
Federal Institue Of Science & Technology 9 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
3.0 SYSTEM DESIGN & MODELLING
3.1 Design Methodologies
Design is the first step in the development phase for any engineered product or
system. It may be defined as:”the process of applying various techniques and principles
for the purpose of defining a devise,a process or a system in sufficient detail to permit
its physical realization”. Computer software design like engineering design approaches
in other disciplines changes continually as new methods,better analysis,and broader
understanding evolve.
Using one of a number of design methods the design steps produces a data
design,an architectural design and a procedural design. Preliminary design is concerned
with transformation requirements to data and software architectures. Detail design focus
on refinement to architectural representation that lead to detailed structure and
algorithmic representation for software. The data design transforms the information
domain model created during analysis into the data structures that will be required to
implement the software. The architectural design defines the relationship among major
structural components into a procedural description of the software.
Elements of design
The components of information system described using requirements analysis
are the focal point in system design. Analysis must design the following elements.
Data Flows
Data Stores
Processes
Controls
Roles
Federal Institue Of Science & Technology 10 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
The flow analysis permits analysts to isolate areas of interest in the organization
and to study them by examining the data that enter the process and seeing how they are
changed when they leave the process. In the Data Flow Diagrams, the physical system is
translated into a logical description that focuses on data and processes. It is
advantageous to emphasis data and processes in order to focus on the actual activities
that occur and the resources needed, rather than one who performs the work.
3.1.1 Logical Design
In the logical design, description of the inputs, outputs, databases and procedures
are given in a format that meets the requirements.
Data Flow Diagrams
Data Flow Diagram (DFD) is used to define the flow of the system and its
resources such as information. Data flow diagrams are a way of expressing system
requirements in a graphical manner. DFD represents one of the most ingenious tools of
clarifying system requirements and identifying major transformations that will become
programs in the system design. In the normal convention, logical DFD can be
completed using only 4 notations.
The DFD at the simplest level is referred to as the 'CONTEXT ANALYSIS
DIAGRAM'. These are expanded by level, each explaining its process in detail.
Processes are numbered for easy identification and are normally labeled in block letters.
Each data flow is labeled for easy understanding.
3.1.2 Physical design
Input design and output design
Input design is the process of converting user inputs into computer-based format.
The project requires a set of informations from the user to prepare a report, when
Federal Institue Of Science & Technology 11 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
organized input data are needed.
In the system design phase, the expanded DFD identifies logical data flow, data
stores and destination. Input data is collected and organized into groups of similar data.
The goal behind designing input data is to make it free from logical errors. The input
entry to all type of clients is the user name and password only. If they are valid the
client is allowed to enter into the software.
3.1.3 Code Design
A code is an ordered collection of symbols to provide unique identification of
data. The following are the characters of a good code generation.
Characteristics of good coding
1.0 Uniqueness
2.0 Meaningfulness
3.0 Stability
4.0 Uniform Size and Format
5.0 Simplicity
6.0 Conciseness
7.0 Versatility
3.1.4 Database Design
The general theme behind a database is to handle information as an integrated
whole. A database is a collection of interrelated data stored with minimum redundancy
to serve many users quickly and efficiently. The general objective is to make
information access easy, quick, inexpensive and flexible for user.
In a database environment, common data are available in which several users
can use. The concept behind a database is an integrated collection of data and provides a
centralized access to the data from the program. It makes possible to treat data as a
Federal Institue Of Science & Technology 12 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
separate resource. While designing a database, several objectives must be considered:
• Controlled Redundancy
• Data Independence
• More information at low cost
• Accuracy and Integrity
• Recovery from failure
• Privacy and Security
• Performance
Data Flow Diagrams
A data-flow diagram (DFD) is a graphical representation of the "flow" of data
through an information system. DFDs can also be used for the visualization of data
processing (structured design). On a DFD, data items flow from an external data source
or an internal data store to an internal data store or an external data sink, via an internal
process.
A DFD provides no information about the timing or ordering of processes, or
about whether processes will operate in sequence or in parallel. It is therefore quite
different from a flowchart, which shows the flow of control through an algorithm,
allowing a reader to determine what operations will be performed, in what order, and
under what circumstances, but not what kinds of data will be input to and output from
the system, nor where the data will come from and go to, nor where the data will be
stored (all of which are shown on a DFD).It is common practice to draw a context-level
data flow diagram first, which shows the interaction between the system and external
agents which act as data sources and data sinks. This context-level DFD is next
"exploded", to show more detail of the system being modeled.
Data-flow diagrams (DFDs) are one of the three essential perspectives of the
Federal Institue Of Science & Technology 13 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
structured-systems analysis and design method SSADM. The sponsor of a project and
the end users will need to be briefed and consulted throughout all stages of a system's
evolution. With a data-flow diagram, users are able to visualize how the system will
operate, what the system will accomplish, and how the system will be implemented. The
old system's dataflow diagrams can be drawn up and compared with the new system's
data-flow diagrams to draw comparisons to implement a more efficient system. Data-
flow diagrams can be used to provide the end user with a physical idea of where the
data they input ultimately has an effect upon the structure of the whole system from
order to dispatch to report. How any system is developed can be determined through a
data-flow diagram.
There are only four symbols:
1. Squares representing external entities, which are sources or destinations of data.
2. Rounded rectangles representing processes, which take data as input, do
something to it, and output it.
3. Arrows representing the data flows, which can either be electronic data or
physical items.
4. Open-ended rectangles representing data stores, including electronic stores such
as databases or XML files and physical stores such as or filing cabinets or
stacks of paper.
The general rules to follow while drawing a DFD are :
1. All processes must have at least one data flow in and one data flow out.
2. All processes should modify the incoming data, producing new forms of
outgoing data.
3. Each data store must be involved with at least one data flow.
4. Each external entity must be involved with at least one data flow.
5. A data flow must be attached to at least one process.
The four key elements in DFD are processes,data flows,data stores & external entities.
Federal Institue Of Science & Technology 14 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
External Entity
An external entity is a source or destination of a data flow which is outside the
area of study.
Process
A process shows a transformation or manipulation of data flows within the
system. The symbol used is a rectangular box.
Data Flow
A data flow shows the flow of information from its source to its destination. A
data flow is represented by a line, with arrowheads showing the direction of flow.
Information always flows to or from a process .
Data Store
A data store is a holding place for information within the system:
It is represented by an open ended narrow rectangle. Data stores may be long-term files
such as sales ledgers, or may be short-term accumulations.
DFD is used to define the flow of the system and its resources such as
information. DFDs are a way of expressing system requirements in a graphical
manner.It has the purpose of clarifying system requirements and identifying major
transformations that will become programs in system design.In normal
convention,logical DFD can be completed using only 4 notations.
Federal Institue Of Science & Technology 15 Computer Science & Engineering
A square represents a data source or
destination
A closed figure represent process that transform
the control.
DSpace LDAP authentication and video integration System Design & Modelling
System Feasibility
The aim of a feasibility study is to see whether it is possible to develop a system
at a reasonable cost. At the end of the feasibility study a decision is taken whether to
proceed or not.
A feasibility study contains the general requirements of the proposed system.
System study breaks into two stages:Preliminary and detailed. During the preliminary
analysis,the analyst lists the objectives of the proposed system. They collectively form
the preliminary report.
Once it is approved,detailed analysis is done. Three technical aspects involved in
the feasibility study are:
• technological feasibility
• economic feasibility
Federal Institue Of Science & Technology 16 Computer Science & Engineering
A directed line represents process that transform
the data stream
A rectangle representing data stores, including
electronic stores such as databases or XML
files and physical stores such as or filing
cabinets or stacks of paper.
DSpace LDAP authentication and video integration System Design & Modelling
• operational feasibility
Technology and system feasibility
The assessment is based on an outline design of system requirements in terms of
Input, Processes, Output, Fields, Programs, and Procedures. This can be quantified in
terms of volumes of data, trends, frequency of updating, etc. in order to estimate
whether the new system will perform adequately or not. Technological feasibility is
carried out to determine whether the company has the capability, in terms of software,
hardware, personnel and expertise, to handle the completion of the project.
Economic feasibility
Economic analysis is the most frequently used method for evaluating the
effectiveness of a new system. More commonly known as cost/benefit analysis, the
procedure is to determine the benefits and savings that are expected from a candidate
system and compare them with costs. If benefits outweigh costs, then the decision is
made to design and implement the system. An entrepreneur must accurately weigh the
cost versus benefits before taking an action.
Operational feasibility
Is a measure of how well a proposed system solves the problems, and takes
advantages of the opportunities identified during scope definition and how it satisfies
the requirements identified in the requirements analysis phase of system development.
3.2 System Architecture
An architecture description is a formal description of a system, organized in a way
that supports reasoning about the structural properties of the system. It defines the
system components or building blocks and provides a plan from which products can be
Federal Institue Of Science & Technology 17 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
procured, and systems developed, that will work together to implement the overall
system. Systems architecture can best be thought of as a representation of an existent or
to be created system, and the process and discipline for effectively implementing the
design(s) for such a system. The set of relations (that is, embedded information) which
an architecture describes may be expressed in hardware, software, or something else.
•It is a representation because it is used to convey the informational content of the
elements comprising a system, the relationships among those elements, and the
rules governing those relationships.
•It is a process because a sequence of steps is prescribed to produce or change the
architecture, and/or a design from that architecture, of a system within a set of
constraints.
•It is a discipline because a body of knowledge is used to inform practitioners as to
the most effective way to design the system within a set of constraints.
Fig. 1
Federal Institue Of Science & Technology 18 Computer Science & Engineering
Hardware Layer
OS Java
Dspace
Tomcat Server
DSpace LDAP authentication and video integration System Design & Modelling
Fig.2
3.3 Control Flow Diagram
A control flow diagram shows the flow of control through a program as a graph.
Each node in the graph represents a statement in the flow. Control flow diagrams break
a process down to a finite number of steps that get executed one at a time. In a single-
threaded system, only one of the steps is being executed. The control flow governs how
the next step to be executed is determined. Control flow does not say anything about
what the inputs and outputs. It does not address why we might want to perform steps. It
does not address how the steps get performed internally.
Federal Institue Of Science & Technology 19 Computer Science & Engineering
Web Application Server
User Interface
DSpace LDAP authentication and video integration System Design & Modelling
Fig.3
3.4 Layer Explanation Diagram
The DSpace system is organised into three tiers which consist of a
number of components.Each layer only invokes the layer below it i.e. the application
layer may not used the storage layer directly.
Federal Institue Of Science & Technology 20 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
Fig.4
Storage Layer
The storage layer is responsible for physical storage of metadata and
content.DSpace uses a relational database to store all information about the organization
of content, metadata about the content, information about e-people and authorization,
and the state of currently-running workflows.
Fig .5
Federal Institue Of Science & Technology 21 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
Business logic layer The business logic layer deals with managing the content of the archive,
users of the archive (e-people), authorization, and workflow.
Fig.6
Application layer
The application layer contains components that communicate with the world
outside of the individual DSpace installation, for example the Web user interface and
the Open Archives Initiative protocol for metadata harvesting service.
Fig.7
Federal Institue Of Science & Technology 22 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
3.5 Application Design Diagram
A software design is a meaningful engineering representation of some software
product that is to be built. Application design serves as the foundation for all software
engineering steps that follow regardless of which process model is being employed.
Without a proper design we risk building an unstable system – one that will fail when
small changes are made, one that may be difficult to test.
The fundamental design concepts are:
•Abstraction - allows designers to focus on solving a problem without being
concerned about irrelevant lower level details (procedural abstraction - named
sequence of events, data abstraction - named collection of data objects)
•Refinement - process of elaboration where the designer provides successively
more detail for each design component
•Modularity - the degree to which software can be understood by examining its
components independently of one another
•Software architecture - overall structure of the software components and the
ways in which that structure provides conceptual integrity for a system
•Data structure - representation of the logical relationship among individual data
elements
•Information hiding - information (data and procedure) contained within a module
is inaccessible to modules that have no need for such information
Federal Institue Of Science & Technology 23 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
LDAP Authentication
We attempt to bind to the ldap server with the username and password provided
by the user. For authentication of the LDAP server , a JSP page requesting
authentication information of the user is created. Authentication information contain
username and user password. If connection cannot be established, then an error message
is displayed. If connection is established ,then it tries to perform a bind operation with
the given information. On successfull bind the a validated message is generated. On
unsuccessfull bind, the page displays a failure message.
Fig.8
Video Integration
Federal Institue Of Science & Technology 24 Computer Science & Engineering
JSP Page
Video file
Video Player
Java Codes forvarious application calls.....
Added Function to call video player
Java page in src.
Video player added to server
Calls function.
DSpace LDAP authentication and video integration System Design & Modelling
3.6 Flow Chart
Fig.9
Federal Institue Of Science & Technology 25 Computer Science & Engineering
ACCEPT USER CREDENTIALS
CONSTRUCT DN
IF VALIDATE= TRUE
SUCCESSFULL FAILURE
yes no
STOP
START
STOP
DSpace LDAP authentication and video integration System Design & Modelling
3.7 Technology Explanations
Dspace
DSpace is an open source software package that provides the tools for
management of digital assets, and is commonly used as the basis for an institutional
repository. It supports a wide variety of data, including books, theses, 3D digital scans
of objects, photographs, film, video, research data sets and other forms of content. The
data is arranged as community collections of items, which bundle bitstreams together.
DSpace is also intended as a platform for digital preservation activities. Since its
release in 2002, as a product of the HP-MIT Alliance, it has been installed and is in
production at over 240 institutions around the globe [1], from large universities to small
higher education colleges, cultural organizations, and research centers. It is shared under
a BSD licence, which enables users to customize or extend the software as needed.
DSpace is written in Java and JSP, using the Java Servlet API. It uses a relational
database, and supports the use of PostgreSQL and Oracle. It makes its holdings
available primarily via a web interface, but it also supports the OAI-PMH v2.0, and is
capable of exporting METS (Metadata Encoding and Transmission Standard) packages.
Future versions are likely to see increasing use of web services, and changes to the user
interface layer.
At a very high level, DSpace looks like this:
Web-based interface makes it easy for a submitter to create an archival item by
depositing files. DSpace was designed to handle any format from simple text
documents to datasets and digital video.
Data files, also called bitstreams, are organized together into related sets. Each
bitstream has a technical format and other technical information. This technical
Federal Institue Of Science & Technology 26 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
information is kept with bitstreams to assist with preservation over time.
An item is an "archival atom" consisting of grouped, related content and
associated descriptions (metadata). An item's exposed metadata is indexed for
browsing and searching. Items are organized into collections of logically-related
material.
A community is the highest level of the DSpace content hierarchy. They
correspond to parts of the organization such as departments, labs, research
centers or schools.
DSpace’s modular architecture allows for creation of large, multi-disciplinary
repositories that ultimately can be expanded across institutional boundaries.
DSpace is committed to going beyond reliable file preservation to offer
functional preservation where files are kept accessible as technology formats,
media, and paradigms evolve over time for as many types of files as possible.
The end-user interface supports browsing and searching the archives. Once an
item is located, Web-native formatted files can be displayed in a Web browser
while other formats can be downloaded and opened with a suitable application
program.
Federal Institue Of Science & Technology 27 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
Fig.10
Lightweight Directory Access Protocol
The Lightweight Directory Access Protocol, or LDAP (pronounced / lˈɛ
dæp/), is an application protocol for querying and modifying data using directory
services running over TCP/IP.[1]
A directory is a set of objects with attributes organized in a logical and
hierarchical manner. A simple example is the telephone directory, which consists of a
list of names (of either persons or organizations) organized alphabetically, with each
Federal Institue Of Science & Technology 28 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
name having an address and phone number associated with it.
An LDAP directory tree often reflects various political, geographic, and/
or organizational boundaries, depending on the model chosen. LDAP deployments
today tend to use Domain Name System (DNS) names for structuring the topmost levels
of the hierarchy. Deeper inside the directory might appear entries representing people,
organizational units, printers, documents, groups of people or anything else that
represents a given tree entry (or multiple entries).
The protocol accesses LDAP directories, which follow the 1993 edition of the X.500
model:
• A directory is a tree of directory entries.
• An entry consists of a set of attributes.
• An attribute has a name (an attribute type or attribute description) and one or
more values. The attributes are defined in a schema (see below).
• Each entry has a unique identifier: its Distinguished Name (DN). This consists
of its Relative Distinguished Name (RDN), constructed from some attribute(s) in
the entry, followed by the parent entry's DN. Think of the DN as the full file path
and the RDN as its relative filename in its parent folder (e.g. if
C:\foo\bar\myfile.txt were the DN, then myfile.txt would be the RDN).
Be aware that a DN may change over the lifetime of the entry, for instance, when
entries are moved within a tree. To reliably and unambiguously identify entries, a UUID
might be provided in the set of the entry's operational attributes.
"dn" is the name of the entry; it's not an attribute nor part of the entry. "cn=John
Doe" is the entry's RDN (Relative Distinguished Name), and "dc=example,dc=com" is
the DN of the parent entry, where "dc" denotes 'Domain Component'. The other lines
show the attributes in the entry. Attribute names are typically mnemonic strings, like
"cn" for common name, "dc" for domain component, "mail" for e-mail address and "sn"
for surname.
Federal Institue Of Science & Technology 29 Computer Science & Engineering
DSpace LDAP authentication and video integration System Design & Modelling
A server holds a subtree starting from a specific entry, e.g. "dc=example,dc=com"
and its children. Servers may also hold references to other servers, so an attempt to
access "ou=department,dc=example,dc=com" could return a referral or continuation
reference to a server which holds that part of the directory tree. The client can then
contact the other server. Some servers also support chaining, which means the server
contacts the other server and returns the results to the client.
LDAP rarely defines any ordering: The server may return the values of an
attribute, the attributes in an entry, and the entries found by a search operation in any
order. This follows from the formal definitions - an entry is defined as a set of attributes,
and an attribute is a set of values, and sets need not be ordered.
Pseudo video streaming
Pseudostreaming is a protocol that can be installed on regular HTTP
servers such as Apache, Tomcat, IIS or lighthttpd. It uses a server side script for Flash-
to-server communication. The player sends a HTTP request to the server with a start
time parameter in the request URL’s query string and the server script responds with the
video stream so that its start position corresponds to the requested parameter. This start
time parameter is usually named simply start. This same technique is used by the ultra-
popular YouTube service which uses lighthttpd servers.
The biggest advantage of using pseudo streaming or any other streaming
solution is the ability to seek in the timeline to positions that have not been downloaded
to the player. This is most desirable for full-length movies because the visitor can seek
to the last scene of a 2-hour movie if she wants to. Here are some more benefits of
pseudo-streaming:
• Random seeking to any part of the timeline at any time.
• Starting playback in the middle of the clip’s timeline.
• Provides integration possibilities to custom streaming servers and server-side
scripts.
• Both FLV and H.264 files supported.
Federal Institue Of Science & Technology 30 Computer Science & Engineering
DSpace LDAP authentication and video integration Testing
4.0 TESTING
4.1 Introduction
This phase is necessary in order to check the efficiency of system developed.
System testing is a critical element of the software quality assurance and represents the
ultimate review of specification, design and coding. Testing is the last stage of software
development before we release the project to the customer. It is also used to find and
eliminate any residual errors from previous stages and the operational reliability of the
system.
Testing Strategy
The overall strategy for software testing is described in the following section. We
will use four different methods to test our software.
Unit Testing
In the unit test case we will be testing the separate modules of the software. We
will carry out white box testing where each module or component of the software is
tested individually. We will test the components by passing data through it and we will
be monitoring data to find the errors. We will be looking for entry and exit conditions of
the data. We will make sure that all the components work without any troubles. The test
primarily is carried out by the programmer who designed and implemented the module.
Lead tester will than carry out test on the modules to finalize the testing
First , the LDAP connectivity was tested. In our project.This was done to make
sure that Dspace would be able to connect to Dspace This testing was done on the
prototype as it is the unit testing.
Federal Institue Of Science & Technology 31 Computer Science & Engineering
DSpace LDAP authentication and video integration Testing
Integration Testing
In this method of testing we will implement the software at the client’s location
and will run it. So we will be testing the product on client’s network. As part of testing,
will be looking for any signs of the collision between our software components and
those of the clients. Especially with regard to the changes that can occur in the database.
We will install the software at the client’s site and will run it. We will make sure that all
the data is saved correctly and there is no loss of data or data base anomalies in the
product.
We will start from the home page of Dspace and will go through all the software
functions and will test that. We will be carefully looking for any sort of collision
between several different applications with Dspace.
Validation Testing
In this method of the test we will be working with the customer to find out if the
software developed is valid for the clients. We want to make sure that the client is
getting what he asked for. We will look at the software requirement document in the
case of conflict or misunderstanding with client regarding software components. We
will perform the black box testing where the software is completed and we test all the
software components together. We will have several input data or test data that we will
derive results for. We will insert this data in the software and will get results from the
software. We will compare the results from the software with the results that we
derived. This way will check for the validation of the software.
In case there are problems with the software we will create a deficiency list and
will record all the problems in there. We will test all the components and
subcomponents of the software to perform validation test.
Federal Institue Of Science & Technology 32 Computer Science & Engineering
DSpace LDAP authentication and video integration Testing
System Testing
In this test method we will combine several types of the testing. We will test for
several different conditions by following several different test methods.
Recovery Testing
Here we are concerned with ability of the software to retrieve lost data. We want
to make sure that the software is fault tolerance and does not loose data in case
of system shutdown or if the system ceases.
Security Testing
In this method of the test we want to make sure that the security checks are
working and no one is able to temper with the data. This is crucial since our
software is design to track the activity that is not legal.
Stress Testing
In this test method we want to monitor stress caused to system and the software
due to simultaneous use. We want to make sure that the system does not break
down under the extreme use conditions.
Performance Testing
Performance bounds are set during the design part of the software development.
These bounds will help us in determining the effectiveness of the software. It
will also help us to minimize stress level that is caused to user because of our
software.
Federal Institue Of Science & Technology 33 Computer Science & Engineering
DSpace LDAP authentication and video integration Testing
The project's system testing is the final testing process where all the aspects are
tested.Tests like test for administrator login, LDAP login/connectivity and community
and collections creation were done.Also video streaming is tested using flv video file.
4.2 Test Cases
This section describes as detailed test procedure including test tactics and test
cases for the software. In this section all software specification is described. We will
describe the methods for all the different tests to be performed and will also declare the
expected outputs.
4.2.1 Test cases for Login Administrator
We will make use several different names to log in to the system. We will use
correct and incorrect User Names and Passwords to access the software and thus access
database. We will not be allowed to log in using incorrect passwords and error message
will be shown. When correct password is presented we will be able to log in be able to
next window.
Purpose of Tests for Login
To test if the administrator can log into the system successfully.
Test Data Input:
The administrator needs to input his username and password to login the system.
Steps:
(1) The system is running. There will be areas for the administrator to log in.
(2) The administrator input the login ID and password.
(3) If the ID and the password are correct, user can login the system. Otherwise, error
messages must be shown.
Federal Institue Of Science & Technology 34 Computer Science & Engineering
DSpace LDAP authentication and video integration Testing
Expected results for Login
The administrator can successfully log in to the system
4.2.2 Test cases for Home Page
This test is used to check the function of the home page which contains all the
controls.
Purpose of tests for Home Page
To test all the functionalities of Dspace software.
Prerequisites:
Must log in the system first and the system is available to be used.
Expected results for Home Page
The function works successfully in the system
4.2.3 Testing procedure for video integration
We will be uploading a video file and check whether the video streaming
function is working correct.
Expected results
At the end of the test all the results should be positive. All of the software
components should work properly. In case we come across the errors we will record
them in the error document and these errors will be fixed at the latter time.
Validation testing
This test is performed to validate the software. The test is known as black box
testing where the entire software will be created and will test all the component of the
Federal Institue Of Science & Technology 35 Computer Science & Engineering
DSpace LDAP authentication and video integration Testing
software together. We will be working with clients to show them the software and reach
agreements about the completion or failure of the software.
4.2.4 Testing procedure for validation
We perform a black box test where we will have software as whole with us. We
will enter predetermined data with expected results. We will compare predicted results
with those that software gives us and will determine if the software is valid or not.
Every button, tab or menus will be tested. We will Test the correctness of the database
and will make sure there are no errors regarding database updates.
Expected results
We should not have any troubles with the software since we have already tested
all the parts of the software before. Every thing here should work fine and we should be
able to validate the software. We will be validating only if each and every thing works
in the software. Any software error will force us to wait for the validation until we have
fixed all the errors.
Pass/fail criterion for all validation tests
The pass fail criterion for all the validation tests are that the result from the testing
should not contain bugs that could affect the working of the system as a whole. The
system passes a test only when the outputs produced by its modules are the expected
ones. Failure occurs when the results if far off from the expected result
System Testing
The system testing procedure is specified. For each of the system tests specified
below, the test procedure, test cases, purpose, specialized requirements and pass/fail
criteria are specified. It should be noted that not all system test methods noted in
Sections 3.2.4.n will be conducted for every project.
Federal Institue Of Science & Technology 36 Computer Science & Engineering
DSpace LDAP authentication and video integration Testing
Recovery testing
In this test method we are concerned with the software’s ability to retrieve lost
data or to make sure that software does not loose any data during the updating of the
database. We will be mainly looking at transaction processing when we talk about the
recovering testing. In transaction protection we will be testing the software to make sure
that when it saves any thing it will save all of it or none of it. This is necessary to avoid
existence of corrupt data in database.
Security testing
In this testing section we are concerned about the security of the software. We will
be testing the software to see if unauthorized users are able to access sensitive parts of
the software. We have divided the security section in three stages.
1. Password Login
We will try to log in using invalid user name or valid user name and invalid
password. We will also test the software to see if it allows access without any
identification what so ever. We will also test the software so that password in not
saved in any way within computer for others to view.
2. Modular Access
Our software identifies the user and allows him or her to access only certain
modules. We will test to see if the software restricts unauthorized users from
accessing certain modules of the software. In particular we want to make sure
that user cannot access modules for the administrator.
3. Priority Access
The software is setup so that inspectors can view each others work but can not
Federal Institue Of Science & Technology 37 Computer Science & Engineering
DSpace LDAP authentication and video integration Testing
update or delete it. We will test to make sure that inspector or managers in not
able to delete the data entered by the administrator. We will do this by trying to
delete the data entered using some other login name. We should not have any
problems with any sections of the security testing. Security measures are serious
issue and we have made all attempts to keep it from any bug.
Stress Testing
In this test method we are concerned with the software’s ability to allow
concurrent transaction. Too much of the work at the same time may cause system
shutdown or frees. We want to test and to make sure that this does not happen. As test
procedure we will try to create as much traffic for the software as we can by opening
several applications concurrently. We should not have any trouble in achieving our goal
in this section of the test since our product is not at the large-scale software products
and does not generate too much traffic either.
Pass/fail criterion for all system testing
Tests executed against the system use the functional requirements, non-functional
requirements, and use cases as the elements to determine pass or fail. If a test exhibits a
product failure to meet the objectives of any of the functional requirements, non-
functional requirements, or the use cases, it will fail and a defect/issue will be reported
for review.
Federal Institue Of Science & Technology 38 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
5.0 IMPLEMENTATION
5.1 Introduction
Implementation is an activity that is contained throughout the development phase. It
is the process of bringing a developed system into operational use and turning it over to
the user. The new system and its components are to be tested in a structured and planned
manner. A successful system should be delivered and users should have confidence that
the system would work efficiently and effectively. The more complex the system being
implemented the more involved will be the system analysis and design effort required
for implementation. The implementation plan involves the following.
• Testing and confirm effectiveness
• Detection and correction of errors
• Making necessary changes so as to satisfy the requirements.
The Systems Development Life Cycle (SDLC), or Software Development Life
Cycle in systems engineering and software engineering, is the process of creating or
altering systems, and the models and methodologies that people use to develop these
systems. The concept generally refers to computer or information systems.
In software engineering the SDLC concept underpins many kinds of software
development methodologies. These methodologies form the framework for planning
and controlling the creation of an information system: the software development
process.
The purpose of System Implementation can be summarized as follows: making
the new system available to a prepared set of users (the deployment), and positioning
on-going support and maintenance of the system within the Performing Organization
(the transition).
Federal Institue Of Science & Technology 39 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
5.2 Instalation Procedure
Pre – Requisites Software
• UNIX-like OS (Linux, HP/UX etc)
• Java 1.4 or later (standard SDK is fine, you don't need J2EE) – Sun Java preferred
• Apache Ant 1.6.2 or later (Java make-like tool)
• PostgreSQL 7.3 or later - an open source relational database, or Oracle 9 or higher.
• Java Servlet Container – Tomcat, Resin, Jetty, JBoss etc.
Unix like OS
• Any flavor of UNIX like
• Linux, any flavor
• Redhat
• Suse
• Mandrake
• Debian
• Fedora etc.
• Solaris (Sun system)
• HP-UX (Hewlett Packard)
• AIX (IBM)
• Mac OS X
Java Compiler
• Sun Java (preferred)
• IBM Java
• GNU Java
NOTE: Some Linux versions might have already been loaded with GNU java.
• Make sure of the PATH variable points to Sun Java
Federal Institue Of Science & Technology 40 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
Ant
• Java based build tool, similar to make in the world of ‘C’
• Compiles java programs of dspace sourcecode, generates war files
War files - A Web application is a group of HTML pages, JSP pages, servlets,
resources and source file, which can be managed as a single unit. A Web
archive (WAR) file is a packaged Web application. WAR files can be used to
import a Web application into a Web server.
DBMS
• PostgreSQL (open source)
• Oracle (commercial)
• Database backend of DSpace
• Stores information on
• Communities
• Collection
• Members - passwords
• E-groups
Servlet containers
• Tomcat (most popular with DSpace)
• Jetty
• Resin
• JBoss (more professional)
• J2EE
• Can be integrated with Apache, you have to build connectors
Servlets are server-side Java™ programs. These Java programs extend the
Federal Institue Of Science & Technology 41 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
functionality of a Web server by generating dynamic content and responding
to Web client requests. When a browser sends a request to the server, the
server can send the request information to a servlet, so that the servlet can
construct the response that is sent back to the browser.
Workshop – Config
• Operating System – Fedora 8.0
• Java – jdk-6-linux-i586.rpm
• Apache Ant – apache-ant-1.7.0-bin.tar.gz
• PostgreSQL
Postgresql-8.2.5-2PGDG.f7.i686.rpm
Postgresql-server-8.2.5-2PGDG.f7.i686.rpm
Postgresql-8.2.507.jdbc4.jar
• Tomcat – apache-tomcat-5.5.23-compat.tar.gz
• Dspace – dspace-1.4.2-source.tar
Downloads
Site address of downloads
• DSpace
http://www.sourceforge.net/projects/dspace
• Apache-Tomcat
http://tomcat.apache.org
• Apache-ant
http://ant.apache.org
• Postgre-sql
http://www.postgresql.org
Note:
ant may be available with your OS
Tomcat may be available with your OS, But use the downloaded tomcat
Federal Institue Of Science & Technology 42 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
Installation Demonstration and Practical Session
Install JAVA
• Check whether java is installed
#java –version
• Copy the java rpm given
cp jdk-6-linux-i586
• Install the package
#rpm –ivh jdk-6-linux-i586.rpm
• Remove any old installed java
#rm /usr/bin/java
Install JAVA (contd)
• Create symbolic link to new installed Java
#cd /usr/bin
#ln –s /usr/java/jdk1.6.0/java java
• Set environment variable by editing file profile
#vi /etc/profile
Type the following lines
# JAVA_HOME=/usr/java/jdk1.6.0
#export JAVA_HOME
Save the file
Install Apache-Ant
• Check if ant is installed
#which ant
• Copy the apache-ant-1.7.0-bin.tar as follows
#cp apache-ant-1.7.0-bin.tar /usr/local
• Install as follows
#cd /usr/local
Federal Institue Of Science & Technology 43 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
#gunzip apache-ant-1.7.0-bin.tar.gz
#tar –xvf apache-ant-1.7.0-bin.tar
#mv apache-ant-1.7.0 ant
• Set environment variable
#vi /etc/profile
Add the line
PATH=$PATH:/usr/local/ant/bin
• Save the file
Install PostgreSQL
• Copy the postgresql-8.2.5-
2PGDG.f7.i686.rpm and postgresql-server-
8.2.5-2PGDG.f7.i686.rpm
• Install the files in the same sequence
#rpm –ivh postgresql-8.2.5 -2PGDG.f7.i686.rpm
#rpm –ivh postgresql-server-8.2.5-
2PGDG.f7.i686.rpm
Install PostgreSQL (contd)
• Log into postgres
#su –l postgres
• Initialize database
$initdb
• Configuration changes
Open /data/postgresql.conf and remove comment for
listen_addresses = ‘localhost’
$vi /data/postgresql.conf
Open /data/pg_hba.conf and add a line in the section #IPv4-style
local connections:
host
Federal Institue Of Science & Technology 44 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
• dspace dspace 127.0.0.1
• 255.255.255.255 md5
• Save the file
Install Tomcat
• Copy apache-tomcat-5.5.23.tar.gz to /usr/local
#cp apache-tomcat-5.5.23.tar.gz /usr/local
• Change directory
#cd /usr/local
• Uncompress and extract files
#gunzip apache-tomcat-5.5.23.tar.gz
#tar –xvf apache-tomcat-5.5.23.tar
• Rename the directory
#mv apache-tomcat-5.5.23 tomcat
Install Tomcat (contd)
• Configuration changes
Open the file /etc/profile and the add the following
JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"
export JAVA_OPTS
Save the file
Locate the following section in file /usr/local/tomcat/config/server.xml
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector
port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
Add the following
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector
port="8080" maxThreads="150" minSpareThreads="25"
Federal Institue Of Science & Technology 45 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
Save the file
Install Dspace
• Copy dspace-1.5.2-source.tar to root directory
#cp dspace-1.5.2-source.tar /
• Change directory
#cd /
• Uncompress and extract files
#gunzip dspace-1.5.2-source.tar
#tar -xvf dspace-1.5.2-source.tar
• Rename directory
#mv dspace-1.5.2-source dspace
• Create an user dspace
#useradd –d /dspace dspace
#passwd dspace
• Download file postgresql-8.2.507.jar and rename
#mv postgresql-8.2.507.jar postgresql
• Copy postgres jdbc driver
cp postgresql /dspace/lib
• Login to dspace
#su –l dspace
$cd /dspace
• Create dspace database
$createuser –U postgres –d –A –P dspace
(Give password and remember it)
createdb –U dspace –E UNICODE dspace
• Start postgres service
Federal Institue Of Science & Technology 46 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
$service postgres start
• Minimal configuration changes
• Open the file /dspace/config/dspace.cfg
dspace.url = [like http://10.183.xx.xx/dspace]
dspace.hostname = [IP address of server]
dspace.name =[ Dspace at IISC Workshop]
db.password = [the password you entered in the last step of
postgresql installation]
mail.server =[l10.183.xx.xx]
mail.from.address = [dspace@localhost]
feedback.recipient =[dspace@localhost]
mail.admin = [dspace@localhost]
alert.recipient =[email address (not essential but very useful!)]
Save the file
• Compile and install
$ant fresh_install
• Copy the war files created
$cp /dspace/build/*.war /usr/local/tomcat/webapps
• Create initial administrator account
$/dspace/bin/create-administrator
Enter details as prompted
• Change ownership to user dspace for tomcat
#chown –R dspace.dspace /usr/local/tomcat
• Start tomcat
$/usr/local/tomcat/bin/startup.sh
• Open browser
Give address http://10.183.xx.xx:8080/dspace
• There you will have the dspace page
• Successful installation
Federal Institue Of Science & Technology 47 Computer Science & Engineering
DSpace LDAP authentication and video integration Implementation
5.3 Implementation Plan
The project will be implemented in the FISAT digital library.where the Dspace website
can be hosted and staff and students can login using their LDAP account id.The Dspace
website will be managed by the library administrator.Through Dspace both students and
staff members can upload and download digital data ranging from simple text
documents to flv video filles.
Federal Institue Of Science & Technology 48 Computer Science & Engineering
DSpace LDAP authentication and video integration Conclusion
6.0 CONCLUSION
6.1 Advantages and Disadvantages of the system
Every system which has been developed will have certain advantages as well as
disadvantages associated with it.
Advantages:
Our project focuses on the concept of creating an efficient library management
system. Logged in users can utilize the special and enchance services such as digital
data storing such as videos, songs and circulation of the library accessing.
Disadvantages:
DSPACE installation is not a very easy process. It require many packages and
libraries which has to be preinstalled seperately.They do not come with DSPACE
software.
6.2 Future scope
It can be used in FISAT Digital Library.The main purpose of our project is Data
integration.Staff and Students can access,upload and share various kinds of data
community wise in DSPACE. Dspace is an open source ILS.So the code can easily be
obtained.Implementation of a Library system using Dspace has proved to be very
efficient.Its features and functionalities make it one of the best ILS softwares available.
Federal Institue Of Science & Technology 49 Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
7.0 APPENDIX
7.1 Sample code
<html>
<body>
<form name="loginform" method="post" action="ldap.jsp">
<br><br>
<table align="center"><tr><td><h2>Login Authentication</h2></td></tr></table>
<table align="center">
<tr><td colspan=2></td></tr>
<tr><td colspan=2> </td></tr>
<tr>
<td><b>Login Name</b></td>
<td><input type="text" name="txtusername"></td> <!--ACCEPTING
USERNAME-->
</tr>
<tr>
<td><b>Password</b></td>
<td><input type="password" name="txtpassword"></td> <!--ACCEPTING
PASSWORD-->
</tr>
<tr>
<td></td>
<td><input type="submit" name="Submit" value=" Submit "></td> <!--SUBMIT
VALUES TO 'LDAP.JSP'-->
</tr>
<tr><td> </td></tr>
</table>
</form>
</body> </html>
Federal Institue Of Science & Technology i Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
<html>
<body>
<%@ page import="javax.naming.Context,
javax.naming.directory.*,javax.naming.NamingException,
java.util.Hashtable,javax.naming.ldap.LdapContext,javax.naming.ldap.InitialLdapConte
xt;"%>
<%!
int validate(String username,String password)
{
// THIS FUNCTION IS USED TO CHECK WHETHER THE BIND FOR THE
GIVEN USER DN IS SUCCESSFULL
try{
Hashtable env = new Hashtable();
NamingException e;
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"
); //LDAP JAVA CONNECTOR
env.put(Context.PROVIDER_URL, "ldap://172.16.1.1:389");
//URL OF FISAT LDAP
env.put(Context.SECURITY_AUTHENTICATION,"simple");
//AUTHENTICATION LEVEL
env.put(Context.SECURITY_PRINCIPAL,"uid=" + username +
",ou=Users,dc=fisat,dc=edu"); //DN OF THE SPECIFIED USER
env.put(Context.SECURITY_CREDENTIALS,password);
//PASSWORD OF USER
// Create initial context
LdapContext ctx = new InitialLdapContext(env, null);
// Close the context when we're done
return 1;
Federal Institue Of Science & Technology ii Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
//BIND SUCCESSFULL
}catch(NamingException e)
{
}
return 0; // BIND
UNSUCCESSFULL
}
%>
<%
String username, password;
if(request.getParameter("txtusername") == null)
username = "";
else
username = request.getParameter("txtusername");
//GET THE USERNAME FROM 'LDAP-LOGIN.JSP'
if(request.getParameter("txtpassword") == null)
password = "";
else
password = request.getParameter("txtpassword");
//GET THE PASSWORD FROM 'LDAP-LOGIN.JSP'
if (validate(username,password)==1)
{
out.println("Validated"); //SUCCESS
Federal Institue Of Science & Technology iii Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
}
else
{
out.println("failed"); //FAILURE
}
%>
</body>
</html>
7.2 Technology Explanation
Dspace
DSpace is an open source software package that provides the tools for
management of digital assets, and is commonly used as the basis for an institutional
repository. It supports a wide variety of data, including books, theses, 3D digital scans
of objects, photographs, film, video, research data sets and other forms of content. The
data is arranged as community collections of items, which bundle bitstreams together.
Federal Institue Of Science & Technology iv Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
Lightweight Directory Access Protocol(LDAP)
The Lightweight Directory Access Protocol, or LDAP (pronounced / l dæp/), isˈɛ
an application protocol for querying and modifying data using directory services
running over TCP/IP.[1]
A directory is a set of objects with attributes organized in a logical and
Federal Institue Of Science & Technology v Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
hierarchical manner. A simple example is the telephone directory, which consists of a
list of names (of either persons or organizations) organized alphabetically, with each
name having an address and phone number associated with it.
Pseudo video streaming
Pseudostreaming is a protocol that can be installed on regular HTTP
servers such as Apache, Tomcat, IIS or lighthttpd. It uses a server side script for Flash-
to-server communication. The player sends a HTTP request to the server with a start
time parameter in the request URL’s query string and the server script responds with the
video stream so that its start position corresponds to the requested parameter. This start
time parameter is usually named simply start. This same technique is used by the ultra-
popular YouTube service which uses lighthttpd servers.
The biggest advantage of using pseudo streaming or any other streaming
solution is the ability to seek in the timeline to positions that have not been downloaded
to the player. This is most desirable for full-length movies because the visitor can seek
to the last scene of a 2-hour movie if she wants to. Here are some more benefits of
pseudo-streaming:
• Random seeking to any part of the timeline at any time.
• Starting playback in the middle of the clip’s timeline.
• Provides integration possibilities to custom streaming servers and server-side
scripts.
• Both FLV and H.264 files supported.
Federal Institue Of Science & Technology vi Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
7.3Glossary
Ant - Ant is a Java library and command-line tool. Ant's mission is to drive processes
described in build files as targets and extension points dependent upon each other.
Bind - authenticate client to server.
CGI - Common Gateway Interface.Circulation-lending materials to patrons and
receiving them back.
Dspace - DSpace is an open source software package that provides the tools for
management of digital assets, and is commonly used as the basis for an institutional
repository.
Directory - A directory is a special purpose hierarchical database that usually contains
typed information such as text strings, binary data etc
DN - Distinguished Name;The fully qualified name of a directory entry.It specifies both
an entries location in the directory tree and its name.
JavaServer Pages (JSP) - Java technology that helps software developers serve
dynamically generated web pages based on HTML, XML, or other document types.
JDK - The Java Development Kit (JDK) is a Sun Microsystems product aimed at Java
developers. Since the introduction of Java, it has been by far the most widely used Java
SDK.
LDAP - An internet standard for accessing directory services
Federal Institue Of Science & Technology vii Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
LDAP directory - LDAP directory is a directory whose server software conforms to the
Lightweight Directory Access Protocol when communicating with a client.
LDAPv3 - version 3 of the LDAP;Latest proposed version of the standard.
Maven - Maven is a software project management and comprehension tool. Based on
the concept of a project object model (POM), Maven can manage a project's build,
reporting and documentation from a central piece of information.
PostgreSQL - Often simply Postgres, is an object-relational database management
system (ORDBMS).It is released under an MIT-style license and is thus free and open
source software. As with many other open sourceprograms, PostgreSQL is not
controlled by any single company, but has a global community of developers and
companies to develop it.
RDN - Relative Distinguished Name;A component of the DN consisting of atleast one
attribute or value pair.
Streaming media - multimedia that are constantly received by, and normally presented
to, an end-user while being delivered by a streaming provider (the term "presented" is
used in this article in a general sense that includes audio or video playback).
Federal Institue Of Science & Technology viii Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
7.4 Screenshots
Fig 11.Dspace Homepage
Federal Institue Of Science & Technology ix Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
Fig.12.Dspace Login Page
Federal Institue Of Science & Technology x Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
Fig.13.Video Streaming in Dspace
Federal Institue Of Science & Technology xi Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
Fig.14.Communities and collections in Dspace
Federal Institue Of Science & Technology xii Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
Fig.15.Search window in Dspace
Federal Institue Of Science & Technology xiii Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
Fig.16.Result of POC
Federal Institue Of Science & Technology xiv Computer Science & Engineering
DSpace LDAP authentication and video integration Appendix
Fig.17.POC result page
Federal Institue Of Science & Technology xv Computer Science & Engineering
DSpace LDAP authentication and video integration References
8.0 REFERENCES
[1] “ Java 2 Complete reference” Publisher: Herbert, Schildt,tata McGraw Hill
[2] “Java 2, AWT , Swing,XML and JavaBeans Programming Black Book” Publisher:Steven Holzner, Wiley Dreamtech
[3] “Java Server pages” Publisher:: Larne Pekowsky-Pearson Education
[4] “JSP:Java Server Pages” Publisher::Barry Burd,IDG Books India
Federal Institue Of Science & Technology 66 Computer Science & Engineering