[Home][Main][Data Submission][Data Analysis][Web Services][Contact Us][Feedback]

Beacon Processing System

NASA/CREST - CENTER FOR ROBOTICS EXPLORATION AND SPACE TECHNOLOGIES

TEAM MEMBERS

EDWARD ANTHONYSAMY, BRUCE DAVIS, AND VEERARAGAVAN GOPALAKRISHNAN

FACULTY ADVISORS

DR. JIM D. PHAM AND DAVID TOPHAM

Description

Beacon Processing System (BPS) is a Web-based application that provides the ability for external operators, educators, and public access to submit PharmaSat satellite beacon data. BPS is a joint project between Santa Clara University and NASA/CREST. Click here for information on PharmaSat.

 

PharmaSat (http://pharmasat.engr.scu.edu/dashboard/) was successfully launched into orbit on May 19, 2009, 16:55.

 

Team Ohlone College received the most prestigious NASA Ames Honor Award in recognition of work done in support of NASA/CREST PharmaSat project.

BPS System

BPS provides the ability for external HAM radio operators to submit beacon data collected from PharmaSat satellite. BPS composes of 5 subsystems:

 

 Beacon Application

 Beacon Web Services

 Beacon Data Format

 Beacon Data Services

 MySQL database

Beacon Users Application

 

Beacon application is an ASP.NET/Web-based application. ASP.NET is a part of the Microsoft .NET technologies for Web development and Visual Studio/IDE.

Beacon Web Services

 

 Beacon Web Services (WS) are a set public APIs that allow external operators, educators, and public access to interface with the third party application.

 Beacon WS uses SOAP to interoperability with beacon application and beacon data format service.

Beacon Data Format

 

 Data handler for encode/decode beacon data such as decode, convert, calculate, etc. 

 Data formatter and storing beacon data

 Data interface between Beacon Web services and Beacon Data services.

Beacon Data Service

 

 Data access (database connectivity, database access).

 Data tier of the application.

Feature Requirements

 Data reporting: beacon data, call-sign, other data, and QSL page

 MySQL database

 Data processing: HAM operator call sign, the number of unique countries from which operators submit, and others data

 Messages achieve and search capability

 Summary reports of the total number of searches, characteristics, and others data

Technology

Microsoft .NET Framework

Architecture

Data Schema

Beacon Client Application

Microsoft .NET technology was used for the client application and the beacon data processing backend.

The Beacon client application composes of the following components:

 

 Data Submission Form

 Data Analysis Form

 List of Web Services Form

 Contact Us Form

 Feedback Form

 

Submission:

1. Name  

Description: Name of the person who is submitting the beacon packets

Control: Textbox control

Validation: Required

2. Email

Description: Email Id of the person who is submitting the beacon packets.

Control: Textbox control

Validation: Required and has to conform to a email regular expression.

3. Call Sign

Description: Call Sign associated with the submission.

Control: Textbox control

Validation: Required and has to be a 6 digit alphanumeric character

4. Location

Description: The location from where the user is submitting the beacon packets.

Control: Dropdown list

Validation: Required and has to be one the country name from the dropdown list.

5. Beacon Packets Entry

Description: The placeholder to enter the beacon packets.

 Control: Multiline Textbox

Validation: Required

6. Additional Comments Entry

Description: The placeholder to enter any additional comments such as signal strength, etc.

 Control: Textbox

Validation: Optional

7. Status of Submission

Description: The placeholder to indicate any errors associated with the packet submission.

Control: Label

Validation: N/A

8. Submit

Description: The control used to submit the data back to the server for processing. If there are no errors the user will be redirected to a successful QSL page.

 Control: Button

Validation: N/A

9. Reset

Description: The control used to reset the input values on the controls.

 Control: Button

Validation: N/A

 

Data Analysis:

1. Name

Description: Name of the person who is requesting the beacon data fields for analysis

Control: Textbox control

Validation: Required

2. Email

Description: Email Id of the person who is requesting the beacon data fields.

Control: Textbox control

Validation: Required and has to conform to a email regular expression.

3. Requester Type

Description: Type of user who is requesting the data.

Control: Dropdown list

Validation: Required and has to be one of the four valid values from the dropdown list

4. Requester Location

Description: The location from where the user is requesting  the beacon packets fields.

Control: Dropdown list

Validation: Required and has to be one the country name from the dropdown list.

5. Satellite

Description: The Sateliite from which the data is requsted.

Control: Dropdown list

Validation: Required and has to be one the listed Satellites from the dropdown list.

6. Requested Fields

Description: The beacon packets fields which can be quried for data analysis.

 Control: Dropdown list

Validation: Required and can be a multiselect list

7. From Date

Description: The starting date from which the beacon data fields needs to be retrieved from the database.

 Control: Textbox

Validation: Required and has to be of the data format MM/DD/YYYY

8. To Date

Description: The end date to which the beacon data fields needs to be retrieved from the database.

 Control: Textbox

Validation: Required and has to be of the data format MM/DD/YYYY

10. Submit

Description: The control used to submit the data back to the server for processing.

 Control: Button

Validation: N/A

11. Reset

Description: The control used to reset the input values on the controls.

 Control: Button

Validation: N/A

 

Web Services:

1. Web services List

Description: Control used to display the list of methods available as web services.

Control: Multiline text box.

Validation: N/A . It is a read only control.

2. WSDL

Description: The control used to invoke the WSDL (Web Services Description Language) page associated with the web services.

 Control: Button

Validation: N/A

 

Feedback:

1. Name  

Description: Name of the person who is submitting the feedback

Control: Textbox control

Validation: Required

2. Email

Description: Email Id of the person who is submitting the feedback.

Control: Textbox control

Validation: Required and has to conform to a email regular expression.

3. Feedback Entry

Description: Place holder to enter the feedback.

Control: Multiline text box.

Validation: Required

4. Submit

Description: The control used to submit the feedback data back to the server for processing. Upon successful save of the feedback the user will be notified about the status at the bottom of the form in the Status Result label control.

 Control: Button

Validation: N/A

5. Reset

Description: The control used to reset the input values on the controls.

 Control: Button

Validation: N/A

6. Status Result

Description: The control used to display the status of the save or any errors.

 Control: Label

Validation: N/A and visible only upon and successful save or error display and it is not visible during the normal page load.

 

QSL Form:

Beacon Web Services

 

Beacon Data Format

Beacon Data Services

Deployment

Implementation Procedure:

I. Un-installation previous version

If previous Beacon Processing System web application and/or web services exist then perform the following section, else proceed to the next section.

  1. Un-configure Beacon Processing System with Application Pool:
    1. Open the IIS Administrator Console
    2. Locate BeaconProcessingSystem right click, select Properties and update the AppPool to use the DefaultAppPool and click OK.
  1. Un-configure Beacon Web Services with Application Pool:
    1. Open the IIS Administrator Console
    2. Locate BeaconWebServices right click, select Properties and update the AppPool to use the DefaultAppPool and click OK.
  1. Remove applications from the server:
    1. Go to Control Panel and select Add and Remove Programs.
    2. Locate BeaconWebServices application then click remove.
    3. Locate BeaconProcessingSystem application then click remove.

II. Installation           

  1. Un-zip the InstallBeacon_V1.zip file to the local server c:\temp directory.
  2. Install BeaconProcessingSystem Web application:
    1. Go to c:\temp\BuildXXXXXX/BeaconWebApp and run CRESTClientSetup.msi to install BeaconProcessingSystem web application:
    2. Accept the defaults from the installation wizard.
    3. Following all the steps to the end to complete installation.
  1. Install BeaconWebServices:
    1. Go to c:\temp\ BuildXXXXXX/BeaconWebservices and run BeaconWebServicesSetup.msi to install BeaconWebServices application.
    2. Accept the defaults from the installation wizard.
    3. Following all the steps to the end to complete installation.

III. Back out Procedure

If decision is made to back out PEMM Member Enrollment Service then perform the actions from section I.

Web Server Configuration

I. Beacon Web Application and WebServices Config

1.      Open IIS Manager, and expand Web Sites Default Web Site.

2.      In the AppPool node, verify existence of, or create the CrestWebPool Accept the default settings for the application pool.

3.      In the AppPool node, verify existence of, or create the CrestAppPool Accept the default settings for the application pool.

4.      Locate BeaconProcessingSystem under Default Web Site, then right click to open property:

a.       On the Directory Tab, select the CrestWebPool as the application Pool.

b.      On the Directory Security Tab, check Enable Anonymous Access.

c.       On the ASP.NET tab, select version 2.0.

5.      Locate BeaconWebServices under Default Web Site, then right click to open property:

a.       On the Directory Tab, select the CrestAppPool as the application Pool.

b.      On the Directory Security Tab, check Enable Anonymous Access.

c.       On the ASP.NET tab, select version 2.0.

6.      Update BeaconWebServices url at the end of the Web.config file of BeaconProcessingSystem. Web.config file is available at the following location: C:\Inetpub\wwwroot\BeaconProcessingSystem

 

7.      Update the MYSQL database server IP address, user name and password in the Web.config file of the BeaconWebServices. Web.config file is available at the following locations:

C:\Inetpub\wwwroot\BeaconWebServices

MySQL Configuration

MySQL version 5.1.24 was used, and the MySQL connector was version Reporting Query

 

To select beacon data submission count by Satellite

 

SELECT packetheader.PHWebSite as Satellite, COUNT(*) AS Counts

FROM packetheader

GROUP BY packetheader.PHWebSite;

 

To get the counts of searches done so for on any dates

 

SELECT date(searchstats.SSCreateDateTime) as Search_Date, COUNT(*) AS Counts

FROM searchstats

GROUP BY date(searchstats.SSCreateDateTime);

 

To get the minimum & maximum date for FROM & TO date search pattern

 

SELECT searchstats.SSName as Requester_Name, searchstats.SSEmail as Requester_Email, searchstats.SSRequesterType as Requester_Type, searchstats.SSRequesterLocation as Requester_Location, searchstats.SSatelliteID as SatelliteID, date(searchstats.SSFromDate) AS Min_From_Date, '' as Max_From_Date, '' as Min_To_Date, '' as Max_To_Date

FROM searchstats

WHERE date(searchstats.SSFromDate)   = (SELECT min(date(searchstats.SSFromDate)) from searchstats )

UNION

SELECT searchstats.SSName as Requester_Name, searchstats.SSEmail as Requester_Email, searchstats.SSRequesterType as Requester_Type, searchstats.SSRequesterLocation as Requester_Location, searchstats.SSatelliteID as SatelliteID, '' as Min_From_Date, date(searchstats.SSFromDate) AS Max_From_Date, '' as Min_To_Date, '' as Max_To_Date

FROM searchstats

WHERE date(searchstats.SSFromDate)   = (SELECT max(date(searchstats.SSFromDate)) from searchstats )

UNION

SELECT searchstats.SSName as Requester_Name, searchstats.SSEmail as Requester_Email, searchstats.SSRequesterType as Requester_Type, searchstats.SSRequesterLocation as Requester_Location, searchstats.SSatelliteID as SatelliteID, '' as Min_From_Date, '' as Max_From_Date, date(searchstats.SSToDate) AS Min_To_Date, '' as Max_To_Date

FROM searchstats

WHERE date(searchstats.SSToDate)   = (SELECT min(date(searchstats.SSToDate)) from searchstats )

UNION

SELECT searchstats.SSName as Requester_Name, searchstats.SSEmail as Requester_Email, searchstats.SSRequesterType as Requester_Type, searchstats.SSRequesterLocation as Requester_Location, searchstats.SSatelliteID as SatelliteID, '' as Min_From_Date, '' as Max_From_Date, '' as Min_To_Date, date(searchstats.SSToDate) AS Max_To_Date

FROM searchstats

WHERE date(searchstats.SSToDate)   = (SELECT max(date(searchstats.SSToDate)) from searchstats );

 

 

To get the search requester Email counts

 

SELECT searchstats.SSEmail AS Requester_Email, COUNT(*) AS Counts

FROM searchstats

GROUP BY searchstats.SSEmail;

 

 

To get the search requester Location counts

 

SELECT codes.CodeDescription as Location_Name, COUNT(*) AS Counts

FROM searchstats , codes

WHERE searchstats.SSRequesterLocation =  codes.CodeID

AND codes.CodeType =  'Country'

GROUP BY searchstats.SSRequesterLocation;

 

 

To get the search requester Name & Email counts

 

SELECT searchstats.SSName AS Requester_Name, searchstats.SSEmail AS Requester_Email, COUNT(*) AS Counts

FROM searchstats

GROUP BY searchstats.SSName, searchstats.SSEmail;

 

 

To get the search requester Type counts

 

SELECT searchstats.SSRequesterType AS Requester_Type, COUNT(*) AS Counts

FROM searchstats

GROUP BY searchstats.SSRequesterType;

 

 

To get the search requester Type , Location & Date of Search counts

 

SELECT searchstats.SSRequesterType AS Requester_Type, codes.CodeDescription AS Location_Name, searchstats.SSatelliteID as SatelliteID, date(searchstats.SSCreateDateTime) as Date_of_search, COUNT(*) AS Counts           

FROM searchstats , codes

WHERE searchstats.SSRequesterLocation =  codes.CodeID

AND codes.CodeType =  'Country'

GROUP BY searchstats.SSRequesterType, searchstats.SSatelliteID, date(searchstats.SSCreateDateTime), codes.CodeDescription

ORDER BY Date_of_search, searchstats.SSRequesterType, codes.CodeDescription;

 

 

To get the search requester Type & Location  counts

 

SELECT

searchstats.SSRequesterType AS Requester_Type,

codes.CodeDescription AS Location_Name,

searchstats.SSatelliteID as SatelliteID,

COUNT(*) AS Counts FROM searchstats , codes

WHERE searchstats.SSRequesterLocation =  codes.CodeID

AND codes.CodeType =  'Country'

GROUP BY searchstats.SSRequesterType, searchstats.SSatelliteID, searchstats.SSRequesterLocation;

 

 

To get the SessionID counts of the people who have logged into the website

 

SELECT SsSessionID AS SessionID, COUNT(*) AS Counts FROM searchstats GROUP BY SsSessionID;

 

 

To get the Count of all the search that has been done on the database

 

SELECT COUNT(*) AS Total_Number_Of_Search_Counts FROM searchstats;