PROJECT DOC of implant
PROJECT DOC of implant
by
DECEMBER - 2024
Ponnekal village,Khammam-507170
CERTIFICATE
This is to certify that an Industrial Oriented Mini Project Report report
Hyderabad is a record of bonafied work carried out under my guidance and supervision.
The results embodied in this project report have not been submitted to any other
University or Institute for the award of any Degree or Diploma.
I hereby declare that the work described in this thesis entitled “EMOTION
The report and work is original and has not been submitted for any
advice and guidance during the progress of this Industrial Oriented Mini
Project.
I express my sincere thanks to _______, Asst.Professor ,
members, and also who have assisted me directly or indirectly for successful
DATE:
PALCE:
INDEX
ABSTRACT
1 INTRODUCTION 1-3
6 IMPLEMENTATION 23-24
6.1 MODULES DESCRIPTION
10 OUTPUT 67-75
11 CONCLUSION 76-77
12 REFERENCE 78-81
ABSTRACT
1. INTRODUCTION
[1]
that is sufficiently robust to work with the diverse fog environments, such as
hardware and software requirements and limitations, network, physical settings,
etc. Several approaches have been proposed in the literature. For instance, Law
et al. [17] presented a key management platform (WAMS) to achieve the security
objectives for communications. To achieve authentication in local ad hoc wireless
networks, Balfanz et al. [18] proposed a secure, user-friendly, and inexpensive
solution in which the pre authentication is achieved by physical contact in a
location constrained channel. Han et al. [19] designed a scheme to identify rogue
access points in fog environments, and more specifically, the round-trip time
between DNS servers and the end users is used to facilitate the detection of rogue
access points.
Location sharing is a key feature in mobile online social networks (and many
other
networks and services). To facilitate efficient and accurate location sharing,
massive sensitive user information is collected, disseminated, analyzed, and
stored. There are clear privacy concerns, and therefore Wei et al. [20] presented
a privacy-preserving location sharing framework for deployment in mobile online
social networks. Yu et al. [21] proposed a solution to provide scalable,
confidential, and fine-grained access control to facilitate data sharing in fog and
cloud environments, particularly involving un trusted third party entities. Cao et
al. [22] proposed a solution to improve data reliability in fog environments, and
more specifically, they focused on data repairing and corruption detection
without high computational cost. Damiani et al. [23] presented a stable
reputation sharing mechanism based on available Peerto- Peer (P2P) protocols,
in which a self-regulating network system is adopted to protect the anonymity of
data consumers. Shi et al. [24] put forward a new architecture for a mobile cloud
computing environment. In their design, a network trust shielding for mobile
devices, particularly against malware and unauthorized access. However,
existing solution may be ineffective against newer or emerging security attacks
in fog environments, particularly as the amount of data that need to be examined
increases. Also, privacy preserving and lightweight may not be provided in
existing approaches.
[2]
data in fog environments. Specifically, SBBS helps us ensure that data are
immutable during handling and transmissions and identify malicious nodes. In
our approach, we use an attribute-based signature (ABS) to ensure lightweight.
The remainder of this article is organized as follows. The next section will
introduce the
relevant preliminaries prior to describing the proposed SBBS and its security
analysis in Section III. We then explain how we will evaluate the performance
SBBS and discuss the evaluation findings in Section IV. Finally, Section V
summarizes our work.
CHAPTER-2
LITERATURE SURVEY
2. LITRATURE SURVEY
4. Compare and Contrast: Compare the proposed SBBS scheme with existing
solutions in terms of their effectiveness, efficiency, security, and applicability to
fog environments.
10. References: Compile a list of references cited in the surveyed papers for
further reading and to support the findings of your literature survey.
Law et al. [17] presented a key management platform (WAMS) to achieve the
security objectives for communications. To achieve authentication in local ad hoc
wireless networks, Balfanz et al. [18] proposed a secure, user-friendly, and
inexpensive solution in which the pre authentication is achieved by physical
contact in a location constrained channel. Han et al. [19] designed a scheme to
identify rogue access points in fog environments, and more specifically, the
round-trip time between DNS servers and the end users is used to facilitate the
detection of rogue access points.
[5]
There are clear privacy concerns, and therefore Wei et al. [20] presented a
privacy-preserving location sharing framework for deployment in mobile online
social networks. Yu et al. [21] proposed a solution to provide scalable,
confidential, and fine-grained access control to facilitate data sharing in fog and
cloud environments, particularly involving un trusted third party entities. Cao et
al. [22] proposed a solution to improve data reliability in fog environments, and
more specifically, they focused on data repairing and corruption detection
without high computational cost.
Data addition determines the property of the Blockchain where the device is
located. If it is located on the private chain, the data can only be accessed and
manipulated by nodes. If it is located on the public chain, this node’s data should
be published to the public Blockchain. The data addition function is called
according to the Devfp value and address, and the newly added data are stored
to generate a block.
Data Query: The query function here only refers to the data on the private chain.
Based on various block ID, the corresponding query contents will be returned.
[6]
Data Modification: This process is similar to data addition, the modified data
or null value is stored in the block. If there is no exception, such as out of memory
or timeout in the above execution process, it means that the execution is
successful.
Advantages of Proposed system:
• The proposed system providing more powerful computing and processing
capabilities for edge networks.
• The system is more secured since it is implemented Attribute-Based
Signature.
CHAPTER-4
SYSTEM REQUIREMENTS
4. SYSTEM REQUIREMENTS
[7]
4.1 HARDWARE REQUIREMENTS:
• Processor - Pentium –IV
• RAM - 4 GB (min)
• Hard Disk - 20 GB
• Key Board - Standard Windows
Keyboard
• Mouse - Two or Three Button Mouse
• Monitor - SVGA
[8]
consideration of the vastly use of the net in day to day life, the corresponding
development of the portal came into existence.
FEASIBILITY ANALYSIS
An important outcome of preliminary investigation is the determination that
the system request is feasible. This is possible only if it is feasible within limited
resource and time. The different feasibilities that have to be analyzed are
• Operational Feasibility
• Economic Feasibility
• Technical Feasibility Operational Feasibility:
Operational Feasibility deals with the study of prospects of the system to
be developed. This system operationally eliminates all the tensions of the Admin
and helps him in effectively tracking the project progress. This kind of
automation will surely reduce the time and energy, which previously consumed
in manual work. Based on the study, the system is proved to be operationally
feasible.
Economic Feasibility:
Economic Feasibility or Cost-benefit is an assessment of the economic
justification for a computer -based project. As hardware was installed from the
beginning & for lots of purposes thus the cost on project of hardware is low.
Since the system is a network based, any number of employees connected to the
LAN within that organization can use this tool from at any time. The Virtual
Private Network is to be developed using the existing resources of the
organization. So the project is economically feasible.
Technical Feasibility:
According to Roger S. Pressman, Technical Feasibility is the assessment of
the technical resources of the organization. The organization needs IBM
compatible machines with a graphical web browser connected to the Internet and
Intranet. The system is developed for platform Independent environment. Java
Server Pages, JavaScript, HTML, SQL server and WebLogic Server are used to
develop the system. The technical feasibility has been carried out. The system is
technically feasible for development and can be developed with the existing
facility.
REQUEST APPROVAL
Not all request projects are desirable or feasible. Some organization
receives so many project requests from client users that only few of them are
[9]
pursued. However, those projects that are both feasible and desirable should be
put into schedule. After a project request is approved, it cost, priority, completion
time and personnel requirement is estimated and used to determine where to
add it to any project list. Truly speaking, the approval of those above factors,
development works can be launched.
4.4 INPUT AND OUTPUT DESIGN
INPUT DESIGN
Input Design plays a vital role in the life cycle of software development, it
requires very careful attention of developers. The input design is to feed data to
the application as accurate as possible. So inputs are supposed to be designed
effectively so that the errors occurring while feeding are minimized. According to
Software Engineering Concepts, the input forms or screens are designed to
provide to have a validation control over the input limit, range and other related
validations.
This system has input screens in almost all the modules. Error messages
are developed to alert the user whenever he commits some mistakes and guides
him in the right way so that invalid entries are not made. Let us see deeply about
this under module design.
Input design is the process of converting the user created input into a
computer-based format. The goal of the input design is to make the data entry
logical and free from errors. The error is in the input are controlled by the input
design. The application has been developed in user- friendly manner. The forms
have been designed in such a way during the processing the cursor is placed in
the position where must be entered. The user is also provided with in an option
to select an appropriate input from various alternatives related to the field in
certain cases.
Validations are required for each data entered. Whenever a user enters an
erroneous data, error message is displayed and the user can move on to the
subsequent pages after completing all the entries in the current page.
OUTPUT DESIGN
The Output from the computer is required to mainly create an efficient method
of communication within the company primarily among the project leader and
his team members, in other words, the administrator and the clients. The output
[10]
of VPN is the system which allows the project leader to manage his clients in
terms of creating new clients and assigning new projects to them, maintaining a
record of the project validity and providing folder level access to each client on
the user side depending on the projects allotted to him. After completion of a
project, a new project may be assigned to the client. User authentication
procedures are maintained.
CHAPTER-5
SYSTEM DESIGN
5. SYSTEM DESIGN
5.1 SYSTEM ARCHITECTUR
Architecture Diagram
[11]
Public Key Response,
Request Private Key,
Private Key Response,
Request Cipher Key, Cipher Key Response, Download File.
5.2 DATA FLOW DIAGRAM
LEVEL-0
[12]
Cloud
Registerand Login,VerifyFiles,
DATA OWNER Upload Files,View My Files,
Register To Servers.
Fog
LEVEL-1
Exchangekeys/contentsif it is attacked
Cloud Fog
[13]
5.3.2 CLASS DIAGRAM
[14]
[15]
5.3.3 SEQUENCE DIAGRAM
[16]
5.4 FLOW CHART DIAGRAMS
USER:
[17]
CLOUD:
[18]
[19]
DATA OWNER:
Start
Register with
Social Network
Yes No
Login
Verify Files
Upload Files
Logout
View My Files
Register To Servers
FOG:
[20]
FogLogin
Yes No
Login
Log Out
View all private key request &
Generate(min 4 bits)
[21]
CHAPTER-6
IMPLEMENTATION
6. IMPLEMENTATION
Cloud:
In this module the Cloud will authorize users and view all the files
uploaded by user with the public key (16bit prime number), view all the private
key request and generate the key and view the same, view all the cipher key
request and generate the key, if either of the key is attacked by the attacker the
keys will be recovered from the other server and view the key exchange details
and attackers who attacked the keys.
Fog:
[22]
In this module the Fog will authorize users and view all the files uploaded
by user with the public key (16bit prime number), view all the private key request
and generate the key and view the same, view all the cipher key request and
generate the key, if either of the key is attacked by the attacker the keys will be
recovered from the other server and view the key exchange details and attackers
who attacked the keys.
END USER:
In this module, User has to register to both the servers and get authorized
to login, if not registered with either of the server it will prompt to register with
corresponding server, once logged in the user will request data from the cloud,
the user has to request for public key, private key and cipher key and view the
same response, verify the file and exchange the file form other server if the file is
attacked and changed its contents. Similarly download the file by giving public,
private and the cipher key.
Data Owner:
In this module, User has to register to both the servers and get authorized
to login, if not registered with either of the server it will prompt to register with
corresponding server, once logged in the user will browse for files encrypt and
upload it with the public key (16bit prime number) and store in Cloud server and
performs the following operations such as Verify Files, Upload Files, View My
Files, Register To Servers.
[23]
CHAPTER-7
TECHNOLOGICAL DISCRIPTION
7. TECHNOLOGICAL DISCRIPTION CLIENT SERVER OVER
VIEW
With the varied topic in existence in the fields of computers, Client Server
is one, which has generated more heat than light, and also more hype than reality.
This technology has acquired a certain critical mass attention with its dedication
conferences and magazines. Major computer vendors such as IBM and DEC, have
declared that Client Servers is their main future market. A survey of DBMS
magazine reveled that 76% of its readers were actively looking at the client server
solution. The growth in the client server development tools from $200 million in
1992 to more than $1.2 billion in 1996.
Client server implementations are complex but the underlying concept is
simple and powerful. A client is an application running with local resources but
able to request the database and relate the services from separate remote server.
The software mediating this client server interaction is often referred to as
MIDDLEWARE.
The typical client either a PC or a Work Station connected through a
network to a more powerful PC, Workstation, Midrange or Main Frames server
usually capable of handling request from more than one client. However, with
some configuration server may also act as client. A server may need to access
other server in order to process the original client request.
The key client server idea is that client as user is essentially insulated from
the physical location and formats of the data needs for their application. With
the proper middleware, a client input from or report can transparently access
[24]
and manipulate both local database on the client machine and remote databases
on one or more servers. An added bonus is the client server opens the door to
multi-vendor database access indulging heterogeneous table joins. What is a
Client Server?
Two prominent systems in existence are client server and file server
systems. It is essential to distinguish between client servers and file server
systems. Both provide shared network access to data but the comparison dens
there! The file server simply provides a remote disk drive that can be accessed
by LAN applications on a file-by-file basis. The client server offers full relational
database services such as SQL-Access, Record modifying, Insert, Delete with full
relational integrity backup/ restore performance for high volume of transactions,
etc. the client server middleware provides a flexible interface between client and
server, who does what, when and to whom.
[25]
Front end or User Interface Design:
The entire user interface is planned to be developed in browser specific
environment with a touch of Intranet-Based Architecture for achieving the
Distributed Concept.
The browser specific components are designed by using the HTML
standards, and the dynamism of the designed by concentrating on the constructs
of the Java Server Pages.
JAVA
Initially the language was called as “oak” but it was renamed as “Java” in
1995. The primary motivation of this language was the need for a platform-
independent (i.e., architecture neutral) language that could be used to create
software to be embedded in various consumer electronic devices.
• Java is a programmer’s language.
• Java is cohesive and consistent.
• Except for those constraints imposed by the Internet environment, Java
gives the programmer, full control.
Finally, Java is to Internet programming where C was to system programming.
Importance of Java to the Internet
Java has had a profound effect on the Internet. This is because; Java
expands the Universe of objects that can move about freely in Cyberspace. In a
network, two categories of objects are transmitted between the Server and the
Personal computer. They are: Passive information and Dynamic active programs.
The Dynamic, Self-executing programs cause serious problems in the areas of
[26]
Security and probability. But, Java addresses those concerns and by doing so,
has opened the door to an exciting new form of program called the Applet.
Java can be used to create two types of programs
Applications and Applets: An application is a program that runs on our
Computer under the operating system of that computer. It is more or less like
one creating using C or C++. Java’s ability to create Applets makes it important.
An Applet is an application designed to be transmitted over the Internet and
executed by a Java –compatible web browser. An applet is actually a tiny Java
program, dynamically downloaded across the network, just like an image. But
the difference is, it is an intelligent program, not just a media file. It can react to
the user input and dynamically change.
Features Of Java:
Security
Every time you that you download a “normal” program, you are risking a
viral infection. Prior to Java, most users did not download executable programs
frequently, and those who did scanned them for viruses prior to execution. Most
users still worried about the possibility of infecting their systems with a virus. In
addition, another type of malicious program exists that must be guarded against.
This type of program can gather private information, such as credit card
numbers, bank account balances, and passwords. Java answers both these
concerns by providing a “firewall” between a network application and your
computer.
When you use a Java-compatible Web browser, you can safely download
Java applets without fear of virus infection or malicious intent.
Portability
For programs to be dynamically downloaded to all the various types of
platforms connected to the Internet, some means of generating portable
executable code is needed. As you will see, the same mechanism that helps
ensure security also helps create portability. Indeed, Java’s solution to these two
problems is both elegant and efficient.
The Bytecode
The key that allows the Java to solve the security and portability problems
is that the output of Java compiler is Byte code. Byte code is a highly optimized
set of instructions designed to be executed by the Java run-time system, which
[27]
is called the Java Virtual Machine (JVM). That is, in its standard form, the JVM
is an interpreter for byte code.
Translating a Java program into byte code helps makes it much easier to
run a program in a wide variety of environments. The reason is, once the run-
time package exists for a given system, any Java program can run on it.
Although Java was designed for interpretation, there is technically nothing
about Java that prevents on-the-fly compilation of byte code into native code.
Sun has just completed its Just In Time (JIT) compiler for byte code. When the
JIT compiler is a part of JVM, it compiles byte code into executable code in real
time, on a piece-by-piece, demand basis. It is not possible to compile an entire
Java program into executable code all at once, because Java performs various
run-time checks that can be done only at run time. The JIT compiles code, as it
is needed, during execution. Java, Virtual Machine (JVM)
Beyond the language, there is the Java virtual machine. The Java virtual
machine is an important element of the Java technology. The virtual machine
can be embedded within a web browser or an operating system. Once a piece of
Java code is loaded onto a machine, it is verified. As part of the loading process,
a class loader is invoked and does byte code verification makes sure that the
code that’s has been generated by the compiler will not corrupt the machine that
it’s loaded on. Byte code verification takes place at the end of the compilation
process to make sure that is all accurate and correct. So byte code verification is
integral to the compiling and executing of Java code.
Overall Description
Java .Class
Picture showing the development process of JAVA Program
Java programming uses to produce byte codes and executes them. The
first box indicates that the Java source code is located in a. Java file that is
[28]
processed with a Java compiler called javac. The Java compiler produces a file
called a. class file, which contains the byte code. The.
Class file is then loaded across the network or loaded locally on your machine
into the execution environment is the Java virtual machine, which interprets and
executes the byte code.
Java Architecture
Java architecture provides a portable, robust, high performing
environment for development. Java provides portability by compiling the byte
codes for the Java Virtual Machine, which is then interpreted on each platform
by the run-time environment. Java is a dynamic system, able to load code when
needed from a machine in the same room or across the planet.
Compilation of code
When you compile the code, the Java compiler creates machine code
(called byte code) for a hypothetical machine called Java Virtual Machine (JVM).
The JVM is supposed to execute the byte code. The JVM is created for overcoming
the issue of portability. The code is written and compiled for one machine and
interpreted on all machines. This machine is called Java Virtual Machine.
[29]
Compiling and interpreting Java Source Code
During run-time the Java interpreter tricks the byte code file into thinking
that it is running on a Java Virtual Machine. In reality this could be a Intel
Pentium Windows 95 or Sun SARC station running Solaris or Apple Macintosh
running system and all could receive code from any computer through Internet
and run the Applets.
Simple
Java was designed to be easy for the Professional programmer to learn and
to use effectively. If you are an experienced C++ programmer, learning Java will
be even easier. Because Java inherits the C/C++ syntax and many of the object
oriented features of C++. Most of the confusing concepts from C++ are either left
out of Java or implemented in a cleaner, more approachable manner. In Java
there are a small number of clearly defined ways to accomplish a given task.
Object-Oriented
Java was not designed to be source-code compatible with any other
language. This allowed the Java team the freedom to design with a blank slate.
One outcome of this was a clean usable, pragmatic approach to objects. The
object model in Java is simple and easy to extend, while simple types, such as
integers, are kept as high-performance non-objects.
Robust
The multi-platform environment of the Web places extraordinary demands
on a program, because the program must execute reliably in a variety of systems.
The ability to create robust programs was given a high priority in the design of
Java. Java is strictly typed language; it checks your code at compile time and
run time.
Java virtually eliminates the problems of memory management and deallocation,
which is completely automatic. In a well-written Java program, all run time
errors can –and should –be managed by your program.
JAVASCRIPT
JavaScript is a script-based programming language that was developed by
Netscape
Communication Corporation. JavaScript was originally called Live Script and
renamed as JavaScript to indicate its relationship with Java. JavaScript
supports the development of both client and server components of Web-based
applications. On the client side, it can be used to write programs that are
[30]
executed by a Web browser within the context of a Web page. On the server side,
it can be used to write Web server programs that can process information
submitted by a Web browser and then updates the browser’s display accordingly.
Even though JavaScript supports both client and server Web
programming, we prefer JavaScript at Clientside programming since most of the
browsers supports it. JavaScript is almost as easy to learn as HTML, and
JavaScript statements can be included in HTML documents by enclosing the
statements between a pair of scripting tags
<SCRIPTS>….</SCRIPT>.
<SCRIPT LANGUAGE = “JavaScript”>
JavaScript statements
</SCRIPT>
Here are a few things we can do with JavaScript :
• Validate the contents of a form and make calculations.
• Add scrolling or changing messages to the Browser’s status line.
• Animate images or rotate images that change when we move the mouse
over them.
• Detect the browser in use and display different content for different
browsers.
• Detect installed plug-ins and notify the user if a plug-in is required.
We can do much more with JavaScript, including creating entire application.
JavaScript Vs Java
JavaScript and Java are entirely different languages. A few of the most glaring
differences are:
• Java applets are generally displayed in a box within the web document;
JavaScript can affect any part of the Web document itself.
• While JavaScript is best suited to simple applications and adding
interactive features to Web pages; Java can be used for incredibly complex
applications.
There are many other differences but the important thing to remember is that
JavaScript and Java are separate languages. They are both useful for different
things in fact they can be used together to combine their advantages.
ADVANTAGES
• JavaScript can be used for Sever-side and Client-side scripting.
• It is more flexible than VBScript.
[31]
• JavaScript is the default scripting languages at Client-side since all the
browsers supports it.
HTML
Hypertext Markup Language (HTML), the languages of the World Wide Web
(WWW), allows users to produces Web pages that include text, graphics and
pointer to other Web pages (Hyperlinks).
HTML is not a programming language but it is an application of ISO Standard
8879,
SGML (Standard Generalized Markup Language), but specialized to hypertext
and adapted to the Web. The idea behind Hypertext is that instead of reading
text in rigid linear structure, we can easily jump from one point to another point.
We can navigate through the information based on our interest and preference.
A markup language is simply a series of elements, each delimited with special
characters that define how text or other items enclosed within the elements
should be displayed. Hyperlinks are underlined or emphasized works that load
to other documents or some portions of the same document.
HTML can be used to display any type of document on the host computer,
which can be geographically at a different location. It is a versatile language and
can be used on any platform or desktop.
HTML provides tags (special codes) to make the document look attractive.
HTML tags are not case-sensitive. Using graphics, fonts, different sizes, color,
etc., can enhance the presentation of the document. Anything that is not a tag
is part of the document itself.
[32]
<FRAME>...</FRAME> Defines a particular frame in a set of frames
<H#>…</H#> Creates headings of different levels
<HEAD>...</HEAD> Contains tags that specify information about a
document
<HR>...</HR> Creates a horizontal rule
<HTML>…</HTML> Contains all other HTML tags
<META>...</META> Provides meta-information about a document
<SCRIPT>…</SCRIPT> Contains client-side or server-side script
<TABLE>…</TABLE> Creates a table
<TD>…</TD> Indicates table data in a table
<TR>…</TR> Designates a table row
<TH>…</TH> Creates a heading in a table
ADVANTAGES
• A HTML document is small and hence easy to send
over the net. It is small because it does not include
formatted information.
• HTML is platform independent. • HTML tags are not
case-sensitive.
JDBC
What Is JDBC?
JDBC is a Java API for executing SQL statements. (As a point of interest,
JDBC is a trademarked name and is not an acronym; nevertheless, JDBC is often
thought of as standing for Java Database Connectivity. It consists of a set of
classes and interfaces written in the Java programming language. JDBC provides
a standard API for tool/database developers and makes it possible to write
database applications using a pure Java API.
Using JDBC, it is easy to send SQL statements to virtually any relational
database. One can write a single program using the JDBC API, and the program
will be able to send SQL statements to the appropriate database. The
combinations of Java and JDBC lets a programmer write it once and run it
anywhere.
What Does JDBC Do?
Simply put, JDBC makes it possible to do three things:
• Establish a connection with a database
[33]
• Send SQL statements
• Process the results.
JDBC versus ODBC and other APIs
At this point, Microsoft's ODBC (Open Database
Connectivity) API is that probably the most widely used programming interface
for accessing relational databases. It offers the ability to connect to almost all
databases on almost all platforms. So why not just use ODBC from Java? The
answer is that you can use ODBC from Java, but this is best done with the
help of JDBC in the form of the JDBC-ODBC Bridge, which we will cover
shortly. The question now becomes "Why do you need JDBC?" There are several
answers to this question:
2. ODBC is not appropriate for direct use from Java because it uses a C
interface. Calls from Java to native C code have a number of drawbacks in
the security, implementation, robustness, and automatic portability of
applications.
3. A literal translation of the ODBC C API into a Java API would not be
desirable. For example, Java has no pointers, and ODBC makes copious
use of them, including the notoriously error-prone generic pointer "void *".
You can think of JDBC as ODBC translated into an object-oriented
interface that is natural for Java programmers.
4. ODBC is hard to learn. It mixes simple and advanced features together,
and it has complex options even for simple queries. JDBC, on the other
hand, was designed to keep simple things simple while allowing more
advanced capabilities where required.
5. A Java API like JDBC is needed in order to enable a "pure Java" solution.
When ODBC is used, the ODBC driver manager and drivers must be
manually installed on every client machine. When the JDBC driver is
written completely in Java, however, JDBC code is automatically
installable, portable, and secure on all Java platforms from network
computers to mainframes.
Two-tier and Three-tier Models
The JDBC API supports both two-tier and three-tier models for database access.
In the two-tier model, a Java applet or application talks directly to the database.
This requires a JDBC driver that can communicate with the particular database
management system being accessed. A user's SQL statements are delivered to
[34]
the database, and the results of those statements are sent back to the user. The
database may be located on another machine to which the user is connected via
a network. This is referred to as a client/server configuration, with the user's
machine as the client, and the machine housing the database as the server. The
network can be an Intranet, which, for example, connects employees within a
corporation, or it can be the Internet.
In the three-tier model, commands are sent to a "middle tier" of services, which
then send SQL statements to the database. The database processes the SQL
statements and sends the results back to the middle tier, which then sends them
to the user. MIS directors find the three-tier model very attractive because the
middle tier makes it possible to maintain control over access and the kinds of
updates that can be made to corporate data. Another advantage is that when
there is a middle tier, the user can employ an easy-to-use higher-level API which
is translated by the middle tier into the appropriate low-level calls. Finally, in
many cases the three-tier architecture can provide performance advantages.
Until now the middle tier has typically been written in languages such as C or
C++, which offer fast performance. However, with the introduction of optimizing
compilers that translate Java byte code into efficient machine-specific code, it is
[35]
becoming practical to implement the middle tier in Java. This is a big plus,
making it possible to take advantage of Java's robustness, multithreading, and
security features. JDBC is important to allow database access from a Java
middle tier. JDBC Driver Types
The JDBC drivers that we are aware of at this time fit into one of four categories:
• JDBC-ODBC bridge plus ODBC driver
• Native-API partly-Java driver
• JDBC-Net pure Java driver
• Native-protocol pure Java driver
JDBC-ODBC Bridge
If possible, use a Pure Java JDBC driver instead of the Bridge and an
ODBC driver. This completely eliminates the client configuration required by
ODBC. It also eliminates the potential that the Java VM could be corrupted by
an error in the native code brought in by the Bridge (that is, the Bridge native
library, the ODBC driver manager library, the ODBC driver library, and the
database client library).
What Is the JDBC- ODBC Bridge?
The JDBC-ODBC Bridge is a JDBC driver, which implements JDBC
operations by translating them into ODBC operations. To ODBC it appears as a
normal application program. The Bridge implements JDBC for any database for
which an ODBC driver is available. The Bridge is implemented as the
sun.jdbc.odbc Java package and contains a native library used to access ODBC.
The Bridge is a joint development of Intersolv and JavaSoft.
JSP
Java server Pages is a simple, yet powerful technology for creating and
maintaining dynamic-content web pages. Based on the Java programming
language, Java Server Pages offers proven portability, open standards, and a
mature re-usable component model .The Java Server Pages architecture enables
the separation of content generation from content presentation. This separation
not eases maintenance headaches, it also allows web team members to focus on
their areas of expertise. Now, web page designer can concentrate on layout, and
web application designers on programming, with minimal concern about
impacting each other’s work.
[36]
Features of JSP:
Portability
Java Server Pages files can be run on any web server or web-enabled application
server that provides support for them. Dubbed the JSP engine, this support
involves recognition, translation, and management of the Java Server Page
lifecycle and its interaction components.
Components
It was mentioned earlier that the Java Server Pages architecture can
include reusable Java components. The architecture also allows for the
embedding of a scripting language directly into the Java Server Pages file. The
components current supported include Java Beans, and Servlets.
Processing
A Java Server Pages file is essentially an HTML document with JSP
scripting or tags. The Java Server Pages file has a JSP extension to the server as
a Java Server Pages file. Before the page is served, the Java Server Pages syntax
is parsed and processed into a Servlet on the server side. The Servlet that is
generated outputs real content in straight HTML for responding to the client.
Access Models
A Java Server Pages file may be accessed in at least two different ways. A
client’s request comes directly into a Java Server Page. In this scenario, suppose
the page accesses reusable Java Bean components that perform particular well-
defined computations like accessing a database. The result of the Beans
computations, called result sets is stored within the Bean as properties. The page
uses such Beans to generate dynamic content and present it back to the client.
In both of the above cases, the page could also contain any valid Java code.
Java Server Pages architecture encourages separation of content from
presentation.
Steps in the execution of a JSP Application:
1. The client sends a request to the web server for a JSP file by giving the
name of the JSP file within the form tag of a HTML page.
2. This request is transferred to the Java-Web-Server. At the server side Java-
Web-Server receives the request and if it is a request for a JSP file server
gives this request to the JSP engine.
3. JSP engine is program which can understands the tags of the JSP and
then it converts those tags into a Servlet program and it is stored at the
[37]
server side. This Servlet is loaded in the memory and then it is executed
and the result is given back to the Java-Web-Server and then it is
transferred back to the result is given back to the Java-Web-Server and
then it is transferred back to the client.
JDBC connectivity
The JDBC provides database-independent connectivity between the J2EE
platform and a wide range of tabular data sources. JDBC technology allows an
Application Component Provider to:
• Perform connection and authentication to a database server
• Manager transactions
• Move SQL statements to a database engine for preprocessing and
execution
• Execute stored procedures • Inspect and modify the results from Select
statements.
[38]
CHAPTER-8
CODING
8. CODING
Name : Diminishing
Description: A two-column, fixed-width design with dark color scheme.
Version : 1.0 Released :
20110227
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Data Owner Main</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
<!--
.style1 {font-size: 24px}
.style2 {color: #712B77}
.style3 { color: #FF0000; font-weight: bold;
}
[39]
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="menu"> <ul>
<li class="current_page_item"><a href="d_OwnerMain.jsp">Data owner
</a></li>
<li><a href="d_OwnerLogin.jsp">Logout </a></li> </ul>
</div>
<!-- end #menu -->
<div id="header">
<div id="logo">
<h1><a href="#" class="style1">SBBS A Secure Blockchain-Based Scheme
for IoT Data Credibility in Fog Environment</a></h1>
</div>
<div id="search">
<form method="get" action="">
<fieldset>
<input type="text" name="s" id="search-text" size="15"
value="enter keywords here..." />
<input type="submit" id="search-submit" value="GO" /> </fieldset>
</form>
</div>
</div>
<div id="splash"> </div>
<!-- end #header -->
<div id="page">
<div id="page-bgtop">
<div id="page-bgbtm">
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Welcome
<%=application.getAttribute("dname")%> : </a></h2>
<div class="entry">
<p align="center" class="style3"><img src="images/Data
Owner.jpg" alt="" width="300" height="168" /></p>
<p class="style3">Data credibility plays a key role in
facilitating evidence-based decision making in organizations and governments (e.g., policy
making). One of the key data sources is the Internet of Things (IoT) devices and systems,
say within a fog environment. However, the increasing complexity and interconnectivity of
such IoT and fog environments can result in security vulnerabilities (e.g., due to
implementation errors or flaws in the underpinning devices or systems), which can be
exploited to compromise the credibility of the data. Therefore, in this article, we propose a
secure Blockchain-based scheme to guarantee the credibility of nodes and data and
ensure data transmission security in the fog environment. We then demonstrate the
feasibility of the proposed scheme using experiments.</p>
</div>
</div>
<div style="clear: both;"> </div>
</div>
<!-- end #content -->
[40]
<div id="sidebar">
<ul>
<li></li>
<li>
<h2>Menu</h2>
<ul>
<li><a href="d_OwnerMain.jsp">Home</a></li>
<li><a href="d_Verify.jsp">Verify Files </a></li>
<li><a href="d_Upload.jsp">Upload Files</a></li>
<li><a href="d_ViewFiles.jsp">View My Files
<li><a href="d_RegisterServers.jsp">Register To
</a></li>
<li><a href="d_OwnerLogin.jsp">Logout</a></li>
Servers </a></li> </ul>
</li>
<li></li>
</ul>
</div>
<!-- end #sidebar -->
<div style="clear: both;"> </div>
</div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
</html>
Name : Diminishing
Description: A two-column, fixed-width design with dark color scheme.
Version : 1.0 Released :
20110227
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
[41]
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Data Owner Register</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
<!--
.style1 {font-size: 24px}
.style3 { color: #FF0000;
font-weight: bold;
}
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="menu">
<ul>
<li><span><a href="index.html">Home</a></span></li>
<li class="current_page_item"><a href="d_OwnerLogin.jsp">Data owner
</a></li>
<li><a href="u_UserLogin.jsp">End user </a></li>
<li><a href="a_Server1Login.jsp">cloud</a></li>
<li><a href="b_Server2Login.jsp">fog</a></li>
<li><a href="#"></a></li>
</ul>
</div>
<!-- end #menu -->
<div id="header">
<div id="logo">
<h1><a href="#" class="style1">SBBS A Secure Blockchain-Based Scheme
for IoT Data Credibility in Fog Environment</a></h1>
</div>
<div id="search">
<form method="get" action="">
<fieldset>
<input type="text" name="s" id="search-text" size="15"
value="enter keywords here..." />
<input type="submit" id="search-submit" value="GO" /> </fieldset>
</form>
</div>
</div>
<div id="splash"> </div>
<!-- end #header -->
<div id="page">
<div id="page-bgtop">
<div id="page-bgbtm">
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Data Owner Register :
</a></h2>
<div class="entry">
<form action="d_DRegister.jsp" method="post" id=""
[42]
enctype="multipart/form-data">
<label for="name"><br />
<span class="style3">Owner Name (required)<br />
</span></label>
<p class="style3">
<input required="required" id="name" name="userid"
class="text" />
</p>
<span class="style3">
<label for="password">Password (required)<br />
</label>
</span>
<p class="style3">
<input required="required" type="password"
id="password" name="pass" class="text" />
</p>
<p class="style3">Select Servers (required)</p>
<p class="style3">
<label>
<input type="checkbox" name="checkbox"
value="Registered" />
</label>
Cloud </p>
<p class="style3">
<label>
<input type="checkbox" name="checkbox2"
value="Registered" />
</label>
Fog </p>
<span class="style3">
<label for="email">Email Address (required)<br />
</label>
</span>
<p class="style3">
<input id="email" name="email" class="text" />
</p>
<span class="style3">
<label for="mobile">Mobile Number (required)<br />
</label>
</span>
<p class="style3">
<input id="mobile" name="mobile" class="text" /> </p>
<span class="style3">
<label for="address">Your Address<br />
</label>
</span>
<p class="style3">
<textarea name="address" cols="50"
[43]
id="address"></textarea>
</p>
<span class="style3">
<label for="dob">Date of Birth (required)<br />
</label>
</span>
<p class="style3">
<input id="dob" name="dob" class="text" />
</p>
<span class="style3">
<label for="gender">Select Gender (required)<br />
</label>
</span>
<p class="style3">
<select id="s1" name="gender" class="text">
<option>-Select-</option>
<option>Male</option>
[44]
<option>Female</option>
</select>
</p>
<span class="style3">
<label for="pincode">Enter Pincode (required)<br />
</label>
</span>
<p class="style3">
<input id="pincode" name="pincode" class="text" /> </p>
<span class="style3">
<label for="location">Enter Location (required)<br />
</label>
</span>
<p class="style3">
<input id="loc" name="location" class="text" /> </p>
<span class="style3">
<label for="pic">Select Profile Picture
</span>
<strong>
<label for="pic"></label>
</strong>
<label for="pic"><br />
</label>
<p>
(required)</label>
<input type="file" id="pic" name="pic" class="text"
</p>
<p>
<input name="submit" type="submit" value="REGISTER"
/>
/>
</p>
<p align="right"><a
href="d_OwnerLogin.jsp">Back</a></p>
</form>
</div>
</div>
<div style="clear: both;"> </div>
</div>
<!-- end #content -->
<div id="sidebar">
<ul>
[45]
<li></li>
<li>
<h2>Menu</h2>
<ul>
<li><a href="u_UserLogin.jsp">End user </a></li>
<li><a href="d_OwnerLogin.jsp">Data Owner </a></li>
<li><a href="a_Server1Login.jsp">Cloud</a></li>
<li><a href="b_Server2Login.jsp">Fog</a></li> </ul>
</li>
<li></li>
</ul>
</div>
<!-- end #sidebar -->
<div style="clear: both;"> </div>
</div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
</html>
Name : Diminishing
Description: A two-column, fixed-width design with dark color scheme.
Version : 1.0 Released :
20110227
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Data Owner Login</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
<!--
.style1 {font-size: 24px}
[46]
.style2 {color: #712B77}
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="menu">
<ul>
<li><span><a href="index.html">Home</a></span></li>
<li class="current_page_item"><a href="d_OwnerLogin.jsp">Data owner
</a></li>
<li><a href="u_UserLogin.jsp">End user </a></li>
<li><a href="a_Server1Login.jsp">cloud</a></li>
<li><a href="b_Server2Login.jsp">fog</a></li>
<li><a href="#"></a></li>
</ul>
</div>
<!-- end #menu -->
<div id="header">
<div id="logo">
<h1><a href="#" class="style1">SBBS A Secure Blockchain-Based Scheme
for IoT Data Credibility in Fog Environment</a></h1>
</div>
<div id="search">
<form method="get" action="">
<fieldset>
<input type="text" name="s" id="search-text" size="15"
value="enter keywords here..." />
<input type="submit" id="search-submit" value="GO" /> </fieldset>
</form>
</div>
</div>
<div id="splash"> </div>
<!-- end #header -->
<div id="page">
<div id="page-bgtop">
<div id="page-bgbtm">
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Data Owner Login : </a></h2> <div
class="entry">
<form action="d_DataAuthentication.jsp" method="post"
id="leavereply">
<label for="name"><br /> Name
(required) </label>
<input name="userid" type="text" class="box"
[47]
id="name" value="" />
<label for="email"><br />
<br />
Password (required) </label>
<input type="password" id="pass" name="pass"
class="box" />
<p> </p>
<p>
<input name="imageField"
type="submit" class="LOGIN" id="imageField" value="Login" />
<input type="reset" name="imageField"
id="imageField" class="RESET" />
</p>
<p>New Data Owner? click here to <a
href="d_OwnerRegister.jsp"> Register</a></p>
</form>
</div>
</div>
<div style="clear: both;"> </div>
</div>
<!-- end #content -->
<div id="sidebar">
<ul>
<li></li>
<li>
<h2>Menu</h2>
<ul>
<li><a href="u_UserLogin.jsp">End user </a></li>
<li><a href="d_OwnerLogin.jsp">Data Owner </a></li>
<li><a href="a_Server1Login.jsp">Cloud</a></li>
<li><a href="b_Server2Login.jsp">Fog</a></li> </ul>
</li>
<li></li>
</ul>
</div>
<!-- end #sidebar -->
<div style="clear: both;"> </div> </div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
</html>
[48]
<%@page import="com.oreilly.servlet.*,java.sql.*,java.lang.*,java.text.SimpleDateFormat,j
ava.util.*,java.io.*,javax.servlet.*,javax.servlet.http.*" %>
<%@ page import="java.sql.*"%>
<%@ include file="connect.jsp" %>
<%@ page import="java.util.Date" %>
<%
ArrayList list = new ArrayList();
ServletContext context = getServletContext();
String dirName =context.getRealPath("Gallery\\");
String paramname=null;
String s1reg="No";
String s2reg="No";
String dname=(String)application.getAttribute("dname");
Statement st=connection.createStatement();
if(paramname.equalsIgnoreCase("checkbox"))
{ s1reg=multi.getParameter(paramname);
} if(paramname.equalsIgnoreCase("checkbox2"))
{ s2reg=multi.getParameter(paramname);
}
} if((s1reg.equalsIgnoreCase("Registered"))&&
(s2reg.equalsIgnoreCase("Registered"))) { st.executeUpdate("update owner set
s1reg='"+s1reg+"',s2reg='"+s2reg+"' where name='"+dname+"'");
response.sendRedirect("d_RegisterServers.jsp");
} else if(s1reg.equalsIgnoreCase("Registered"))
{ st.executeUpdate("update owner set
s1reg='"+s1reg+"' where name='"+dname+"'"); response.sendRedi
rect("d_RegisterServers.jsp");
} else if(s2reg.equalsIgnoreCase("Registered"))
{ st.executeUpdate("update owner set
s2reg='"+s2reg+"' where name='"+dname+"'"); response.sendRedi
rect("d_RegisterServers.jsp");
} else
{
%>
Select Servers To Register !!
<p><a
[49]
href="d_RegisterServers.jsp">Back</a> </p>
<%
} catch (Exception e)
{ out.println(e.getMessage());
e.printStackTrace();
}
%>
Name : Diminishing
Description: A two-column, fixed-width design with dark color scheme.
Version : 1.0 Released :
20110227
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Server 2 Login</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
<!--
.style1 {font-size: 24px}
.style2 {color: #712B77}
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="menu">
<ul>
<li><span><a href="index.html">Home</a></span></li>
<li><a href="d_OwnerLogin.jsp">Data owner </a></li>
<li><a href="u_UserLogin.jsp">End user </a></li>
<li><a href="a_Server1Login.jsp">cloud</a></li>
<li class="current_page_item"><a
href="b_Server2Login.jsp">fog</a></li>
<li><a href="#"></a></li>
[50]
</ul>
</div>
<!-- end #menu -->
<div id="header">
<div id="logo">
<h1><a href="#" class="style1">SBBS A Secure Blockchain-Based Scheme
for IoT Data Credibility in Fog Environment</a></h1>
</div>
<div id="search">
<form method="get" action="">
<fieldset>
<input type="text" name="s" id="search-text" size="15"
value="enter keywords here..." />
<input type="submit" id="search-submit" value="GO" /> </fieldset>
</form>
</div>
</div>
<div id="splash"> </div>
<!-- end #header -->
<div id="page">
<div id="page-bgtop">
<div id="page-bgbtm">
<div id="content">
<div class="post">
<h2 class="title"><a href="#">Fog Login : </a></h2>
<div class="entry">
<form action="b_Server2Authentication.jsp" method="post"
id="leavereply">
<label for="name"><br />
Name
(required) </label>
<input name="userid" type="text" class="box" id="name"
value="" />
<label for="email"><br />
<br />
Password (required) </label>
<input type="password" id="pass" name="pass"
class="box" />
<p> </p>
<p>
<input name="imageField" type="submit" class="LOGIN"
id="imageField" value="Login" />
<input type="reset" name="imageField"
id="imageField" class="RESET" />
</p>
</form>
</div>
</div>
<div style="clear: both;"> </div>
</div>
<!-- end #content -->
[51]
<div id="sidebar">
<ul>
<li></li>
<li>
<h2>Menu</h2>
<ul>
<li><a href="u_UserLogin.jsp">End user </a></li>
<li><a href="d_OwnerLogin.jsp">Data Owner </a></li>
<li><a href="a_Server1Login.jsp">Cloud</a></li>
<li><a href="b_Server2Login.jsp">Fog</a></li> </ul>
</li>
<li></li>
</ul>
</div>
<!-- end #sidebar -->
<div style="clear: both;"> </div> </div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
</html>
<%
ArrayList list = new ArrayList();
ServletContext context = getServletContext();
String dirName =context.getRealPath("Gallery\\");
String paramname=null;
String file=null;
String a=null,b=null,c=null,d=null,image=null;
String ee[]=null;
String checkBok=" ";
int ff=0; String
bin = "";
[52]
String uname=null; String
pass=null;
String email=null;
String mno=null;
String addr=null;
String dob=null;
String location=null;
String gender=null;
String pincode=null;
FileInputStream fs=null;
File file1 = null; try
{
MultipartRequest multi = new MultipartRequest(request,
dirName, 10 * 1024 * 1024); // 10MB
Enumeration params = multi.getParameterNames(); while
(params.hasMoreElements())
{ paramname = (String) params.nextElement();
if(paramname.equalsIgnoreCase("userid"))
{ uname=multi.getParameter(paramname);
} if(paramname.equalsIgnoreCase("pass"))
{ pass=multi.getParameter(paramname);
} if(paramname.equalsIgnoreCase("email"))
{ email=multi.getParameter(paramname);
} if(paramname.equalsIgnoreCase("mobile"))
{ mno=multi.getParameter(paramname);
} if(paramname.equalsIgnoreCase("address"))
{ addr=multi.getParameter(paramname);
} if(paramname.equalsIgnoreCase("dob"))
{ dob=multi.getParameter(paramname);
} if(paramname.equalsIgnoreCase("gender"))
{ gender=multi.getParameter(paramname);
} if(paramname.equalsIgnoreCase("pincode")) {
pincode=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("location"))
{ location=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("pic"))
{ image=multi.getParameter(paramname);
}
int f = 0;
Enumeration files = multi.getFileNames(); while
(files.hasMoreElements())
[53]
{ paramname = (String) files.nextElement();
if(paramname != null)
{ f = 1;
image = multi.getFilesystemName(paramname); String
fPath =
context.getRealPath("Gallery\\"+image); file1 = new File(fPath); fs = new
FileInputStream(file1); list.add(fs);
String ss=fPath;
FileInputStream fis = new FileInputStream(ss);
StringBuffer sb1=new StringBuffer(); int i = 0; while
((i = fis.read()) != -1)
{ if (i != -1)
{
//System.out.println(i);
String hex = Integer.toHexString(i);
// session.put("hex",hex); sb1.append(hex);
// sb1.append(",");
if ( rs1.next() )
{
[54]
%>
<p><a href="u_UserRegister.jsp">Back</a> <a href="index.html">Home</a> </p><%
} else
{
PreparedStatement
ps=connection.prepareStatement("insert into
user(name,pass,email,mobile,addr,dob,gender,pin,location,imagess,s1status,s2statu s)
values(?,?,?,?,?,?,?,?,?,?,?,?)"); ps.setString(1,uname); ps.setString(2,pass);
ps.setString(3,email); ps.setString(4,mno); ps.setString(5,addr); ps.setString(6,dob);
ps.setString(7,gender); ps.setString(8,pincode); ps.setString(9,location);
ps.setString(11,"Waiting"); ps.setString(12,"Waiting");
ps.setBinaryStream(10, (InputStream)fs, (int)(file1.length()));
// ps.setString(11,sk);
if(f == 0) ps.setObject(10,null);
else if(f == 13)
{ fs1 = (FileInputStream)list.get(0);
ps.setBinaryStream(10,fs1,fs1.available());
}
out.println("Registered
Sucessfully");
%><p><a href="u_UserLogin.jsp">Back</a><a
href="index.html">Home</a> </p><%
}
} } catch
(Exception e)
{ out.println(e.getMessage());
e.printStackTrace();
}
%>
Name : Diminishing
Description: A two-column, fixed-width design with dark color scheme.
Version : 1.0
Released : 20110227
[55]
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>End User Login</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
<!--
.style1 {font-size: 24px}
.style2 {color: #712B77}
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="menu">
<ul>
<li><span><a href="index.html">Home</a></span></li>
<li><a href="d_OwnerLogin.jsp">Data owner </a></li>
<li class="current_page_item"><a href="u_UserLogin.jsp">End user
</a></li>
<li><a href="a_Server1Login.jsp">cloud</a></li>
<li><a href="b_Server2Login.jsp">fog</a></li>
<li><a href="#"></a></li>
</ul>
</div>
<!-- end #menu -->
<div id="header">
<div id="logo">
<h1><a href="#" class="style1"></a></h1>
</div>
<div id="search">
<form method="get" action="">
<fieldset>
<input type="text" name="s" id="search-text" size="15"
value="enter keywords here..." />
<input type="submit" id="search-submit" value="GO" /> </fieldset>
</form>
</div>
</div>
<div id="splash"> </div>
<!-- end #header -->
<div id="page">
<div id="page-bgtop">
<div id="page-bgbtm">
<div id="content">
<div class="post">
<h2 class="title"><a href="#">End User Login : </a></h2>
<div class="entry">
[56]
<form action="u_UserAuthentication.jsp" method="post"
id="leavereply">
<label for="name"><br /> Name
(required) </label>
<input name="userid" type="text" class="box"
id="name" value="" />
<label for="email"><br />
<br />
Password (required) </label>
<input type="password" id="pass" name="pass"
class="box" />
<p> </p>
<p>
<input name="imageField"
type="submit" class="LOGIN" id="imageField" value="Login" />
<input type="reset" name="imageField"
id="imageField" class="RESET" />
</p>
<p>New End User? click here to <a
href="u_UserRegister.jsp"> Register</a></p>
</form>
</div>
</div>
<div style="clear: both;"> </div>
</div>
<!-- end #content -->
<div id="sidebar">
<ul>
<li></li>
<li>
<h2>Menu</h2>
<ul>
<li><a href="u_UserLogin.jsp">End user </a></li>
<li><a href="d_OwnerLogin.jsp">Data Owner </a></li>
<li><a href="a_Server1Login.jsp">Cloud</a></li>
<li><a href="b_Server2Login.jsp">Fog</a></li> </ul>
</li>
<li></li>
</ul>
</div>
<!-- end #sidebar -->
<div style="clear: both;"> </div> </div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
[57]
</html>
Class.forName("com.mysql.jdbc.Driver"); connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/sbbs","root","root");
String sql="";
} catch(Exception e)
{
System.out.println(e);
}
%>
CODE FOR DATA AUTHENTICATION:
<title>Authentication Page</title>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.util.*"%>
<%@ include file="connect.jsp"%>
<%@page import="java.util.*,java.security.Key,java.util.Random,javax.crypto.Cipher,ja
vax.crypto.spec.SecretKeySpec,org.bouncycastle.util.encoders.Base64"%>
<%@ page import="java.sql.*,java.util.Random,java.io.PrintStream,java.io.FileOutputStr
eam,java.io.FileInputStream,java.security.DigestInputStream,java.math.BigInteger,
java.security.MessageDigest,java.io.BufferedInputStream"%>
<%@ page import="java.security.Key,java.security.KeyPair,java.security.KeyPairGenerato
r,javax.crypto.Cipher"%>
<%@page import="java.util.*,java.text.SimpleDateFormat,java.util.Date,java.io.FileInp
utStream,java.io.FileOutputStream,java.io.PrintStream"%>
<%
String name = request.getParameter("userid");
String pass = request.getParameter("pass");
application.setAttribute("dname", name);
try {
String sql = "SELECT * FROM owner where name='" + name+ "' and pass='" +
pass + "' ";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if (rs.next())
{
response.sendRedirect("d_OwnerMain.jsp");
} else
{ response.sendRedirect("wronglogin.html");
[58]
}
[59]
CHAPTER-9
SYSTEM TESTING
9. SYSTEM TESTING
9.1 TESTING METHODOLOGIES
The following are the Testing Methodologies:
• Unit Testing.
• Integration Testing.
• User Acceptance Testing.
• Output Testing.
• Validation Testing.
Unit Testing
Unit testing focuses verification effort on the smallest unit of Software
design that is the module. Unit testing exercises specific paths in a module’s
control structure to ensure complete coverage and maximum error detection.
[60]
This test focuses on each module individually, ensuring that it functions
properly as a unit. Hence, the naming is Unit Testing.
During this testing, each module is tested individually and the module
interfaces are verified for the consistency with design specification. All
important processing path are tested for the expected results. All error
handling paths are also tested.
Integration Testing
Integration testing addresses the issues associated with the dual
problems of verification and program construction. After the software has been
integrated a set of high order tests are conducted. The main objective in this
testing process is to take unit tested modules and builds a program structure
that has been dictated by design.
The following are the types of Integration
Testing: 1. Top Down Integration
This method is an incremental approach to the construction of program
structure.
Modules are integrated by moving downward through the control hierarchy,
beginning with the main program module. The module subordinates to the
main program module are incorporated into the structure in either a depth first
or breadth first manner.
In this method, the software is tested from main module and individual
stubs are replaced when the test proceeds downwards.
2. Bottom-up Integration
This method begins the construction and testing with the modules at the
lowest level in the program structure. Since the modules are integrated from
the bottom up, processing required for modules subordinate to a given level is
always available and the need for stubs is eliminated.
The bottom up integration strategy may be implemented with the following steps:
• The low-level modules are combined into clusters into clusters that
perform a specific Software sub-function.
• A driver (i.e.) the control program for testing is written to coordinate test
case input and output.
• The cluster is tested.
• Drivers are removed and clusters are combined moving upward in the
program structure. The bottom up approaches tests each module
[61]
individually and then each module is module is integrated with a main
module and tested for functionality.
[62]
Preparation of Test Data
Taking various kinds of test data does the above testing. Preparation of
test data plays a vital role in the system testing. After preparing the test data
the system under study is tested using that test data. While testing the system
by using test data errors are again uncovered and corrected by using above
testing steps and corrections are also noted for future use.
[63]
9.2 USER TRAINING
9.3 MAINTAINENCE
This covers a wide range of activities including correcting code and design
errors. To reduce the need for maintenance in the long run, we have more
accurately defined the user’s requirements during the process of system
development. Depending on the requirements, this system has been developed
to satisfy the needs to the largest possible extent. With development in
technology, it may be possible to add many more features based on the
requirements in future.
The coding and designing is simple and easy to understand which will make
maintenance easier.
[64]
SYSTEM TESTING:
Software once validated must be combined with other system elements
(e.g. Hardware, people, database). System testing verifies that all the elements
are proper and that overall system function performance is achieved. It also
tests to find discrepancies between the system and its original objective,
current specifications and system documentation.
UNIT TESTING:
In unit testing different are modules are tested against the specifications
produced during the design for the modules. Unit testing is essential for
verification of the code produced during the coding phase, and hence the goals
to test the internal logic of the modules. Using the detailed design description
as a guide, important Conrail paths are tested to uncover errors within the
boundary of the modules. This testing is carried out during the programming
stage itself. In this type of testing step, each module was found to be working
satisfactorily as regards to the expected output from the module.
In Due Course, latest technology advancements will be taken into
consideration. As part of technical build-up many components of the
networking system will be generic in nature so that future projects can either
use or interact with this. The future holds a lot to offer to the development and
refinement of this project.
[65]
CHAPTER-10
OUTPUT
10. OUTPUT
When we push the code into tomcat server we are able to mange the application
from its server database as shown bellow.
[66]
By accessing the application, we are able see the user interface as shown below.
It provides us to manage user, owner, cloud and fog accounts.
We can create and manage different accounts by accessing the menu above the
banner.
[67]
We can simply register the users or owners by simply filling bellow details, and
click register.
[68]
By using database, we are able to login to cloud and fog accounts using default
username and password which are present in database.
As a owner we can upload, view and verify the files.
The file is uploaded by encrypting it using cryptographic functions and it
generates hash code.
[69]
When we create new user and try to login we need to get authorized from server.
Now we can access the file as an end user by getting permissions from fog, cloud
and owner who generates the public and private key permissions.
We can view and download the files by sending request to the server for
trapdoors.
[70]
[71]
Acceptance of public and cipher key permissions or requests.
[72]
By verification we get access to download the owner files.
[73]
We have a best option that we can check attackers from fog, cloud and owner
accounts whether the file is attacked or not.
CHAPTER-11
CONCLUSION
11. CONCLUSION
[74]
CHAPTER-12
REFERENCE
12. REFERENCE
[75]
[10] A. V. Dastjerdi et al., “Fog computing: Principles, architectures, and
applications,” in Internet of Things. Cambridge, MA, USA: Morgan
Kaufmann, 2016, pp. 61–75.
[11] D. Kovachev, Y. Cao, and R. Klamma, “Mobile cloud computing:
A comparison of application models,” 2011. [Online]. Available:
arXiv:1107.4940.
[12] R. Prodan and S. Ostermann, “A survey and taxonomy of
infrastructure as a service and Web hosting cloud providers,”
in Proc. 10th IEEE/ACM Int. Conf. Grid Comput., 2009, pp.
17–25.
[76]
[19] H. Han, B. Sheng, C. C. Tan, Q. Li, and S. Lu, “A timing-
based scheme for rogue AP detection,” IEEE Trans. Parallel
Distrib. Syst., vol. 22, no. 11, pp. 1912–1925, Nov. 2011.
[20] W. Wei, F. Xu, and Q. Li, “MobiShare: Flexible privacy-
preserving location sharing in mobile online social networks,”
in Proc. IEEE INFOCOM, 2012, pp. 2616–2620.
[21] S. Yu, C. Wang, K. Ren, and W. Lou, “Achieving secure,
scalable, and fine-grained data access control in cloud
computing,” in Proc. IEEE INFOCOM, 2010, pp. 534–542.
[22] N. Cao, S. Yu, Z. Yang, W. Lou, and Y. T. Hou, “LT codes-
based secure and reliable cloud storage service,” in Proc. IEEE
INFOCOM, 2012, pp. 693–701.
[23] E. Damiani, S. D. C. D. Vimercati, S. Paraboschi, P.
Samarati, and F. Violante, “A reputation-based approach for
choosing reliable resources in peer-to-peer networks,” in Proc.
9th ACM Conf. Comput. Commun.
Security, 2002, pp. 207–216.
[24] Y. Shi, S. Abhilash, and K. Hwang, “Cloudlet mesh for
securing mobile clouds from intrusions and network attacks,”
in Proc. 3rd IEEE Int.
Conf. Mobile Cloud Comput. Services Eng., 2015, pp. 109–
118. [25] S. Sarkar, S. Chatterjee, and S. Misra, “Assessment
of the suitability of fog computing in the context of Internet of
Things,” IEEE Trans. Cloud Compute., vol. 6, no. 1, pp. 46–
59, Jan.–Mar. 2018.
[77]