0% found this document useful (0 votes)
28 views83 pages

PROJECT DOC of implant

Documentation of organ

Uploaded by

imranshaik2104
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views83 pages

PROJECT DOC of implant

Documentation of organ

Uploaded by

imranshaik2104
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 83

A Project Report On

SBBS A SECURE BLOCKCHAIN BASED SCHEME FOR IOT


DATA CREDIBILITY IN FOG ENVIRONMENT

A Industrial Oriented Mini Project Report Submitted


In partial fulfillment of the Requirements for the award of the degree of
Bachelor of Technology
in
Computer Science and Engineering

by

Shaik Meharaj (Regd No: 21QP1A05A0)


Thikkala Emanil Amaar (Regd No: 21QP1A05B6)

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


SRI CHAITANYA INSTITTUE OF TECHNOLOGY AND RESEARCH
Ponnekal (V),Khammam(R), Khammam– 507 170
Telangana-India

DECEMBER - 2024

SRI CHAITANYA INSTITTUE OF TECHNOLOGY & RESEARCH

(Approved by AICTE,New Delhi, Affiliated to JNTUH)

Ponnekal village,Khammam-507170

CERTIFICATE
This is to certify that an Industrial Oriented Mini Project Report report

entitled ………… being submitted by

Shaik Meharaj (Regd No: 21QP1A05A0)

Thikkala Emanil Amaar (Regd No: 21QP1A05A0)

in partial fulfillment for the award of the Degree of Bachelor of Technology in

Computer Science and Engineering to the Jawaharlal Nehru Technological University,

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.

Internal Guide Head of the Department

External Examiner PRINCIPAL


DECLARATION

I hereby declare that the work described in this thesis entitled “EMOTION

BASED MUSIC RECOMMENDATION SYSTEM USING WEARABLE

PHYSIOLOGICAL SENSORS” which is being submitted by them in partial

fulfillment for the award of Bachelor of Technology (B.Tech.) in the

Department of Computer Science and Engineering, Sri Chaitanya Institute

of Technology and Research, affiliated to the Jawaharlal Nehru Technological

University Hyderabad, Kukatpally, Hyderabad (T.S)-500085, is the result of

investigations carried out by them under the supervision of Guide Name,

Asst.Professor, Dept of Computer Science and Engineering, Sri Chaitanya

Institute of Technology and Research(SCIT),Khammam.

The report and work is original and has not been submitted for any

Degree or Diploma of this or any other university.

Shaik Meharaj (Regd No: 21QP1A05A0)


Thikkala Emanil Amaar (Regd No: 21QP1A05B6)
ACKNOWLEDGEMENT

First and foremost, I express my sincere thanks for the

guidance and encouragement rendered by Dr.V.Sudharshan, HoD & Assoc.

Professor in Computer Science & Engineering, Sri Chaitanya Institute Of

Technology & Research(SCIT), Khammam. I extend my gratitude for his

advice and guidance during the progress of this Industrial Oriented Mini

Project.
I express my sincere thanks to _______, Asst.Professor ,

Department of Computer Science & Engineering, Sri Chaitanya Institute of

Technology and Research(SCIT), who stood as silent inspiration behind this

Industrial Oriented Mini Project. My heartfelt thanks for his endorsement

and valuable suggestions.

I wish to express my profound thanks to Dr.Pannala

Krishnamurthy, Principal, Sri Chaitanya Institute Of Technology & Research

(SCIT), Khammam for providing necessary facilities to make this Industrial

Oriented Mini Project a success.


I thank all the members of teaching and non-teaching staff

members, and also who have assisted me directly or indirectly for successful

completion of this Industrial Oriented Mini Project.

Finally, I would like to express my sincere gratitude to my parents

who are constantly encouraging me throughout my life and for completion

of this Industrial Oriented Mini Project.


Shaik Meharaj (Regd No: 21QP1A05A0)
Thikkala Emanil Amar (Regd No: 21QP1A05B6)

DATE:
PALCE:

INDEX

S.NO CONTENT PAGE.NO

ABSTRACT

1 INTRODUCTION 1-3

2 LITERATURE SURVEY 4-5

3 SYSTEM ANALYSIS 6-8


3.1 EXISTING SYSTEM
3.2 PROPOSED SYSTEM

4 SYSTEM RQUREMENTS 9-12


4.1 HARDWARE REQUIREMENTS
4.2 SOFTWARE REQUIREMENTS
4.3 PRELIMINARY INVESTIGATION
4.4 INPUT AND OUTPUT DESIGN

5 SYSTEM DESIGN 13-22


5.1 SYSTEM ARCHITECTURE
5.2 DATA FLOW DIAGRAMS
5.3 UML DIAGRAMS
5.3.1 USE CASE DIAGRAM
5.3.2 CLASS DIAGRAM
5.3.3 SEQUENCE DIAGRAM
5.4 FLOW CHART DIAGRAMS

6 IMPLEMENTATION 23-24
6.1 MODULES DESCRIPTION

7 TECHNICAL DESCRIPTION 25-38


8 CODING 39-60
9 SYSTEM TESTING 61-66
9.1 TESTING METHODOLOGIES

10 OUTPUT 67-75
11 CONCLUSION 76-77
12 REFERENCE 78-81

ABSTRACT

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.
CHAPTER-1
INTRODUCATION

1. INTRODUCTION

THE FOG environment can be regarded as an intermediate architecture between


terminal
nodes of the perception layer and the user devices in the Internet of Things (IOT)
paradigm. While fog computing is often used interchangeably with edge
computing in the literature, there are subtle differences between the two concepts
[1]. The former (fog computing) can be viewed as a platform that is highly
virtualized between the cloud data center and terminal installations, providing
the ability to compute, store, and supply online services [2]. Generally, a fog
environment contains key fog nodes that are connected to a range of (potentially
diverse) IOT devices within different localized regions/areas and these nodes are
responsible for temporarily storing data collected in the connected IOT devices
(e.g., sensors). The latter will generally sense, collect, and send the information to
the fog nodes for preprocessing, preliminary analysis, and/or forwarded to the
cloud server for further data analytics; thus, supporting more innovative and
complex truly big data analysis (e.g., data collected from different fog
environments). Besides, fog environments also improve communication efficiency
and better support real-time applications (e.g., real-time data exchange and
decision making on the Internet of Vehicles settings and healthcare/wellbeing
settings).
No system is perfect, and similarly, there are a number of challenges associated
with
fog environments. For example, how do we efficiently and effectively
authenticate the fog nodes, considering their diversity (hardware/software,
located at different control layers, etc.) [7], and/or detect (potentially) malicious
data that are in transit between different fog environments [8], [28], for
example, due to man-in-the-middle and other attacks [9]. Also, how do we
preserve the user’s privacy without affecting security and performance [10],
[29].

These challenges reinforce the importance of designing a dynamic and secure


approach

[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.

Seeking to contribute to the existing literature, we propose a secure


Block chain-based scheme (SBBS), designed to ensure the credibility of source

[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

A literature survey on "SBBS: A Secure Blockchain-Based Scheme for IoT Data


Credibility in Fog Environment" would involve reviewing academic papers,
[3]
articles, and research studies that discuss similar topics related to blockchain,
IoT, fog computing, and data credibility. Here's a structured approach you can
follow:

1. Search Strategy: Begin by searching academic databases such as IEEE


Xplore, ACM Digital Library, Google Scholar, and other relevant platforms using
keywords like "SBBS," "secure blockchain IoT," "fog computing," and "data
credibility."

2. Review Relevant Papers: Look for papers that discuss blockchain-based


schemes for enhancing IoT data credibility in fog environments. Pay attention to
papers that focus on security, reliability, and scalability aspects.

3. Key Concepts and Technologies: Understand the key concepts,


methodologies, and technologies proposed in these papers, especially those
related to blockchain, IoT, fog computing, and data credibility mechanisms.

4. Compare and Contrast: Compare the proposed SBBS scheme with existing
solutions in terms of their effectiveness, efficiency, security, and applicability to
fog environments.

5. Evaluation Metrics: Identify the evaluation metrics used in the surveyed


papers to assess the performance of blockchain-based schemes for IoT data
credibility in fog environments. Common metrics may include throughput,
latency, energy consumption, scalability, and security.

6. Challenges and Limitations: Explore the challenges and limitations


addressed by the surveyed papers, such as scalability issues, high overhead
costs, consensus mechanisms, and privacy concerns.

7. Future Directions: Analyze the future research directions proposed by the


surveyed papers, including potential enhancements, optimizations, and novel
approaches to address the evolving needs of IoT data credibility in fog
environments.

8. Synthesize Findings: Summarize and synthesize the findings from the


literature survey, highlighting the strengths, weaknesses, opportunities, and
threats associated with blockchain- based schemes for IoT data credibility in fog
environments.

9. Conclusion: Conclude the literature survey by providing insights into the


state-of-the-art solutions, identifying gaps in the existing literature, and
suggesting avenues for future research in this domain.

10. References: Compile a list of references cited in the surveyed papers for
further reading and to support the findings of your literature survey.

By following this structured approach, you can conduct a comprehensive


literature survey on "SBBS: A Secure Blockchain-Based Scheme for IoT Data
Credibility in Fog Environment" and gain valuable insights into the current state
of research in this area.
[4]
CHAPTER-3
SYSTEM ANALYSIS
3. SYSTEM ANALYSIS

3.1 EXISTING SYSTEM

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.

Damiani et al. [23] presented a stable reputation sharing mechanism based on


available Peer to- 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 solutions 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.

Disadvantages of Existing system:


• In the existing work, the system doesn’t provide secure Block chain-based
scheme techniques.
• There is no authentication and key agreement between different blocks.
3.2 PROPOSED SYSTEM

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

4.2 SOFTWARE REQUIREMENTS:


• Operating System - Windows XP
• Coding Language - Java/J2EE (JSP, Servlet)
• Front End - J2EE
• Back End - MySQL

4.3 PRELIMINARY INVESTIGATION


The first and foremost strategy for development of a project starts from the
thought of designing a mail enabled platform for a small firm in which it is easy
and convenient of sending and receiving messages, there is a search engine,
address book and also including some entertaining games. When it is approved
by the organization and our project guide the first activity, ie. preliminary
investigation begins. The activity has three parts:
• Request Clarification
• Feasibility Study
• Request Approval
REQUEST CLARIFICATION
After the approval of the request to the organization and project guide, with an
investigation being considered, the project request must be examined to
determine precisely what the system requires
Here our project is basically meant for users within the company whose systems
can
be interconnected by the Local Area Network (LAN). In today’s busy schedule
man need everything should be provided in a readymade manner. So taking into

[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

User Registerand Login,MyProfile, View


Files, SearchFiles, RequestPublic
Key, Public Key Response,Request
Private Key,Private Key
Response,Request Cipher Key,
Cipher Key Response,Download
File.

Exchangekeys/contentsif it is attacked

Cloud Fog

5.3 UML DIAGRAMS


5.3.1 USE CASE DIAGRAM

[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

List all users and authorize Username & Password


Wrong

Verify Files

Upload Files

Logout
View My Files

Register To Servers

FOG:

[20]
FogLogin

Yes No
Login

View all users & Authorize Username &


Password Wrong

View all Files with Public keys(16 bit


prime number)

Log Out
View all private key request &
Generate(min 4 bits)

View cipher key req and generate

If any key is attacked then exchange


keys from one to another server

View all key exchange detail,View all


Attackers (if any one key is wrong)

[21]
CHAPTER-6
IMPLEMENTATION
6. IMPLEMENTATION

6.1 MODULES DESCRIPTION

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.

Why Client Server?


Client server has evolved to solve a problem that has been around since
the earliest days of computing: how best to distribute your computing, data
generation and data storage resources in order to obtain efficient, cost effective
departmental an enterprise wide data processing. During mainframe era choices
were quite limited. A central machine housed both the CPU and DATA (cards,
tapes, drums and later disks). Access to these resources was initially confined to
batched runs that produced departmental reports at the appropriate intervals. A
strong central information service department ruled the corporation. The role of
the rest of the corporation limited to requesting new or more frequent reports
and to provide hand written forms from which the central data banks were
created and updated. The earliest client server solutions therefore could best be
characterized as “SLAVE-MASTER”.
Time-sharing changed the picture. Remote terminal could view and even
change the central data, subject to access permissions. And, as the central data
banks evolved in to sophisticated relational database with non-programmer
query languages, online users could formulate ad-hoc queries and produce local
reports without adding to the MIS applications software backlog. However remote
access was through dumb terminals, and the client server remained subordinate
to the Slave\Master.

[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.

Communication or Database Connectivity Tier:


The Communication architecture is designed by concentrating on the
Standards of Servlets and Enterprise Java Beans. The database connectivity is
established by using the Java Data Base Connectivity.
The standards of three-tire architecture are given major concentration to
keep the standards of higher cohesion and limited coupling for effectiveness of
the operations.
Features of The Language Used
In my project, I have chosen Java language for developing the code.

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 Source Java byte code JavaVM

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.

Basic HTML Tags :


<!-- --> Specifies comments
<A>……….</A> Creates hypertext links
<B>……….</B> Formats text as bold
<BIG>……….</BIG> Formats text in large font.
<BODY>…</BODY> Contains all tags and text in the HTML
document
<CENTER>...</CENTER> Creates text
<DD>…</DD> Definition of a term
<DL>...</DL> Creates definition list
<FONT>…</FONT> Formats text with a particular font
<FORM>...</FORM> Encloses a fill-out form

[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.

TOMCAT 6.0 WEB SERVER


Tomcat is an open-source web server developed by Apache Group. Apache
Tomcat is the servlet container that is used in the official Reference
Implementation for the Java Servlet and Java Server Pages technologies. The
Java Servlet and Java Server Pages specifications are developed by Sun under
the Java Community Process. Web Servers like Apache Tomcat support only web
components while an application server supports web components as well as
business components (BEAs Weblogic, is one of the popular application
server).To develop a web application with jsp/servlet install any web server like
JRun, Tomcat etc to run your application.

[38]
CHAPTER-8
CODING
8. CODING

CODE FOR OWNER MAIN:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

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">&nbsp;</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;">&nbsp;</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;">&nbsp;</div>
</div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
</html>

CODE FOR OWNER REGISTER:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

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">&nbsp;</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;">&nbsp;</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;">&nbsp;</div>
</div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
</html>

CODE FOR OWNER LOGIN:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

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">&nbsp;</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)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
<input name="userid" type="text" class="box"

[47]
id="name" value="" />
<label for="email"><br />
<br />
Password (required)&nbsp;&nbsp; </label>
<input type="password" id="pass" name="pass"
class="box" />
<p>&nbsp;</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;">&nbsp;</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;">&nbsp;</div> </div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
</html>

CODE FOR SERVER REGISTER:


<title>Registration authen</title>

[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();

FileInputStream fs=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("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();
}
%>

CODE FOR SERVER LOGIN:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

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">&nbsp;</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)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </label>
<input name="userid" type="text" class="box" id="name"
value="" />
<label for="email"><br />
<br />
Password (required)&nbsp;&nbsp; </label>
<input type="password" id="pass" name="pass"
class="box" />
<p>&nbsp;</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;">&nbsp;</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;">&nbsp;</div> </div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>
</html>

CODE FOR USER REGISTER:


<title>User Registration Authentication</title>
<%@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 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(",");

String binFragment = ""; int


iHex;
for(int i1= 0; i1 < hex.length(); i1++)
{ iHex =
Integer.parseInt(""+hex.charAt(i1),16);
binFragment =
Integer.toBinaryString(iHex);
while(binFragment.length() < 4){
binFragment = "0" + binFragment;
} bin += binFragment;
//System.out.print(bin);
}
}
}
}
}
FileInputStream fs1 = null;
//name=dirName+"\\Gallery\\"+image; int
lyke=0;
//String as="0";
//image = image.replace(".", "_b.");
String query1="select * from user where name='"+uname+"'";
Statement st1=connection.createStatement();
ResultSet rs1=st1.executeQuery(query1);

if ( rs1.next() )
{

out.println("User Name Already


Exits");

[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());
}

int x=ps.executeUpdate(); if(x>0)


{

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();
}
%>

CODE FOR USER LOGIN:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

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">&nbsp;</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)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
<input name="userid" type="text" class="box"
id="name" value="" />
<label for="email"><br />
<br />
Password (required)&nbsp;&nbsp; </label>
<input type="password" id="pass" name="pass"
class="box" />
<p>&nbsp;</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;">&nbsp;</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;">&nbsp;</div> </div>
</div>
</div>
<!-- end #page -->
</div>
<div id="footer-wrapper">
<!-- end #footer -->
</div>
<div align=center></div>
</body>

[57]
</html>

CODE FOR JBDC CONNECTION:


<%@ page import="java.sql.*"%>
<%@ page import="java.util.*" %> <%
Connection connection = null;
try {

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]
}

} catch (Exception e) { out.print(e);


e.printStackTrace();
}
%>

[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.

9.1.1 User Acceptance Testing


User Acceptance of a system is the key factor for the success of any
system. The system under consideration is tested for user acceptance by
constantly keeping in touch with the prospective system users at the time of
developing and making changes wherever required. The system developed
provides a friendly user interface that can easily be understood even by a
person who is new to the system.

9.1.2 Output Testing


After performing the validation testing, the next step is output testing of
the proposed system, since no system could be useful if it does not produce the
required output in the specified format. Asking the users about the format
required by them tests the outputs generated or displayed by the system under
consideration. Hence the output format is considered in 2 ways – one is on
screen and another in printed format.

9.1.3 Validation Checking


Validation checks are performed on the following fields.
Text Field:
The text field can contain only the number of characters lesser than or
equal to its size. The text fields are alphanumeric in some tables and
alphabetic in other tables. Incorrect entry always flashes and error message.
Numeric Field:
The numeric field can contain only numbers from 0 to 9. An entry of any
character flashes an error messages. The individual modules are checked for
accuracy and what it has to perform. Each module is subjected to test run
along with sample data. The individually tested modules are integrated into a
single system. Testing involves executing the real data information is used in
the program the existence of any program defect is inferred from the output.
The testing should be planned so that all the requirements are individually
tested.
A successful test is one that gives out the defects for the inappropriate data
and produces and output revealing the errors in the system.

[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.

Using Live Test Data:


Live test data are those that are actually extracted from organization files.
After a system is partially constructed, programmers or analysts often ask
users to key in a set of data from their normal activities. Then, the systems
person uses this data as a way to partially test the system. In other instances,
programmers or analysts extract a set of live data from the files and have them
entered themselves.
It is difficult to obtain live data in sufficient amounts to conduct extensive
testing. And, although it is realistic data that will show how the system will
perform for the typical processing requirement, assuming that the live data
entered are in fact typical, such data generally will not test all combinations or
formats that can enter the system. This bias toward typical values then does
not provide a true systems test and in fact ignores the cases most likely to
cause system failure.
Using Artificial Test Data:
Artificial test data are created solely for test purposes, since they can be
generated to test all combinations of formats and values. In other words, the
artificial data, which can quickly be prepared by a data generating utility
program in the information systems department, make possible the testing of
all login and control paths through the program.
The most effective test programs use artificial test data generated by
persons other than those who wrote the programs. Often, an independent team
of testers formulates a testing plan, using the systems specifications.
The package “Virtual Private Network” has satisfied all the requirements
specified as per software requirement specification and was accepted.

[63]
9.2 USER TRAINING

Whenever a new system is developed, user training is required to educate


them about the working of the system so that it can be put to efficient use by
those for whom the system has been primarily designed. For this purpose the
normal working of the project was demonstrated to the prospective users. Its
working is easily understandable and since the expected users are people who
have good knowledge of computers, the use of this system is very easy.

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.

9.4 TESTING STRATEGY


A strategy for system testing integrates system test cases and design
techniques into a well planned series of steps that results in the successful
construction of software. The testing strategy must co-operate test planning,
test case design, test execution, and the resultant data collection and
evaluation .A strategy for software testing must accommodate low-level tests
that are necessary to verify that a small source code segment has been
correctly implemented as well as high level tests that validate major system
functions against user requirements.
Software testing is a critical element of software quality assurance and
represents the ultimate review of specification design and coding. Testing
represents an interesting anomaly for the software. Thus, a series of testing
are performed for the proposed system before the system is ready for user
acceptance testing.

[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.

The registered data will automatically stored in database by using JDBC


connection.

[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.

After generation verify by response in end user account.

[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

We have presented our proposed SBBS to ensure data credibility in fog


environments. As explained in this article, underpinning ABS facilitates
authentication and Block chain allows us to build a secure communication
environment to minimize the risk of data tampering and achieve real-time
synchronization. We also evaluated the security and performance of the proposed
scheme to demonstrate its utility. Future research includes optimizing the
proposed scheme for more diverse settings, such as in an adversarial setting (e.g.,
battlefield or military IOT settings).

[74]
CHAPTER-12
REFERENCE
12. REFERENCE

[1] F. Aït-Salaht , F. Desprez, and A. Lebre, “An overview of


service placement problem in fog and edge computing,” ACM
Comput. Surveys, vol. 53, no. 3, pp. 1–35, 2020.

[2] F. Bonomi, R. A. Milito, J. Zhu, and S. Addepalli, “Fog


computing and its role in the Internet of Things,” in Proc. 1st Ed.
MCC Workshop Mobile Cloud Comput., 2012, pp. 13–16.
[3] R. Mahmud, R. Kotagiri, and R. Buyya, “Fog computing: A
taxonomy, survey and future directions,” in Internet of
Everything. Singapore:
Springer, 2018, pp. 103–130. [4] L. Atzori, A. Iera, and G. Morabito, “The Internet
of Things: A survey,”
Comput. Netw., vol. 54, no. 15, pp. 2787–2805, 2010.
[5] M. Billinghurst and T. Starner, “Wearable devices: New ways to
manage information,” Computer, vol. 32, no. 1, pp. 57–64, 1999.
[6] J. Lin, W. Yu, N. Zhang, X. Yang, H. Zhang, and W. Zhao, “A survey
on Internet of Things: Architecture, enabling technologies, security
and privacy, and applications,” IEEE Internet Things J., vol. 4, no.
5, pp. 1125–1142, Oct. 2017.
[7] Z. Hao, E. Novak, S. Yi, and Q. Li, “Challenges and software
architecture for fog computing,” IEEE Internet Comput., vol. 21,
no. 2, pp. 44–53, Mar./Apr. 2017.
[8] K. Hong, D. J. Lillethun, U. Ramachandran, B. Ottenwälder, and
B. Koldehofe, “Mobile fog: A programming model for large-scale
applications on the Internet of Things,” in Proc. 2nd ACM
SIGCOMM Workshop Mobile Cloud Comput., 2013, pp. 15–20.
[9] L. Zhang, W. Jia, S. Wen, and D. Yao, “A man-in-the-middle attack on
3G-WLAN interworking,” in Proc. IEEE Int. Conf. Commun. Mobile
Comput., vol. 1, 2010, pp. 121–125.

[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.

[13] P. T. Endo et al., “Resource allocation for distributed


cloud: Concepts and research challenges,” IEEE Netw., vol. 25,
no. 4, pp. 42–46, Jul./Aug. 2011.
[14] M. Aazam and E.-N. Huh, “Dynamic resource
provisioning through fog micro datacenter,” in Proc. IEEE Int.
Conf. Pervasive Comput. Commun. Workshops (PerCom
workshops), 2015, pp. 105–110.
[15] Y. Fan, X. Lin, G. Tan, Y. Zhang, W. Dong, and J. Lei,
“One secure data integrity verification scheme for cloud
storage,” Future Gener. Comput. Syst., vol. 96, pp. 376–385,
Jul. 2019.
[16] R. Lu, X. Liang, X. Li, X. Lin, and X. Shen, “EPPA: An
efficient and privacy-preserving aggregation scheme for secure
smart grid communications,” IEEE Trans. Parallel Distrib.
Syst., vol. 23, no. 9, pp. 1621–1631, Sep. 2012.
[17] Y. W. Law, M. Palaniswami, G. Kounga, and A. Lo,
“WAKE: Key management scheme for wide-area measurement
systems in smart grid,” IEEE Commun. Mag., vol. 51, no. 1,
pp. 34–41, Jan. 2013.
[18] D. Balfanz, D. K. Smetters, P. Stewart, and H. C. Wong,
“Talking to strangers: Authentication in ad-hoc wireless
networks,” in Proc. NDSS, 2002, pp. 65–82.

[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]

You might also like