Question Description
SUMMARY
This project will simulate communicating with a drone that is surveying land for information (part 1) and then provide a portal for drone data storage in a database as well as reviewing summarized data results (part 2).
The target of the Drone Recon data collection is your choice. Suggestions include:
Agriculture
Forest
Wildlife
Search and Rescue
Military
This project will involve the following:
JSP
Servlets
REST Web services
JSON
HTML
Databases
DETAILS
Part 1 – DRONE Communication: Data collection and guidance
Zip file provided… Files provided in zip file:
dronerecon/drone_launch.jsp (needs code added by you)
dronerecon/drone_sim.jsp (needs code added by you)
dronerecon/js/dronesim.js
dronerecon/js/jquery.min.js
dronerecon/js/webservice_client.js
The “dronerecon” folder should be placed in the “webapps” folder in your Tomcat installation.
Fill in the drone_sim.jsp and drone_launch.jsp template code that is provided.
Simply look for places where to adjust code marked with ########.
DroneDataService.java
This is a servlet that provides a RESTful web service to the drone_sim.jsp page.
The service does all the following:
Receives last grid tile data from drone and sends data to Drone Recon Portal web service for DB storage (Sending to Drone Recon Portal is in part 2).
Based on previous tile passed in and grid specs passed in, it returns to the drone that called the next tile to fly over and which direction the drone should be going all in a JSON structured string.
The template file for this is provided.
This should be done in a class library project and then compiled into a JAR file and put in the “WEB-INF/lib” folder in your web app.
Part 2 – DRONE Data Portal: Web front end and DB
In this section, you are creating another web app similar to Part 1, but this app will have a DB file in it and will provide a web service for writing data.
Zip file provided… Files provided in zip file:
dronereconportal/db/dronedata.sqlite
Rest of files are the standard web app structure and the servlet and DB JARs are in lib folder.
PUT THE “dronereconportal” folder in your “webapps” folder in Tomcat.
All the following Java files can be put in the same project.
All files will be in package com.dronerecon.ws
Java files provided:
DBManager.java (no additions for you to make)
PortalDBService.java (There are CODE ADDITIONS you need to make – look for #######)
Create a new Java file:
AreaGridTile.java
Just 5 instance variables (IMPORTANT: Make all of these “public“):
areaID – String type
x, y, r, g – All int types
timestamp – String type
A JAR of all these files should be created and placed in dronereconportal/WEB-INF/lib
Call the PortalDBService from the DroneDataService.java file from Part 1.
Do this using the same code example used in the weather web service lab.
The code should be in the doGet method just after Step 1 where you are getting the values from the request object.
Remember, you also have to get two more parameters from the request object that you weren’t getting before: “r” and “g” (these are already there for you to get).
You are adding the values retrieved from the request to fill into the URL:
The URL would look something like this:
http://127.0.0.1:8080/dronereconportal/PortalDBService?area_id=1&tilex=1&tiley=1&r=1&g=1
Lastly, create two JSP files in dronereconportal folder:
areasearch.jsp: It has a text box input for area ID and a submit button that submits to a second JSP.
arearesults.jsp:
Step 1: Be sure to import the required classes you need with this type of syntax as we’ve done in earlier labs:
<%@ page import=”com.dronerecon.ws.AreaGridTile” %>
Hint: You also need to import DBManager and the ArrayList type (in java.util)
Step 2: Get incoming area id from other JSP.
Step 3: Create an instance of DBManager.
Step 4: Adjust DB location on DBManager object with similar line of code I provided in PortalDBService.java:
For Windows Users:
oDBManager.DBLocation = System.getProperty(“catalina.base”) + “webappsdronereconportaldb + oDBManager.DBLocation;
For Mac Users:
oDBManager.DBLocation = System.getProperty(“”catalina.base””) + “”/webapps/dronereconportal/db/”” + oDBManager.DBLocation;
Step 5: Call readAreaGridTiles and pass in area id.
Step 6: You get back an ArrayList
Step 7: Loop through and print out to the screen…
The x