Sample Final Project Documentation
Sample Final Project Documentation
A PROJECT REPORT
Submitted by
KOWSALYA.A (815416104005)
MANIMEGALAI.S (815416104006)
MEENA.P (815416104007)
BACHELOR OF ENGINEERING
IN
APRIL/MAY 2024
ANNA UNIVERSITY : CHENNAI 600 025
BONAFIDE CERTIFICATE
carried out the project work under my supervision. No part of the dissertation has
been submitted for any degree or any other academic award anywhere before.
SIGNATURE SIGNATURE
Mr. R.DINESH RAJ M.E., Mrs. C.SURYA M.E.,
HEAD OF THE DEPARTMENT ASSISTANT PROFESSOR
Department of CSE Department of CSE
Sri Ramakrishna College of Sri Ramakrishna College of
Engineering Engineering
Perambalur Perambalur
ii
ACKNOWLEDGEMENT
Our first and foremost thanks goes to our beloved Secretary Sir,
Er.M.S.VIVEKANANDAN for providing us with excellent lab facilities and
constantly encouraging us to pursue new goals and ideas.
We would like to thank our Principal Sir, Dr. M. MARIMUTHU, for his
help and constant support to make our project. We thank for his constant attention
and guidance which has been instrumental in making this projects a reality.
We thank all our friends who have very understood, co-operative and
appreciative and also understood with us as pillars of support during our good and
bad times. On the whole, we express our heartfelt gratefulness to our parents
without whom we cannot be shaped up to this in our career. Once again we thank
one and all who have helped us in completing this dissertation.
iii
ABSTRACT
iv
TABLE OF CONTENTS
ABSTRACT iv
LIST OF FIGURES ix
LIST OF ABBREVIATION x
1 INTRODUCTION 1
1.1 Cloud Computing 1
1.2 Cloud Computing Application 2
2 SYSTEM ANALYSIS 5
2.1 Literature Survey 5
2.1.1 Reducing Impact Of Data Fragmentation
Caused By In-Line Deduplication 5
2.1.2 Flexible Data Access Control Based On
Trust And Reputation In Cloud Computing 6
2.1.3 Improved Proxy Re-Encryption Schemes With
Application To Secure Distributed Storage 7
2.1.4 A Hybrid Cloud Approach For Secure
Authorized Deduplication 8
2.1.5 Secure Cloud Data Deduplication With Efficient
Re-Encryption 9
2.1.6 Lou. Secure Deduplicationwith Efficient
And Reliable Convergent Key Management 10
2.1.7 Dupless: Serveraided Encryption For
Deduplicated Storage 11
v
Deduplication In Cloud Computing 12
2.1.9 A Secure Data Dedupliction Scheme For
Cloud Storage 13
2.2 Existing System 14
2.3 Proposed System 15
3 SYSTEM ARCHITECTURE 16
4 SYSTEM SPECIFICATION 17
5 SOFTWARE DESCRIPTION 18
5.1 Java 18
vi
6.1.2 File Upload 34
6.1.3 Checking for duplication 34
6.1.4 Naive Bayes Classifier 35
6.1.5 AES Encryption 35
6.2 System Description 35
6.2.1 Registration 35
6.2.1.1 File Upload 35
6.2.1.2 Naïve Bayes Classifier 36
6.2.1.3 Aes Encryption 36
7 SYSTEM DESIGN 37
7.1 Data Flow Diagram 37
7.2 Usecase Diagram 38
7.3 Sequence Diagram 40
7.4 Activity Diagram 42
8 SYSTEM TESTING 44
8.1 System Testing 44
8.2 Performance Testing 47
8.3 Security Testing 48
8.4 White Box Testing 49
8.5 Black Box Testing 50
9 SYSTEM IMPLEMENTATION 52
9.1 User Training 52
9. 2 Training on the Application Software 52
9.3 Operational Documentation 52
9.4 System Maintenance 53
9.5 Corrective Maintenance 54
vii
9.6 Adaptive Maintenance 54
9.7 Perceptive Maintenance 55
9.8 Preventive Maintenance 55
10 CONCLUSION 57
APPENDIX-1 58
APPENDIX-2
REFERENCES 72
viii
LIST OF FIGURES
1. System Architecture 16
2. Data Flow Diagram 37
3. Use Case Diagram 39
4. Sequence Diagram 42
5. Activity Diagram 43
ix
LIST OF ABBREVIATIONS
x
CHAPTER - 1
INTRODUCTION
There is a clear need for usable and cost-effective cloud platform security
mechanisms suitable for organizations that rely on cloud infrastructure. One
such mechanism is platform integrity verification for compute hosts that support
the virtualized cloud infrastructure. Several large cloud vendors have signaled
practical implementations of this mechanism, primarily to protect the cloud
infrastructure from insider threats and advanced persistent threats. We see two
major improvement vectors regarding these implementations.
First, details of such proprietary solutions are not disclosed and can thus not
be implemented and improved by other cloud platforms. Second, to the best of
our knowledge, none of the solutions provides cloud tenants a proof regarding
the integrity of compute hosts supporting their slice of the cloud infrastructure.
To address this, we propose a set of protocols for trusted launch of virtual
machines (VM) in IaaS, which provide tenants with a proof that the requested
VM instances were launched on a host with an expected software stack.
1
Another relevant security mechanism is encryption of virtual disk
volumes, implemented and enforced at compute host level. While support data
encryption at rest is offered by several cloud providers and can be configured by
tenants in their VM instances, functionality and migration capabilities of such
solutions are severely restricted. In most cases cloud providers maintain and
manage the keys necessary for encryption and decryption of data at rest. This
further convolutes the already complex data migration procedure between
different cloud providers, disadvantaging tenants through a new variation of
vendor lock-in.
Picnik, Pixlretc are popular free online photo editing software. This
online software has features such as cropping of image, resizing, rotation based
on degrees, special effects, addition and editing features are also included in a
GUI (Graphical User Interface) format. Some of them offer paint tools and other
adjustment features. The brightness and contrast can also be editable; and users
can layer the images. In case of Pixlr, though it has various high-level, complex
features, still it's easy to use.
2
Private cloud and hybrid cloud
Among the many incentives for using cloud, there are two situations
where organizations are looking into ways to assess some of the applications
they intend to deploy into their environment through the use of a cloud
(specifically a public cloud). While in the case of test and development it may
be limited in time, adopting a hybrid cloud approach allows for testing
application workloads, therefore providing the comfort of an environment
without the initial investment that might have been rendered useless should the
workload testing fail. Another use of hybrid cloud is also the ability to expand
during periods of limited peak usage, which is often preferable to hosting a
large infrastructure that might seldom be of use. An organization would seek to
have the additional capacity and availability of an environment when needed on
a pay-as you-go basis.
Probably the best scenario for the use of a cloud is a test and development
environment. This entails securing a budget, setting up your environment
through physical assets, significant manpower and time. Then comes the
installation and configuration of your platform. All this can often extend the
time it takes for a project to be completed and stretch your milestones. With
cloud computing, there are now readily available environments tailored for your
needs at your fingertips. This often combines, but is not limited to, automated
provisioning of physical and virtualized resources.
3
and marketing campaigns to a particular segment of the population. Social
networking platforms are now providing the basis for analytics on behavioral
patterns that organizations are using to derive meaningful information.
File storage
Cloud can offer you the possibility of storing your files and accessing,
storing and retrieving them from any web-enabled interface. The web services
interfaces are usually simple. At any time and place you have high availability,
speed, scalability and security for your environment. In this scenario,
organizations are only paying for the amount of storage they are actually
consuming, and do so without the worries of overseeing the daily maintenance
of the storage infrastructure.
Disaster recovery
This is yet another benefit derived from using cloud based on the cost
effectiveness of a disaster recovery (DR) solution that provides for a faster
recovery from a mesh of different physical locations at a much lower cost that
the traditional DR site with fixed assets, rigid procedures and a much higher
cost.
4
CHAPTER – 2
SYSTEM ANALYSIS
YEAR: 2012
Advantage
Disadvantage
Increased storage.
5
2.1.2 FLEXIBLE DATA ACCESS CONTROL BASED ON TRUST AND
REPUTATION IN CLOUD COMPUTING.
YEAR: 2015
Cloud computing offers a new way of services and has become a popular
service platform. Storing user data at a cloud data centre greatly releases storage
burden of user devices and brings access convenience. Due to distrust in cloud
service providers, users generally store their crucial data in an encrypted form.
But in many cases, the data need to be accessed by other entities for fulfilling an
expected service, e.g., an eHealth service. In this paper, we propose a scheme to
control data access in cloud computing based on trust evaluated by the data
owner and/or reputations generated by a number of reputation centers in a
flexible manner by applying Attribue-Based Encryption and Proxy Re-
Encryption The main drawback of this approach is that the number of keys
managed by the data owner grows linearly with the number of data-groups.
Advantage
Data privacy.
Disadvantage
6
2.1.3 IMPROVED PROXY RE-ENCRYPTION SCHEMES WITH
APPLICATION TO SECURE DISTRIBUTED STORAGE.
YEAR: 2006
Advantage
Disadvantage
7
2.1.4 A HYBRID CLOUD APPROACH FOR SECURE AUTHORIZED
DEDUPLICATION.
YEAR: 2015
Advantage
Disadvantage
8
2.1.5 SECURE CLOUD DATA DEDUPLICATION WITH EFFICIENT
RE-ENCRYPTION
YEAR: 2019
Advantage
Disadvantage
9
2.1.6 LOU. SECURE DEDUPLICATIONWITH EFFICIENT AND RELIABLE
CONVERGENT KEY MANAGEMENT.
YEAR: 2013
Disadvantage
10
2.1.7 DUPLESS: SERVERAIDED ENCRYPTION FOR DEDUPLICATED
STORAGE.
YEAR: 2013.
Security
High performance
Disadvantage
11
2.1.8 SURVEY ON SECRET SHARING SCHEME WITH DEDUPLICATION
IN CLOUD COMPUTING
YEAR: 2015
Advantage
Disadvantage
12
2.1.9 A SECURE DATA DEDUPLICTION SCHEME FOR CLOUD
STORAGE
YEAR: 2013
Nowadays, more and more corporate and private users outsource their
data to cloud storage providers. At the same time, recent data breach incidents
make end-to-end encryption an increasingly prominent requirement. The
effective stage optimization techniques, such as data deduplication, completely
ineffective. In this paper, we present a novel encryption scheme that guarantees
semantic security for unpopular data and provides weaker security and better
storage and bandwidth benefits for popular data. This way, data deduplication
can be effective for popular data, whilst semantically secure encryption protects
unpopular content, preventing its deduplication. Transitions from one mode to
the other take place seamlessly at the storage server side if and only if a file
becomes popular. We show that our scheme is secure under the Symmetric
External Decisional Diffie-Hellman Assumption in the random oracle model,
and evaluate its performance with benchmarks and simulations.
Advantage
Disadvantage
13
2.2 EXISTING SYSTEM
eliminating duplicate copies of repeating data, and has been widely used in
cloud storage to reduce the amount of storage space and save bandwidth.
resources to users as services across the whole Internet, while hiding platform
Today‘s cloud service providers offer both highly available storage and
being stored in the cloud and shared by users with specified privileges, which
Disadvantage
14
2.3 PROPOSED SYSTEM
The convergent encryption technique has been proposed to encrypt the
data before outsourcing. To better protect data security, this paper makes the
first attempt to formally address the problem of authorized data deduplication.
Different from traditional deduplication systems, the differential
privileges of users are further considered in duplicate check besides the data
itself.
We also present several new deduplication constructions supporting
authorized duplicate check in hybrid cloud architecture.
Security analysis demonstrates that our scheme is secure in terms of the
definitions specified in the proposed security model.
As a proof of concept, we implement a prototype of our proposed
authorized duplicate check scheme and conduct testbed experiments using our
prototype.
We show that our proposed authorized duplicate check scheme incurs
minimal overhead compared to normal operations.
Advantage
One critical challenge of cloud storage services is the management of the
ever-increasing volume of data.
15
CHAPTER – 3
SYSTEM ARCHITECTURE
16
CHAPTER – 4
SYSTEM SPECIFICATION
RAM - 2 GB (min)
17
CHAPTER – 5
SOFTWARE DESCRIPTION
5.1 JAVA
JAVA TECHNOLOGY:
Java technology is both a programming language and a platform.
Simple
Architecture neutral
Object oriented
Portable
Distributed
High performance
Interpreted
Multithreaded
Robust
Dynamic
Secure
With most programming languages, you either compile or interpret a
program so that you can run it on your computer. The Java programming
language is unusual in that a program is both compiled and interpreted. With the
compiler, first you translate a program into an intermediate language called
Java byte codes —the platform-independent codes interpreted by the interpreter
on the Java platform. The interpreter parses and runs each Java byte code
instruction on the computer. Compilation happens just once; interpretation
18
occurs each time the program is executed. The following figure illustrates how
this works.
You can think of Java byte codes as the machine code instructions for the
Java Virtual Machine (Java VM). Every Java interpreter, whether it‘s a
development tool or a Web browser that can run applets, is an implementation
of the Java VM. Java byte codes help make ―write once, run anywhere‖
possible. You can compile your program into byte codes on any platform that
has a Java compiler.
The byte codes can then be run on any implementation of the Java VM.
That means that as long as a computer has a Java VM, the same program written
in the Java programming language can run on Windows 2000, a Solaris
workstation, or on an iMac.
19
5.2 THE JAVA PLATFORM:
A platform is the hardware or software environment in which a program
runs. We‘ve already mentioned some of the most popular platforms like
Windows 2000, Linux, Solaris, and MacOS. Most platforms can be described as
a combination of the operating system and hardware. The Java platform differs
from most other platforms in that it‘s a software-only platform that runs on top
of other hardware-based platforms.
Native code is code that after you compile it, the compiled code runs on a
specific hardware platform. As a platform-independent environment, the Java
20
platform can be a bit slower than native code. However, smart compilers, well-
tuned interpreters, and just-in-time byte code compilers can bring performance
close to that of native code without threatening portability.
However, the Java programming language is not just for writing cute,
entertaining applets for the Web. The general-purpose, high-level Java
programming language is also a powerful software platform. Using the
generous API, you can write many types of programs.
How does the API support all these kinds of programs? It does so with
packages of software components that provides a wide range of functionality.
21
Every full implementation of the Java platform gives you the following
features:
The essentials: Objects, strings, threads, numbers, input and output, data
structures, system properties, date and time, and so on.
Applets: The set of conventions used by applets.
Networking: URLs, TCP (Transmission Control Protocol), UDP (User
Data gram Protocol) sockets, and IP (Internet Protocol) addresses.
Internationalization: Help for writing programs that can be localized for
users worldwide. Programs can automatically adapt to specific locales and be
displayed in the appropriate language.
Security: Both low level and high level, including electronic signatures,
public and private key management, access control, and certificates.
Software components: Known as Java BeansTM, can plug into existing
component architectures.
Object serialization: Allows lightweight persistence and communication
via Remote Method Invocation (RMI).
Java Database Connectivity (JDBCTM): Provides uniform access to a
wide range of relational databases.
The Java platform also has APIs for 2D and 3D graphics, accessibility,
servers, collaboration, telephony, speech, animation, and more. The following
figure depicts what is included in the Java 2 SDK.
22
5.4 HOW WILL JAVA TECHNOLOGY CHANGE MY LIFE?
We can‘t promise you fame, fortune, or even a job if you learn the Java
programming language. Still, it is likely to make your programs better and
requires less effort than other languages. We believe that Java technology will
help you do the following:
Get started quickly: Although the Java programming language is a
powerful object-oriented language, it‘s easy to learn, especially for
programmers already familiar with C or C++.
Write less code: Comparisons of program metrics (class counts, method
counts, and so on) suggest that a program written in the Java programming
language can be four times smaller than the same program in C++.
Write better code: The Java programming language encourages good
coding practices, and its garbage collection helps you avoid memory leaks. Its
object orientation, its JavaBeans component architecture, and its wide-ranging,
easily extendible API let you reuse other people‘s tested code and introduce
fewer bugs.
Develop programs more quickly: Your development time may be as
much as twice as fast versus writing the same program in C++. Why? You write
fewer lines of code and it is a simpler programming language than C++.
Avoid platform dependencies with 100% Pure Java: You can keep
your program portable by avoiding the use of libraries written in other
23
languages. The 100% Pure JavaTM Product Certification Program has a
repository of historical process manuals, white papers, brochures, and similar
materials online.
Write once, run anywhere: Because 100% Pure Java programs are
compiled into machine-independent byte codes, they run consistently on any
Java platform.
Distribute software more easily: You can upgrade applets easily from a
central server. Applets take advantage of the feature of allowing new classes to
be loaded ―on the fly,‖ without recompiling the entire program.
5.5 ODBC:
Microsoft Open Database Connectivity (ODBC) is a standard
programming interface for application developers and database systems
providers. Before ODBC became a de facto standard for Windows programs to
interface with database systems, programmers had to use proprietary languages
for each database they wanted to connect to. Now, ODBC has made the choice
of the database system almost irrelevant from a coding perspective, which is as
it should be. Application developers have much more important things to worry
about than the syntax that is needed to port their program from one database to
another when business needs suddenly change.
Through the ODBC Administrator in Control Panel, you can specify the
particular database that is associated with a data source that an ODBC
application program is written to use. Think of an ODBC data source as a door
with a name on it. Each door will lead you to a particular database. For
example, the data source named Sales Figures might be a SQL Server database,
whereas the Accounts Payable data source could refer to an Access database.
The physical database referred to by a data source can reside anywhere on the
LAN.
24
The ODBC system files are not installed on your system by Windows 95.
Rather, they are installed when you setup a separate database application, such
as SQL Server Client or Visual Basic 4.0. When the ODBC icon is installed in
Control Panel, it uses a file called ODBCINST.DLL. It is also possible to
administer your ODBC data sources through a stand-alone program called
ODBCADM.EXE. There is a 16-bit and a 32-bit version of this program and
each maintains a separate list of ODBC data sources.
25
but the compiler (or ODBC) gives you the opportunity to write cleaner
programs, which means you finish sooner. Meanwhile, computers get faster
every year.
5.6 JDBC:
In an effort to set an independent database standard API for Java; Sun
Microsystems developed Java Database Connectivity, or JDBC. JDBC offers a
generic SQL database access mechanism that provides a consistent interface to
a variety of RDBMSs. This consistent interface is achieved through the use of
―plug-in‖ database connectivity modules, or drivers. If a database vendor
wishes to have JDBC support, he or she must provide the driver for each
platform that the database and Java run on.
To gain a wider acceptance of JDBC, Sun based JDBC‘s framework on
ODBC. As you discovered earlier in this chapter, ODBC has widespread
support on a variety of platforms. Basing JDBC on ODBC will allow vendors to
bring JDBC drivers to market much faster than developing a completely new
connectivity solution.
JDBC was announced in March of 1996. It was released for a 90 day
public review that ended June 8, 1996. Because of user input, the final JDBC
v1.0 specification was released soon after.
The remainder of this section will cover enough information about JDBC
for you to know what it is about and how to use it effectively. This is by no
means a complete overview of JDBC. That would fill an entire book.
5.7 JDBC Goals:
Few software packages are designed without goals in mind. JDBC is one
that, because of its many goals, drove the development of the API. These goals,
in conjunction with early reviewer feedback, have finalized the JDBC class
library into a solid framework for building database applications in Java.
26
The goals that were set for JDBC are important. They will give you some
insight as to why certain classes and functionalities behave the way they do. The
eight design goals for JDBC are as follows:
SQL Level API
The designers felt that their main goal was to define a SQL interface for
Java. Although not the lowest database interface level possible, it is at a low
enough level for higher-level tools and APIs to be created. Conversely, it is at a
high enough level for application programmers to use it confidently. Attaining
this goal allows for future tool vendors to ―generate‖ JDBC code and to hide
many of JDBC‘s complexities from the end user.
SQL Conformance
SQL syntax varies as you move from database vendor to database vendor.
In an effort to support a wide variety of vendors, JDBC will allow any query
statement to be passed through it to the underlying database driver. This allows
the connectivity module to handle non-standard functionality in a manner that is
suitable for its users.
JDBC must be implemental on top of common database interfaces
The JDBC SQL API must ―sit‖ on top of other common SQL level APIs.
This goal allows JDBC to use existing ODBC level drivers by the use of a
software interface. This interface would translate JDBC calls to ODBC and vice
versa.
Provide a Java interface that is consistent with the rest of the Java system
Because of Java‘s acceptance in the user community thus far, the designers
feel that they should not stray from the current design of the core Java system.
1. Keep it simple
This goal probably appears in all software design goal listings. JDBC is
no exception. Sun felt that the design of JDBC should be very simple, allowing
27
for only one method of completing a task per mechanism. Allowing duplicate
functionality only serves to confuse the users of the API.
Object-oriented Portable
Distributed High-performance
Interpreted Multithreaded
Java is also unusual in that each Java program is both compiled and
interpreted. With a compile you translate a Java program into an intermediate
language called Java byte codes the platform-independent code instruction is
passed and run on the computer.
28
Compilation happens just once; interpretation occurs each time the
program is executed. The figure illustrates how this works.
Compilers
My Program
29
IP datagram’s:
The IP layer provides a connectionless and unreliable delivery system. It
considers each datagram independently of the others. Any association between
datagram must be supplied by the higher layers. The IP layer supplies a
checksum that includes its own header. The header includes the source and
destination addresses. The IP layer handles routing through an Internet. It is also
responsible for breaking up large datagram into smaller ones for transmission
and reassembling them at the other end.
UDP:
UDP is also connectionless and unreliable. What it adds to IP is a
checksum for the contents of the datagram and port numbers. These are used to
give a client/server model - see later.
TCP:
TCP supplies logic to give a reliable connection-oriented protocol above
IP. It provides a virtual circuit that two processes can use to communicate.
Internet addresses
In order to use a service, you must be able to find it. The Internet uses an
address scheme for machines so that they can be located. The address is a 32 bit
integer which gives the IP address.
Network address:
Class A uses 8 bits for the network address with 24 bits left over for other
addressing. Class B uses 16 bit network addressing. Class C uses 24 bit network
addressing and class D uses all 32.
Subnet address:
Internally, the UNIX network is divided into sub networks. Building 11 is
currently on one sub network and uses 10-bit addressing, allowing 1024
different hosts.
30
Host address:
8 bits are finally used for host addresses within our subnet. This places a
limit of 256 machines that can be on the subnet.
Total address:
31
5.9 JFREE CHART:
JFreeChart is a free 100% Java chart library that makes it easy for
developers to display professional quality charts in their applications.
JFreeChart's extensive feature set includes:
A consistent and well-documented API, supporting a wide range of chart
types;
A flexible design that is easy to extend, and targets both server-side and
client-side applications;
Support for many output types, including Swing components, image files
(including PNG and JPEG), and vector graphics file formats (including PDF,
EPS and SVG);
JFreeChart is "open source" or, more specifically, free software. It is
distributed under the terms of the GNU Lesser General Public Licence (LGPL),
which permits use in proprietary applications.
5.9.1. Map Visualizations:
Charts showing values that relate to geographical areas. Some examples
include: (a) population density in each state of the United States, (b) income per
capita for each country in Europe, (c) life expectancy in each country of the
world. The tasks in this project include: Sourcing freely redistributable vector
outlines for the countries of the world, states/provinces in particular countries
(USA in particular, but also other areas);
Creating an appropriate dataset interface (plus default implementation), a
rendered, and integrating this with the existing XYPlot class in JFreeChart;
Testing, documenting, testing some more, documenting some more.
32
5.9.2. Time Series Chart Interactivity
Implement a new (to JFreeChart) feature for interactive time series charts
--- to display a separate control that shows a small version of ALL the time
series data, with a sliding "view" rectangle that allows you to select the subset
of the time series data to display in the main chart.
5.9.3. Dashboards
There is currently a lot of interest in dashboard displays. Create a flexible
dashboard mechanism that supports a subset of JFreeChart chart types (dials,
pies, thermometers, bars, and lines/time series) that can be delivered easily via
both Java Web Start and an applet.
5.9.4. Property Editors
The property editor mechanism in JFreeChart only handles a small subset
of the properties that can be set for charts. Extend (or reimplement) this
mechanism to provide greater end-user control over the appearance of the
charts.
33
CHAPTER – 6
6.1 MODULES
Registration
File upload
Checking for duplication
Naïve Bayes classifier
AES Encryption
6.1.1 Registration:
For the registration of user with identity ID the group manager
randomly selects a number.
Then the group manager adds into the group user list which will be
used in the traceability phase.
After the registration, user obtains a private key which will be used for
group signature generation and file decryption.
Registration
Group Manager Group Members
34
6.1.4 Naive Bayes Classifier:
Binary classifiers are generated for each class of event using relevant
features for the class and classification algorithm.
Binary classifiers are derived from the training sample by considering all
classes other than the current class as other.
35
6.2.1.2 NAÏVE BAYES CLASSIFIER:
Binary classifiers are generated for each class of event using relevant
features for the class and classification algorithm .Binary classifiers are derived
from the training sample by considering all classes other than the current class
as other, e.g., Normal will consider two classes: normal and other. The purpose
of this phase is to select different features for different classes by applying the
information gain or gain ratio in order to identify relevant features for each
binary classifier.
6.2.1.3 AES ENCRYPTION:
To protect the client‘s privacy, we apply the anonymous AES in
branching programs. To reduce the decryption complexity due to the use of
AES, we apply recently proposed decryption outsourcing with privacy
protection to shift client‘s pairing computation to the cloud server. The
adversary launches Key Generate algorithms to query for as many private keys
as he wants, which correspond to attribute sets A1, . . . ,Aq being disjoint in
chargedby all authorities {Ak }, but none of these keys satisfy T0.Besides, he
also conducts arbitrarily many computations using the public and secret keys
that he has (belonging to compromised authorities).
36
CHAPTER – 7
SYSTEM DESIGN
UserLogin
Check
No
yes UserRegistration
Insert File
Shared
Find Dedublicates
End Process
37
ADMIN:
Admin Login
Check
No
yes Registration
Send Files
Request Key
End Process
38
USECASE DIAGRAM:
Fig7.2Usecase Diagram
CLASS DIAGRAM:
A class diagram is an illustration of the relationships and source code
dependencies among classes in the Unified Modeling Language (UML).
In this context, a class defines the methods and variables in an object,
which is a specific entity in a program or the unit of code representing that
entity.
39
CLASS DIAGRAM:
Data User 2
Data User 1 Fig7.2.Class Diagram
Sending Data DIAGRAM
7.3 SEQUENCE Receiving
Datas
A Sequence diagram is an interaction diagram that shows how processes
operate with one another and in what order. It is a construct of a Message
Sequence Chart. A sequence diagram shows object interactions arranged in time
sequence.
A sequence diagram shows object interactions arranged in time sequence.
It depicts the objects and classes involved in the scenario and the sequence of
messages exchanged between the objects needed to carry out the functionality
of the scenario. Sequence diagrams are typically associated with use case
40
realizations in the Logical View of the system under development. Sequence
diagrams are sometimes called event diagrams or event scenarios.
And document how your system will behave in various scenarios
Validate the model logic of complex operations and functions
A sequence diagram shows, as parallel vertical lines different processes or
objects that live simultaneously, and, as horizontal arrows, the messages
exchanged between them, in the order in which they occur. This allows the
specification of simple runtime scenarios in a graphical manner.
SEQUENCE DIAGRAM:
SENDER USER:
message
Enter username and password
message
41
RECEIVER USER:
message
SENDER LOGIN:
42
Userlogin
43
User2 login
RECEIVER LOGIN
44
CHAPTER – 8
SYSTEM TESTING
Test for application window All the properties of the windows are
properties. to be properly aligned and displayed.
All the mouse operations like click,
Test for mouse operations. drag, etc. must perform the necessary
operations without any exceptions.
UNIT TESTING:
A program represents the logical elements of a system. For a program to
run satisfactorily, it must compile and test data correctly and tie in properly with
45
other programs. Achieving an error free program is the responsibility of the
programmer. Program testing checks for two types of errors: syntax and
logical. Syntax error is a program statement that violates one or more rules of
the language in which it is written. An improperly defined field dimension or
omitted keywords are common syntax errors. These errors are shown through
error message generated by the computer. For Logic errors the programmer
must examine the output carefully.
UNIT TESTING
Test for application window All the properties of the windows are
properties. to be properly aligned and displayed.
All the mouse operations like click,
Test for mouse operations. drag, etc. must perform the necessary
operations without any exceptions.
FUNCTIONAL TESTING:
Functional testing of an application is used to prove the application
delivers correct results, using enough inputs to give an adequate level of
confidence that will work correctly for all sets of inputs. The functional testing
will need to prove that the application works for each client type and that
personalization function work correctly. When a program is tested, the actual
output is compared with the expected output. When there is a discrepancy the
sequence of instructions must be traced to determine the problem. The process
is facilitated by breaking the program into self-contained portions, each of
which can be checked at certain key points. The idea is to compare program
values against desk-calculated values to isolate the problems.
46
FUNCTIONAL TESTING:
NON-FUNCTIONAL TESTING:
The Non Functional software testing encompasses a rich spectrum of
testing strategies, describing the expected results for every test case. It uses
symbolic analysis techniques. This testing used to check that an application will
work in the operational environment.
Load testing
Performance testing
Usability testing
Reliability testing
Security testing
LOAD TESTING:
An important tool for implementing system tests is a Load generator. A
Load generator is essential for testing quality requirements such as performance
and stress. A load can be a real load, that is, the system can be put under test to
real usage by having actual telephone users connected to it. They will generate
test input data for system test.
47
LOAD TESTING
PERFORMANCE TESTING:
48
RELIABILITY TESTING:
The software reliability is the ability of a system or component to perform
its required functions under stated conditions for a specified period of time and
it is being ensured in this testing. Reliability can be expressed as the ability of
the software to reveal defects under testing conditions, according to the
specified requirements. It the portability that a software system will operate
without failure under given conditions for a given time interval and it focuses
on the behavior of the software element. It forms a part of the software quality
control
RELIABILITY TESTING:
49
SECURITY TESTING
50
8.5 BLACK BOX TESTING:
Black box testing, also called behavioral testing, focuses on the
functional requirements of the software.
That is, black testing enables the software engineer to derive sets of
input conditions that will fully exercise all functional requirements for a
program. Black box testing is not alternative to white box techniques.
Rather it is a complementary approach that is likely to uncover a
different class of errors than white box methods.
Black box testing attempts to find errors which focuses on inputs,
outputs, and principle function of a software module.
The starting point of the black box testing is either a specification or
code. The contents of the box are hidden and the stimulated software should
produce the desired results.
BLACK BOX TESTING:
51
All the above system testing strategies are carried out in as the
development, documentation and institutionalization of the proposed goals and
related policies is essential.
52
CHAPTER – 9
SYSTEM IMPLEMENTATION
54
9.5 CORRECTIVE MAINTENANCE
The maintenance phase of the software cycle is the time in which
software performs useful work. After a system is successfully implemented, it
should be maintained in a proper manner. System maintenance is the important
aspect in the software development life cycle.
The need for system maintenance is to make adaptable to the changes in
the system environment. There may be social, technical and other environment
changes, which affect a system which is being implemented.
Software product enhancements may involve providing new functional
capabilities, improving user displays and mode of interaction, upgrading the
performance characteristics of the system.
So only thru proper system maintenance procedures, the system can be adapted to
cope up with these changes. Software maintenance is of course, far more than
―finding mistakes‖.
This type of maintenance implies removing errors in a program, which
might have crept in the system due to faulty design or wrong assumptions.
Thus, in corrective maintenance, processing or performance failures are
repaired.
55
expected and in this sense that there is no fault or error in the system. It usually
occurs when there comes to a change in legal norms or a shift in the political
business users.
Such changes usually cause divergence in originally set system and its
parameters, and therefore the need for harmonization and implementation of
new functionalities based on user requests is required.
9.7 PERCEPTIVE MAINTENANCE
The second activity that contributes to a definition of maintenance occurs
because of the rapid change that is encountered in every aspect of computing.
Therefore, adaptive maintenance termed as an activity that modifies software to
properly interfere with a changing environment is both necessary and
commonplace.
Perceptive Process Design is a user-friendly business process modelling
environment that allows business users to diagram, model, display, and document
and publishes business process maps and meets process-specific compliance
requirements.
Perceptive Process Enterprise is a case-based business process management
tool that supports complex case-handling and work process execution and
automation for a variety of industries and organizations.
56
inspection, detection, and correction of incipient failures either before they occur
or before they develop into major defects. The work carried out on equipment in
order to avoid its breakdown or malfunction.
It is a regular and routine action taken on equipment in order to prevent its
breakdown. Maintenance, including tests, measurements, adjustments, parts
replacement, and cleaning, performed specifically to prevent faults from
occurring.
Preventive (sometimes called preventative) maintenance is regularly
performed maintenance on a piece of equipment to reduce the likelihood of
failure. Preventive maintenance ensures that anything of value to your
organization receives consistent maintenance to avoid unexpected breakdowns
and costly disruptions.
In the same way you would not wait until your car‘s engine fails to get
the oil changed, machines, equipment, buildings and anything of value to your
organization need consistent maintenance to avoid breakdowns and costly
disruptions.
This work is called Planned or Preventive Maintenance (PM). Preventive
Maintenance is performed while the equipment is operating normally to avoid
the consequences of unexpected breakdowns, such as increased costs, downtime
and more.
PM is a strategy that all companies can implement to move away from
reactive maintenance modes, and to begin a reliability journey. As the best
programs include a combination of maintenance approaches, implementing
preventive maintenance is an important step to the ideal strategy of predictive
maintenance. The third activity that may be applied to a definition of
maintenance occurs when a software package is successful. As the software is
used, recommendations for new capabilities, modifications to existing functions
57
CHAPTER – 10
CONCLUSION
The growing need for secure cloud storage services and the attractive
properties of the convergent cryptography lead us to combine them, thus,
defining an innovative solution to the data outsourcing security and efficiency
issues. Our solution is based on a cryptographic usage of symmetric encryption
used for Meta data files, due to the highest sensibility of this information
towards several instructions.
58
APPENDIX-1
CODING
package com.deduplication;
import
java.io.IOException;
import java.io.PrintWriter;
import static java.lang.System.out;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
response.setContentType(“text/html;charset=UTF-8”);
59
try (PrintWriter out = response.getWriter()) {
out.println(“<!DOCTYPE html>”);
out.println(“<html>”);
out.println(“<head>”);
out.println(“<title>Servlet
UserRegistration</title>”); out.println(“</head>”);
out.println(“<body>”);
out.println(“<h1>Servlet UserRegistration at “
+ request.getContextPath() + “</h1>”);
out.println(“</
body>”);
out.println(“</html>”);
@Override
processRequest(request, response);
@Override
60
protected void doPost(HttpServletRequest request, HttpServletResponse
response)
{ HttpSession
session1=request.getSession(); Connection
con=null;
Statement st=null;
ResultSet rs1=null;
try
String reguser=request.getParameter(“name”);
String
regpws=request.getParameter(“password”);
String regemail=request.getParameter(“email”);
String regpno=request.getParameter(“mobileno”);
System.out.println(“name”+reguser);
System.out.println(“pws”+regpws);
System.out.println(“mobileno”+regpno);
System.out.println(“mail”+regemail);
Class.forName(“com.mysql.jdbc.Driver”);
61
con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/debuplication
“,”root”,”password”);
62
st=con.createStatement();
if(rs>0)
response.sendRedirect(“index.jsp”);
else
RequestDispatcher
rd=request.getRequestDispatcher(“RegistarionFrom.jsp”)
;
rd.include(request, response);
}}
catch(Exception ex)
ex.printStackTrace();
}}
@Override
63
public String getServletInfo() {
64
return “Short description”;
}// </editor-fold>
package com.deduplication;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;
class mdhashing {
+ hecksum(file));
65
// System.out.println(“MD5 checksum of file in Java using
Apache commons codec: “
// + checkSumApacheCommons(file));
try {
MessageDigest md =
MessageDigest.getInstance(“MD5”); byte[]
messageDigest = md.digest(msg.getBytes());
System.out.println(Arrays.toString(messageDigest));
//System.out.println(msg.getBytes());
//System.out.println(messageDigest.toString());
System.out.println(number);
// Now we need to zero pad it if you actually want the full 32 chars.
return hashtext;
66
catch (NoSuchAlgorithmException e) {
67
throw new RuntimeExceptionI;
// try {
// MessageDigest md = MessageDigest.getInstance(“MD5”);
// int numOfBytesRead;
//// }
// System.out.println(hash);
// }
//
68
// return checksum;
int n = 0;
while (n != -1) {
n = fis.read(buffer);
if (n > 0) {
digest.update(buffer, 0, n);
return digest.digest();
MessageDigest md = MessageDigest.getInstance(“SHA1”);
69
FileInputStream fis = new FileInputStream(pathaa);
int nread = 0;
md.update(dataBytes, 0, nread);
};
StringBuffer sb = new
mdbytes.length; i++) {
}}
70
APPENDIX-2
SCREENSHOTS
71
72
73
74
75
REFERENCES
[5] Dinesh H.A, Agrawal V.K ―Multilevel accessing technique for cloud
77