Professional Documents
Culture Documents
INTRODUCTION:
1.1 Abstract :
Items shared through Social Media may affect more than one users privacy e.g.,
photos that depict multiple users, comments that mention multiple users, events in which
multiple users are invited, etc. The lack of multi-party privacy management support in current
mainstream Social Media infrastructures makes users unable to appropriately control to
whom these items are actually shared or not. Computational mechanisms that are able to
merge the privacy preferences of multiple users into a single policy for an item can help solve
this problem. However, merging multiple users privacy preferences is not an easy task,
because privacy preferences may conflict, so methods to resolve conflicts are needed.
Moreover, these methods need to consider how users would actually reach an agreement
about a solution to the conflict in order to propose solutions that can be acceptable by all of
the users affected by the item to be shared. Current approaches are either too demanding or
only consider fixed ways of aggregating privacy preferences. In this paper, we propose the
first computational mechanism to resolve conflicts for multi-party privacy management in
Social Media that is able to adapt to different situations by modelling the concessions that
users make to reach a solution to the conflicts. We also present results of a user study in
which our proposed mechanism outperformed other existing approaches in terms of how
many times each approach matched users behaviour.
1.1.1 Purpose:
In this paper , we propose the first computational mechanism to resolve conflicts for
multiparty privacy management in social media that is able to adapt to different situations by
modelling the concessions the concessions that users make to reach a solution to the conflicts.
1.1.2 Scope:
3. system does not provide a method to automatically detect which items are co-owned.
Page 1
1.1.3 Motivation:
2. SYSTEM ANALYSIS:
2.1 EXISTING SYSTEM:
As suggested by existing research , negotiations about privacy in social media are
collaborative most of the time. That is, users would consider other preferences when deciding
to whom they share, so users may be willing to concede and change their initial most
preferred option. Being able to model the situations in which these concessions happen is of
crucial importance to propose the best solution to the conflicts found one that would be
acceptable by all the users involved. We conducted a user study comparing our mechanism to
what users would do themselves in a number of situations. The results obtained suggest that
our mechanism was able to match participants concession behaviour significantly more often
than other existing approaches. This has the potential to reduce the amount of manual user
interventions to achieve a satisfactory solution for all parties involved in multi-party privacy
conflicts.
Page 2
online friends they would like to share the item if they were to decide it unilaterally. In this
paper, we assume negotiating users specify their individual privacy preferences using group-
based access control, which is nowadays mainstream in Social Media (e.g., Facebook lists or
Google+ circles), to highlight the practical applicability of our proposed approach.
Page 3
1. Individual Privacy Preference Module
Negotiating users have their own individual privacy preferences about the item i.e., to
whom of their online friends they would like to share the item if they were to decide it
unilaterally. In this paper, we assume negotiating users specify their individual privacy
preferences using group-based access control, which is nowadays mainstream in Social
Media (e.g., Facebook lists or Google+ circles), to highlight the practical applicability of our
proposed approach. However, other access control approaches for Social Media could also be
used in conjunction with our proposed mechanism e.g., relationship-based access control
as already shown in , or (semi-)automated approaches like . Note also that our approach does
not necessarily need users to specify their individual privacy preferences for each and every
item separately, they could also specify the same preferences for collections or categories of
items for convenience according to the access control model being used e.g., Facebook
users can specify preferences for a whole photo album at once.
We need a way to compare the individual privacy preferences of each negotiating user in
order to detect conflicts among them. However, each user is likely to have defined different
groups of users, so privacy policies from different users may not be directly comparable. To
compare privacy policies from different negotiating users for the same item, we consider the
effects that each particular privacy policy has on the set of target users T. Privacy policies
dictate a particular action to be performed when a user in T tries to access the item. In
particular, we assume that the available actions are either 0 (denying access) or 1 (granting
access).
An item should not be shared if it is detrimental to one of the users involved i.e., users
refrain from sharing particular items because of potential privacy breaches and other users
allow that as they do not want to cause any deliberate harm to others . If an item is not
detrimental to any of the users involved and there is any user for whom sharing is important,
the item should be shared i.e., users are known to accommodate others preferences . For
Page 4
the rest of cases, the solution should be consistent with the majority of all users individual
preferences i.e., when users do not mind much about the final output .
Now the focus is on the particular conflicting target user i.e., the target user for which
different negotiating users prefer a different action (denying/granting access to the item). The
mediator estimates how important a conflicting target user is for a negotiating user by
considering both tie strength with the conflicting target user and the group (relationship type)
the conflicting target user belongs to , which are known to play a crucial role for privacy
management. For instance, Alice may decide she does not want to share a party photo with
her mother, who has a very close relationship to Alice (i.e., tie strength between Alice and her
mother is high). This signals that not sharing the photo with her mother is very important to
Alice, e.g., teens are known to hide from their parents in social media . Another example
would be a photo in which Alice is depicted together with some friends with a view to a
monument that she wants to share with all her friends. If some of her friends that appear in
the monument photo also want to include Alices acquaintances, it is likely she would accept
as she already wants to share with all her friends (whether close or distant). Thus, the
mediator estimates the relative importance of a particular conflicting user considering both
the tie strength with this user in general and within the particular group (relationship type)
she belongs to. In particular, the mediator estimates the relative importance a conflicting
target user has for a negotiating user as the difference between the tie strength with the
conflicting user and the strictness of the policy for the group the conflicting user belongs to.
If the conflicting target user does not belong to any group of the negotiator; then the relative
importance is estimated considering the item sensitivity instead as there is no group
information.
3. IMPLEMENTATION PLAN:
Implementation is the stage of the project when the theoretical design is turned out into a
working system. Thus it can be considered to be the most critical stage in achieving a
successful new system and in giving the user, confidence that the new system will work and
be effective.
Page 5
The implementation stage involves careful planning, investigation of the existing system and
its constraints on implementation, designing of methods to achieve changeover and
evaluation of changeover methods002E
3.1 INTRODUCTION:
3.2 Purpose:
In software engineering, the same meanings of requirements apply, except that the
focus of interest is the software itself.
Page 6
3.4 Non Functional Requirements :
Usability
Reliability
Security
Hardware
Speed - 1.1 G h z
Hard Disk - 20 GB
Monitor - SVGA
Page 7
3.6 Software Requirements
Scripts : JavaScript.
Database : Mysql
4. System Design:
System Specifications:
4.1 Introduction
The purpose of the design phase is to plan a solution of the problem
specified by the requirement document. This phase is the first step in moving from the
problem domain to the solution domain. In other words, starting with what is needed and
design takes us toward how to satisfy the needs. The design of a system is perhaps the most
critical factor affection the quality of the software; it has a major impact on the later phase,
particularly testing, maintenance. The output of this phase is the design document. This
document is similar to a blueprint for the solution and is used later during implementation,
testing and maintenance. The design activity is often divided into two separate phases
System Design and Detailed Design.
System Design also called top-level design aims to identify the modules that should be
in the system, the specifications of these modules, and how they interact with each other to
produce the desired results. At the end of the system design all the major data structures, file
formats, output formats, and the major modules in the system and their specifications are
decided.
During, Detailed Design, the internal logic of each of the modules specified in system
design is decided. During this phase, the detail of the data of a module is usually specified in
Page 8
a high-level design description language, which is independent of the target language in
which the software will eventually be implemented.
In system design the focus is on identifying the modules, whereas during detailed
design the focus is on designing the logic for each of the modules. In other works, in system
design the attention is on what components are needed, while in detailed design how the
components can be implemented in software is the issue.
Design is concerned with identifying software components specifying relationships
among components. Specifying software structure and providing blue print for the
document phase. Modularity is one of the desirable properties of large systems. It
implies that the system is divided into several parts. In such a manner, the interaction
between parts is minimal clearly specified. During the system design activities,
Developers bridge the gap between the requirements specification, produced during
requirements elicitation and analysis, and the system that is delivered to the user.
Design is the place where the quality is fostered in development. Software
design is a process through which requirements are translated into a representation of
software.
.
4.2 UML Diagrams:
Introduction to UML
The unified Modeling Language (UML) is a standard language for writing software
blueprints. The UML may be used to visualize, specify, construct and document the artifacts
of software-intensive system.
The goal of UML is to provide a standard notation that can be used by all object - oriented
methods and to select and integrate the best elements .UML is itself does not prescribe or
advice on how to use that notation in a software development process or as part of an object -
design methodology. The UML is more than just bunch of graphical symbols. Rather, behind
each symbol in the UML notation is well-defined semantics.
The system development focuses on three different models of the system.
Functional model
Object model
Dynamic model
Page 9
Functional model in UML is represented with use case diagrams, describing the
functionality of the system from user point of view.
Object model in UML is represented with class diagrams, describing the structure of the
system in terms of objects, attributes, associations and operations.
Dynamic model in UML is represented with sequence diagrams, start chart diagrams and
activity diagrams describing the internal behavior of the system.
Scenarios
A Use Case is an abstraction that all describes all possible scenarios involving the described
functionality. A scenario is an instance of a use case describing a concrete set of actions.
The name of the scenario enables us to refer it ambiguously. The name of
scenario is underlined to indicate it is an instance.
The Participating actor instance field indicates which actor instance are
involved in this scenario. Actor instance also have underlined names.
The Flow of Events of scenario describe the sequence of events step by step.
Page 10
Actors are not part of the system. They represent anyone or anything that interact with the
system.
An Actor may
Only input information to the system.
Only receive information from the system.
Input and receive information from to and from the system.
During this activity, developers indentify the actors involved in this system are:
User: User is an actor who uses the system and who performs the operations like data
classifications and execution performance that are required for him.
Use Cases: Use cases are used during requirements elicitation and analysis to represent the
functionality of the system. Use case focus on the behavior of the system from an external
point of view. The identification of actors and use cases results in the definition of the
boundary of the system, which is, in differentiating the tasks accomplished by the system and
the tasks accomplished by its environment. The actors are outside the boundary of the system,
where as the use cases are inside the boundary of the system.
view friends
give priority
user admin
Page 11
Usecase diagram for Admin:
conflict detection
USER
Admin
conflict detection graph
conflict resolution
The class diagram is used to refine the use cases diagrams and define a detailed design of the
system. The class diagram classifies the actors defined in the use case diagram into a set of
interrelated classes. The relationship or association between the classes can be either an "is-a"
or "has-a" relationship. Each class in the class diagram may be capable of providing certain
functionalities. These functionalities provided by the class are termed "methods" of the
classes. Apart from this, each class may have certain "attributes" that uniquely indentify the
class. In the class diagram these classes are represented with boxes which contain three parts..
Page 12
User Admin
+userName: varchar +name: varchar
+userid: int +id: int
+otherDetails: varchar +otherdeatails: varchar
Login +userid: int
+sendFrndReq()
+viewFriends() 1..* 1 +viewNegotiatingUser()
+givePriority() +message()
+sendMsgToFrnd() +conflictDetection()
+viewConflictResolution() +conflictDetectionGraph()
+shareImageToFRnd() +conflictResolution()
+viewSharedImages()
Sequence diagrams are used to formalize the dynamic behavior of the system and to
visualize the communication among the objects. They are useful for identifying the
additional objects that participate in the use case. Sequence diagram represent the objects
participating in the interaction horizontally and time vertically
user login send frnd req view friends give priority send msg to frnd share images to friendview shared images
Page 13
Sequence diagram for Admin:
conflict resolution
admin login view negotiating user msg conflict detection conflict detection graph
3 : conflict detection()
4 : conflict detection graph()
5 : conflict resolution()
This diagram is an interaction diagram that stresses or emphasizes the structural organization
of the objects that send and receive messages.It shows a set of objects,links between objects
and messages sent and received by those objects.They are used to illustrate the dynamic view
of a system.
login
user account
send frnd req
conflict resolution
conflicts detection
+view negotiating user
admin
Page 14
4.2.5Activity Diagram:
An Activity diagram describes the behavior of the system in terms of activities. Activities are
modeling elements that represent the execution of set of operations. The completion of these
operations triggers a transition to another activity. Activity diagrams similar to flowchart
diagrams in that they can be used to represent control flow and data flow. Activities are
represented by rounded rectangles and arrows are represented transition between activities.
Think bars represent the synchronization of the control flow.
user
send frnd req view frnds send msg to a frnd view conflict resolution view shared images
give priority
Page 15
admin login
view negotiating user msg conflict detection conflict detection graph conflict resolution
5.SYSTEM TESTING:
TYPES OF TESTS
Page 16
Integration testing
Integration tests are designed to test integrated software components to determine if
they actually run as one program. Testing is event driven and is more concerned with the
basic outcome of screens or fields. Integration tests demonstrate that although the
components were individually satisfaction, as shown by successfully unit testing, the
combination of components is correct and consistent. Integration testing is specifically aimed
at exposing the problems that arise from the combination of components.
Functional test
Functional tests provide systematic demonstrations that functions tested are available as
specified by the business and technical requirements, system documentation, and user
manuals.
Page 17
System Test
System testing ensures that the entire integrated software system meets requirements. It
tests a configuration to ensure known and predictable results. An example of system testing is
the configuration oriented system integration test. System testing is based on process
descriptions and flows, emphasizing pre-driven process links and integration points.
Unit testing is usually conducted as part of a combined code and unit test phase of the
software lifecycle, although it is not uncommon for coding and unit testing to be conducted as
two distinct phases.
Test objectives
All field entries must work properly.
Pages must be activated from the identified link.
The entry screen, messages and responses must not be delayed.
Page 18
Features to be tested
Verify that the entries are of the correct format
No duplicate entries should be allowed
All links should take the user to the correct page.
The task of the integration test is to check that components or software applications,
e.g. components in a software system or one step up software applications at the company
level interact without error.
Test Results: All the test cases mentioned above passed successfully. No defects encountered.
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
Page 19
6. System Implementation:
Java Technology
Simple
Architecture neutral
Object oriented
Portable
Distributed
High performance
Interpreted
Multithreaded
Robust
Dynamic
Secure
With most programming languages, you either compile or interpret a program so that
you can run it on your computer. The Java programming language is unusual in that a
program is both compiled and interpreted. With the compiler, first you translate a program
into an intermediate language called Java byte codes the platform-independent codes
interpreted by the interpreter on the Java platform. The interpreter parses and runs each Java
byte code instruction on the computer. Compilation happens just once; interpretation occurs
each time the program is executed. The following figure illustrates how this works.
Page 20
You can think of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether its a development tool or a Web
browser that can run applets, is an implementation of the Java VM. Java byte codes help
make write once, run anywhere possible. You can compile your program into byte codes on
any platform that has a Java compiler. The byte codes can then be run on any implementation
of the Java VM. That means that as long as a computer has a Java VM, the same program
written in the Java programming language can run on Windows 2000, a Solaris workstation,
or on an iMac.
Native code is code that after you compile it, the compiled code runs on a
specific hardware platform. As a platform-independent environment, the Java
platform can be a bit slower than native code. However, smart compilers, well-tuned
interpreters, and just-in-time byte code compilers can bring performance close to that
of native code without threatening portability.
What Can Java Technology Do?
The most common types of programs written in the Java programming language are
applets and applications. If youve surfed the Web, youre probably already familiar
with applets. An applet is a program that adheres to certain conventions that allow it
to run within a Java-enabled browser.
However, the Java programming language is not just for writing cute, entertaining
applets for the Web. The general-purpose, high-level Java programming language is
also a powerful software platform. Using the generous API, you can write many types
of programs.
Page 22
An application is a standalone program that runs directly on the Java platform. A
special kind of application known as a server serves and supports clients on a
network. Examples of servers are Web servers, proxy servers, mail servers, and print
servers. Another specialized program is a servlet. A servlet can almost be thought of
as an applet that runs on the server side. Java Servlets are a popular choice for
building interactive web applications, replacing the use of CGI scripts. Servlets are
similar to applets in that they are runtime extensions of applications. Instead of
working in browsers, though, servlets run within Java Web servers, configuring or
tailoring the server.
How does the API support all these kinds of programs? It does so with packages of
software components that provides a wide range of functionality. Every full
implementation of the Java platform gives you the following features:
The essentials: Objects, strings, threads, numbers, input and output, data
structures, system properties, date and time, and so on.
Applets: The set of conventions used by applets.
Networking: URLs, TCP (Transmission Control Protocol), UDP (User
Data gram Protocol) sockets, and IP (Internet Protocol) addresses.
Internationalization: Help for writing programs that can be localized for
users worldwide. Programs can automatically adapt to specific locales and be
displayed in the appropriate language.
Security: Both low level and high level, including electronic signatures,
public and private key management, access control, and certificates.
Software components: Known as JavaBeansTM, can plug into existing
component architectures.
Object serialization: Allows lightweight persistence and communication
via Remote Method Invocation (RMI).
Java Database Connectivity (JDBCTM): Provides uniform access to a
wide range of relational databases.
The Java platform also has APIs for 2D and 3D graphics, accessibility, servers,
collaboration, telephony, speech, animation, and more. The following figure depicts
what is included in the Java 2 SDK.
Page 23
How Will Java Technology Change My Life?
We cant promise you fame, fortune, or even a job if you learn the Java
programming language. Still, it is likely to make your programs better and requires
less effort than other languages. We believe that Java technology will help you do the
following:
Get started quickly: Although the Java programming language is a
powerful object-oriented language, its easy to learn, especially for
programmers already familiar with C or C++.
Write less code: Comparisons of program metrics (class counts, method counts,
and so on) suggest that a program written in the Java programming language can be
four times smaller than the same program in C++.
Page 24
repository of historical process manuals, white papers, brochures, and similar
materials online.
Write once, run anywhere: Because 100% Pure Java programs are
compiled into machine-independent byte codes, they run consistently on any
Java platform.
Distribute software more easily: You can upgrade applets easily from a
central server. Applets take advantage of the feature of allowing new classes
to be loaded on the fly, without recompiling the entire program.
ODBC
Microsoft Open Database Connectivity (ODBC) is a standard programming interface
for application developers and database systems providers. Before ODBC became a de facto
standard for Windows programs to interface with database systems, programmers had to use
proprietary languages for each database they wanted to connect to. Now, ODBC has made the
choice of the database system almost irrelevant from a coding perspective, which is as it
should be. Application developers have much more important things to worry about than the
syntax that is needed to port their program from one database to another when business needs
suddenly change.
Through the ODBC Administrator in Control Panel, you can specify the particular
database that is associated with a data source that an ODBC application program is written to
use. Think of an ODBC data source as a door with a name on it. Each door will lead you to a
particular database. For example, the data source named Sales Figures might be a SQL Server
database, whereas the Accounts Payable data source could refer to an Access database. The
physical database referred to by a data source can reside anywhere on the LAN.
The ODBC system files are not installed on your system by Windows 95. Rather, they
are installed when you setup a separate database application, such as SQL Server Client or
Visual Basic 4.0. When the ODBC icon is installed in Control Panel, it uses a file called
ODBCINST.DLL. It is also possible to administer your ODBC data sources through a stand-
alone program called ODBCADM.EXE. There is a 16-bit and a 32-bit version of this
program and each maintains a separate list of ODBC data sources.
From a programming perspective, the beauty of ODBC is that the application can be
written to use the same set of function calls to interface with any data source, regardless of
Page 25
the database vendor. The source code of the application doesnt change whether it talks to
Oracle or SQL Server. We only mention these two as an example. There are ODBC drivers
available for several dozen popular database systems. Even Excel spreadsheets and plain text
files can be turned into data sources. The operating system uses the Registry information
written by ODBC Administrator to determine which low-level ODBC drivers are needed to
talk to the data source (such as the interface to Oracle or SQL Server). The loading of the
ODBC drivers is transparent to the ODBC application program. In a client/server
environment, the ODBC API even handles many of the network issues for the application
programmer.
The advantages of this scheme are so numerous that you are probably thinking there
must be some catch. The only disadvantage of ODBC is that it isnt as efficient as talking
directly to the native database interface. ODBC has had many detractors make the charge that
it is too slow. Microsoft has always claimed that the critical factor in performance is the
quality of the driver software that is used. In our humble opinion, this is true. The availability
of good ODBC drivers has improved a great deal recently. And anyway, the criticism about
performance is somewhat analogous to those who said that compilers would never match the
speed of pure assembly language. Maybe not, but the compiler (or ODBC) gives you the
opportunity to write cleaner programs, which means you finish sooner. Meanwhile,
computers get faster every year.
JDBC
In an effort to set an independent database standard API for Java; Sun Microsystems
developed Java Database Connectivity, or JDBC. JDBC offers a generic SQL database access
mechanism that provides a consistent interface to a variety of RDBMSs. This consistent
interface is achieved through the use of plug-in database connectivity modules, or drivers.
If a database vendor wishes to have JDBC support, he or she must provide the driver for each
platform that the database and Java run on.
To gain a wider acceptance of JDBC, Sun based JDBCs framework on ODBC. As
you discovered earlier in this chapter, ODBC has widespread support on a variety of
platforms. Basing JDBC on ODBC will allow vendors to bring JDBC drivers to market much
faster than developing a completely new connectivity solution.
Page 26
JDBC was announced in March of 1996. It was released for a 90 day public review
that ended June 8, 1996. Because of user input, the final JDBC v1.0 specification was
released soon after.
The remainder of this section will cover enough information about JDBC for you to know
what it is about and how to use it effectively. This is by no means a complete overview of
JDBC. That would fill an entire book.
JDBC Goals
Few software packages are designed without goals in mind. JDBC is one that, because
of its many goals, drove the development of the API. These goals, in conjunction with early
reviewer feedback, have finalized the JDBC class library into a solid framework for building
database applications in Java.
The goals that were set for JDBC are important. They will give you some insight as to
why certain classes and functionalities behave the way they do. The eight design goals for
JDBC are as follows:
2. SQL Conformance
SQL syntax varies as you move from database vendor to database vendor. In an effort
to support a wide variety of vendors, JDBC will allow any query statement to be passed
through it to the underlying database driver. This allows the connectivity module to
handle non-standard functionality in a manner that is suitable for its users.
Page 27
4. Provide a Java interface that is consistent with the rest of the Java
system
Because of Javas acceptance in the user community thus far, the designers feel that
they should not stray from the current design of the core Java system.
5. Keep it simple
This goal probably appears in all software design goal listings. JDBC is no exception.
Sun felt that the design of JDBC should be very simple, allowing for only one method of
completing a task per mechanism. Allowing duplicate functionality only serves to confuse
the users of the API.
And for dynamically updating the cache table we go for MS Access database.
Simple Architecture-neutral
Object-oriented Portable
Distributed High-performance
Interpreted multithreaded
Robust Dynamic
Secure
Page 28
Java is also unusual in that each Java program is both compiled and interpreted.
With a compile you translate a Java program into an intermediate language called
Java byte codes the platform-independent code instruction is passed and run on the
computer.
Compilation happens just once; interpretation occurs each time the program is
executed. The figure illustrates how this works.
Compilers My Program
You can think of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether its a Java
development tool or a Web browser that can run Java applets, is an implementation
of the Java VM. The Java VM can also be implemented in hardware.
Java byte codes help make write once, run anywhere possible. You can
compile your Java program into byte codes on my platform that has a Java
compiler. The byte codes can then be run any implementation of the Java VM. For
example, the same Java program can run Windows NT, Solaris, and Macintosh.
Page 29
Networking
TCP/IP stack
IP datagrams
Page 30
UDP
TCP
Internet addresses
In order to use a service, you must be able to find it. The Internet uses an
address scheme for machines so that they can be located. The address is a 32 bit
integer which gives the IP address. This encodes a network ID and more addressing.
The network ID falls into various classes according to the size of the network
address.
Network address
Class A uses 8 bits for the network address with 24 bits left over for other
addressing. Class B uses 16 bit network addressing. Class C uses 24 bit network
addressing and class D uses all 32.
Subnet address
Host address
8 bits are finally used for host addresses within our subnet. This places a limit of
256 machines that can be on the subnet.
Page 31
Total address
Port addresses
A service exists on a host, and is identified by its port. This is a 16 bit number.
To send a message to a server, you send it to the port for that service of the host that
it is running on. This is not location transparency! Certain of these ports are "well
known".
Sockets
#include <sys/types.h>
#include <sys/socket.h>
int socket(int family, int type, int protocol);
Page 32
Here "family" will be AF_INET for IP communications, protocol will be zero,
and type will depend on whether TCP or UDP is used. Two processes wishing to
communicate over a network create a socket each. These are similar to two ends of
a pipe - but the actual pipe does not yet exist.
JFree Chart
JFreeChart is a free 100% Java chart library that makes it easy for developers
to display professional quality charts in their applications. JFreeChart's extensive
feature set includes:
A flexible design that is easy to extend, and targets both server-side and client-
side applications;
Support for many output types, including Swing components, image files
(including PNG and JPEG), and vector graphics file formats (including PDF, EPS and
SVG);
1. Map Visualizations
Charts showing values that relate to geographical areas. Some examples
include: (a) population density in each state of the United States, (b) income per
capita for each country in Europe, (c) life expectancy in each country of the world.
The tasks in this project include:
Sourcing freely redistributable vector outlines for the countries of the world,
states/provinces in particular countries (USA in particular, but also other areas);
Implement a new (to JFreeChart) feature for interactive time series charts --- to display a
separate control that shows a small version of ALL the time series data, with a sliding
"view" rectangle that allows you to select the subset of the time series data to display in
the main chart.
3. Dashboards
4. Property Editors
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
JavaServer Pages technologies. The Java Servlet and JavaServer 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.
Page 34
Fig Tomcat Webserver
Source code:
Admin:
<%@ page import="java.sql.*" import="databaseconnection.*" errorPage=""
%>
<%@page import="javax.crypto.*"%>
<%
String fname1=request.getParameter("fname");
String tname1=request.getParameter("tname");
String p1=null;
Page 35
String friend=null;
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
Media</title>
</head>
<body>
<div id="back">
<div id="footer_bg">
<div id="content">
<div id="header">
<div id="logo">
<div id="heading"></div>
</div>
<div id="menu1">
<ul>
Page 36
<li><a href="index.html" title="" class="action">Home</a></li>
</ul>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(window).load(function() {
$('#slider').nivoSlider();
});
</script> </div>
Page 37
<!--- <div id="main_top"></div> --->
<div id="blog_col">
<div id="col1_1">
</div>
<div id="col1_2">
</div>
<div id="col1_3">
<p>Curabitur neque lectus, mattis at iaculis at, dapibus eget nisi. Quisque
ut diam id dui gravida elementum non in diam. Duis dignissim justo ut diam pellentesque ut
venenatis ipsum gravida. Curabitur mollis sem </p>
Page 38
</div><div style="clear: both"></div>
</div>
</div>
<div class="main_bot"></div>--->
<div class="main2">
<div id="blog_col12">
<div class="col2_1">
Page 39
</div>
<div id="lohead"></div>
<tr>
<td>Friends Name</td>
<td>Priority</td>
<td>Relationship</td>
</tr>
<%
PreparedStatement ps3=null;
ResultSet rs3=null;
Connection con3=databasecon.getconnection();
try{
while(rs3.next()){
/*rid=uid+","+uname+","+fid+","+fname;*/
Page 40
%>
<br>
<tr>
<td> <%=rs3.getString("fname")%></td>
<td><%=rs3.getString("priority")%></td>
<td><%=rs3.getString("relationship")%></td> </tr>
<% }
catch(Exception e)
System.out.println(e);
%>
</table>
Page 41
<table width="366" bgcolor="white"
border="2">
<tr>
<td>Priority Name</td>
<td>Priority</td>
<td>Relationship</td>
</tr>
<%
PreparedStatement ps1=null;
ResultSet rs1=null;
Connection con1=databasecon.getconnection();
try{
while(rs1.next()){
/*rid=uid+","+uname+","+fid+","+fname;*/
%>
<br>
<tr>
<%p1=rs1.getString("priority");%>
<td> <%=rs1.getString("fname")%></td>
Page 42
<td> <%=rs1.getString("priority")%></td>
<td>
<%=rs1.getString("relationship")%></td> </tr>
<% }
catch(Exception e)
System.out.println(e);
%>
</table>
<a
href="view_graph1.jsp?f1=<%=fname1%>&&t1=<%=tname1%>">View Graph</a>
<tr>
<td>Priority Name</td>
<td>Priority</td>
<td>Relationship</td>
Page 43
</tr>
<%
PreparedStatement ps4=null;
ResultSet rs4=null;
Connection con4=databasecon.getconnection();
try{
while(rs4.next()){
/*rid=uid+","+uname+","+fid+","+fname;*/
%>
<br>
<tr>
<%p1=rs4.getString("priority");%>
<td> <%=rs4.getString("fname")%></td>
<td> <%=rs4.getString("priority")%></td>
<td>
<%=rs4.getString("relationship")%></td> </tr>
<% }
catch(Exception e)
Page 44
{
System.out.println(e);
%>
</table>
<tr>
<td>Priority Name</td>
<td>Priority</td>
<td>Relationship</td>
</tr>
<%
PreparedStatement ps2=null;
ResultSet rs2=null;
Connection con2=databasecon.getconnection();
try{
/*rid=uid+","+uname+","+fid+","+fname;*/
%>
<br>
<tr>
<td> <%=rs2.getString("fname")%></td>
<td> <%=rs2.getString("priority")%></td>
<td>
<%=rs2.getString("relationship")%></td> </tr>
<% }
catch(Exception e)
System.out.println(e);
%>
</table>
<a
href="view_graph2.jsp?f1=<%=fname1%>&&t1=<%=tname1%>">View Graph</a>
Page 46
<table width="366" bgcolor="white"
border="2">
<tr>
<td>Priority Name</td>
</tr>
<%
PreparedStatement ps5=null;
ResultSet rs5=null;
Connection con5=databasecon.getconnection();
try{
while(rs5.next()){
/*rid=uid+","+uname+","+fid+","+fname;*/
%>
<br>
<tr>
<%friend=rs5.getString("fname");
session.setAttribute("f1",friend);
System.out.println("friend"+friend);%>
Page 47
<td><%=rs5.getString("fname")%></td>
</tr>
<% }
catch(Exception e)
System.out.println(e);
%>
</table>
<a
href="view_graph3.jsp?f1=<%=fname1%>&&t1=<%=tname1%>">View Graph</a>
</div>
</div>
</div>
</div>
</div>
Page 48
</div>
</body>
</html>
User:
<html>
<head>
<title>Community-Aware
Opportunistic<br> Routing in
</head>
<body>
<%
Statement st = null;
ResultSet rs = null;
session.setAttribute("name",name);
session.setAttribute("password",password);
String status="Allow";
try{
Connection con=databasecon.getconnection();
Page 49
st = con.createStatement();
rs = st.executeQuery(qry);
if(!rs.next()){
else
session.setAttribute("uid",Integer.toString(rs.getInt("id")));
session.setAttribute("mylocation",rs.getString("location"));
response.sendRedirect("friend_request.jsp");
catch(Exception ex){
out.println(ex);
%>
</body>
</html>
Execution steps:
1. start the tomcat server
2. open any browser and type URL on address bar then display the home page of project.
3. Select user login button to register new user
4. Again select user login button to register new user.
5. Select admin login button to login admin.
6. Admin can give access to users.
7. After logging to users view friend requests.
Page 50
8. User can View friends on view friends button.
9. Admin give priority to the user friends.
Page 51
7. Conclusion and Future Enhancements:
7.1 Conclusion:
In this paper, we present the first mechanism for detecting and resolving
privacy conflicts in Social Media that is based on current empirical evidence about privacy
negotiations and disclosure driving factors in Social Media and is able to adapt the conflict
resolution strategy based on the particular situation. In a nutshell, the mediator firstly inspects
the individual privacy policies of all users involved looking for possible conflicts. If conflicts
are found, the mediator proposes a solution for each conflict according to a set of concession
rules that model how users would actually negotiate in this domain. We conducted a user
study comparing our mechanism to what users would do themselves in a number of
situations. The results obtained suggest that our mechanism was able to match participants
concession behaviour significantly more often than other existing approaches. This has the
potential to reduce the amount of manual user interventions to achieve a satisfactory solution
for all parties involved in multi-party privacy conflicts. Moreover, the study also showed the
benefits that an adaptive mechanism like the one we presented in this paper can provide with
respect to more static ways of aggregating users individual privacy preferences, which are
unable to adapt to different situations and were far from what the users did themselves. The
research presented in this paper is a stepping stone towards more automated resolution of
conflicts in multi-party privacy management for Social Media. As future work, we plan to
continue researching on what makes users concede or not when solving conflicts in this
domain. In particular, we are also interested in exploring if there are other factors that could
also play a role in this, like for instance if concessions may be influenced by previous
negotiations with the same negotiating users or the relationships between negotiators
themselves.
Page 52
7.2 Scope for Future Enhancements:
we propose the computational mechanism for social media that, given the individual privacy
preferences of each user involved in an item, is able to find and resolve conflicts by applying
a different conflict resolution method based on the concessions users may be willing to make
in different situations .We also present a user study comparing our computational mechanism
of conflict resolution and other previous approaches to what users would do themselves
manually in a number of situations. The results obtained suggest our proposed mechanism
significantly outperformed other previously proposed approaches in terms of the number of
times it matched participants behaviour in the study. Negotiating users have their own
individual privacy preferences about the item i.e., to whom of their online friends they
would like to share the item if they were to decide it unilaterally. In this paper, we assume
negotiating users specify their individual privacy preferences using group-based access
control, which is nowadays mainstream in Social Media (e.g., Facebook lists or Google+
circles), to highlight the practical applicability of our proposed approach.
Page 53
8.Bibliography:
A. Akavia, S. Goldwasser, and V. Vaikuntanathan. Simultaneous hardcore bits and
cryptography against memory attacks. In TCC,volume 5444 of Lecture Notes in Computer
Science, pages 474495.Springer, 2009.[2] S. S. Al-Riyami and K. G. Paterson.
Certificateless public keycryptography. In ASIACRYPT, volume 2894 of Lecture Notes in
Computer Science, pages 452473. Springer, 2003. [3] M. H. Au, J. K. Liu, W. Susilo, and T.
H. Yuen. Certificate based (linkable) ring signature. In ISPEC, volume 4464 of Lecture Notes
in Computer Science, pages 7992. Springer, 2007.
[4] M. H. Au, Y. Mu, J. Chen, D. S. Wong, J. K. Liu, and G. Yang .Malicious kgc attacks in
certificateless cryptography. In ASIACCS, pages 302311. ACM, 2007.[5] M. Blaze, G.
Bleumer, and M. Strauss. Divertible protocols and atomic proxy cryptography. In K. Nyberg,
editor, EUROCRYPT ,volume 1403 of LNCS, pages 127144. Springer, 1998.
[6] A. Boldyreva, V. Goyal, and V. Kumar. Identity-based encryption with efficient
revocation. In P. Ning, P. F. Syverson, and S. Jha, editors, ACM Conference on Computer
and Communications Security ,pages 417426. ACM, 2008.IEEE Transactions on Computers
( Volume: 65, Issue: 6, June 1 2016 ),30 July 2016
TABLE 2: Computation Comparison I
.
Page 54
9. Appendix A : Sample Code
Cross site scripting
<%
String f2=request.getParameter("f1");
String t2=request.getParameter("t1");
String p1=null;
String friend=null;
%>
<%
//System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"+network);
Page 55
//System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"+Usernames);
//JDBCCategoryDataset dataset=new
JDBCCategoryDataset("jdbc:mysql://localhost:3306/database","com.mysql.jdbc.Driver","roo
t","admin");
JDBCCategoryDataset dataset=new
JDBCCategoryDataset("jdbc:mysql://localhost:3306/conflict","com.mysql.jdbc.Driver","root
","admin");
dataset.executeQuery(query);
try
ChartUtilities.saveChartAsJPEG(new File("F:/Amaresh/apache-tomcat-
6.0.18/webapps/Resolving Multi-party Privacy Conflicts in Social/images/logotype2.jpg"),
chart, 700, 300);
Page 56
}
catch (IOException e)
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
Media</title>
</head>
<body>
<div id="back">
<div id="footer_bg">
<div id="content">
<div id="header">
<div id="logo">
Page 57
<div id="heading"></div>
</div>
<div id="menu1">
<ul>
</ul>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(window).load(function() {
$('#slider').nivoSlider();
});
</script> </div>
Page 58
<!-- header ends -->
<div id="blog_col">
<div id="col1_1">
</div>
<div id="col1_2">
</div>
<div id="col1_3">
Page 59
<p>Curabitur neque lectus, mattis at iaculis at, dapibus eget nisi. Quisque
ut diam id dui gravida elementum non in diam. Duis dignissim justo ut diam pellentesque ut
venenatis ipsum gravida. Curabitur mollis sem </p>
</div>
</div>
<div class="main_bot"></div>--->
<div class="main2">
<div id="blog_col12">
<div class="col2_1">
Page 60
<div class="read"><a href="#">read more</a></div>-->
</div>
<img src="images/logotype2.jpg"
height="350" width="550" border="0" style="margin-top:20px;margin-left:20px;"/>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Page 61
Appendix B : Screen Shots
Page 62
Page 63
Page 64
Page 65
Page 66
Page 67
Page 68
Page 69
Page 70
Page 71
Page 72
Page 73
Page 74
Page 75