CST 498 Project Architecture Fall 15 Draft 4 HH

15
North Carolina Agricultural and Technical State University Conceptual Teaching and Information Architectures for CST 498: Fall 2015 Howard V. Hardiman, Instructor Computer Systems Technology Department School of Technology

Transcript of CST 498 Project Architecture Fall 15 Draft 4 HH

Page 1: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

Conceptual Teaching and Information Architectures for

CST 498: Fall 2015Howard V. Hardiman, Instructor

Computer Systems Technology DepartmentSchool of Technology

Page 2: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (IT - 101)

2

Client ServerNetwork

Page 3: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (Linux in CST 498)

3

Our Basic Server Specs:

Debian Linux 8

• How much disk?• How much RAM?• Came pre installed

with:• This • That • The Third

Page 4: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (IBM System Z + z/VM Enabled Linux Virtualization)

4

IBM z9 Mainframe (Fort IRC NCAT)LPAR

z/VM 5.4z/VM Guest A

Debian Server VM: Group 1

z/VM Guest BDebian Server VM: Group

2

z/VM Guest N Group N

=Z

Linux Server

Linux on Z

Page 5: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (High Level Project Description for Whole Class – Data Flow)

5

Debian Linux Guest OS

MySQL DB ServerREST API

PHP Web Apps

Hardware/Sensing/Robotics Vehicle

(IoT)

Mobile Application Clients

Web – Browser Table View

Client

Health Station Client (IoT)

Direct DB Connections/Queries

HTML/HTTP

JSON/HTTP

www/NCAT Domain

Plain - Via URL

Page 6: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

Hardware/Sensing/Robotics Vehicle + REST Client

• Raspberry Pi Enabled ‘Tank Style’ Robot• Tank Hack Robot has

GPS and Temperature Sensor

• Client code written in Python to control vehicle using Raspberry Pi GPIO, read sensor values, and initiate http request for data posting

• Students Implemented various cool control capabilities

• Python requests module used for HTTP Request functionality for data creation on remote VM DB

System Architecture Description (Project Team 1 – Temperature/GPS sensing Vehicle- IoT)

6

Page 7: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

Mobile Application REST Clients

• Phone Gap Mobile Application • Application area is

building a curriculum viewer that consumes data from a DB with curriculum guides

• Written in HTML, CSS, JavaScript, jQuery, jQuery Mobile, etc.

• MIT AppInventor Mobile App• Similar scope from

above but using AppInventor

• Great intro to creating a data consuming Android App that is a REST Client to High School or Collegiate laymen

System Architecture Description (Project Team 2 – PhoneGap Android Application)

7

Page 8: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

Health Station REST Client

• Raspberry Pi Enabled Health Sensor Station• Uses a cool

Arduino board on Raspberry Pi that includes pulse, BP, motion, etc. sensors

• Sensor code written in C

• Python Tkinter application built for GUI control by a user and data sending, receiving, and displaying

• Python requests module used for HTTP Request functionality for data upping and receiving on remote VM DB

System Architecture Description (Project Team 3 – Health Station- IoT)

8

Page 9: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture (Project Team 4 – Server Side Development )

9

Server Side Needs• Students worked server

side to create 3 MySQL DB’s, REST Interface, and HTML table output of info in DB’s • Project work here

meant to support previous three teams

• REST Interface built using Slim PHP Micro Framework

• Accepts plain text in URL for data upping

• Data returned to the client in JSON

• HTML table application is PHP for tabular output of queries

Page 10: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (High Level Project Description for Whole Class – Data Flow)

10

Debian Linux Guest OS

MySQL DB ServerREST API

PHP Web Apps

Hardware/Sensing/Robotics Vehicle

Mobile Application Clients

Web – Browser Table View

Client

Health Station Client

Direct DB Connections/Queries

HTML/HTTP

JSON/HTTP

www/NCAT Domain

Plain - Via URL

Page 11: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

Hardware/Sensing/Robotics Vehicle + REST Client

System Architecture Description (Project Team 1 – Temperature/GPS sensing Vehicle- IoT)

11

Vehicle Chassis

Motor for Left Wheels Motor for Right Wheels

L298N Digital Motor Driver

6V Battery

Raspberry Pi – Embedded Linux Computer – Powered by 5V Battery

Wifi Dongle (USB)

Bluetooth Dongle (USB)

GPS Sensor (GPIO)

Temperature Sensor (GPIO)

Python Vehicular Control Software

• Keyboard Control via Wifi• Wii Remote Control Via

Bluetooth

Python Sensing and Data Upload Software

• Read GPS + Temp. Sensor and Initiate Request

Raspberry Pi GPIO Header

Software Output Initialization

Motor Control Outputs – 3 per Motor

Motor Control Signals: Forward – Backward - Brake

User Control Commands

Sensed Values

POST RequestsTo Cloud/VM/DB

Page 12: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (REST functionality for Hardware IoT Team)

12

Debian Linux Virtual Machine

MySQL DB Server (picar)

REST API

1. Process URL/HTT

P request

2. Perform insert query based on

function name and input3.

Return success message

Hardware/Sensing/Robotics Vehicle Applications

Position and Temp.

+ “/addtemp” + ‘/‘+ :vehID + ‘/’ + :tempvalue (POST)

http://restmaster.ncat.edu/slimapi/picar

+“/addposs” + ‘/‘+ :vehID + ‘/’ + :lat+ ‘/’ + :long (POST)

Page 13: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (REST functionality for Mobile Team)

13

Debian Linux Virtual Machine

MySQL DB Server

(curricula)

REST API1.

Process URL/HTT

P request

2. Perform select query based on

function name and

params3.

Return results in JSON

to Client Code

Mobile Application Clients Curriculum

Guides and Electives

http://restmaster.ncat.edu/slimapi/mobile/cguide

+“/getGuides” (GET)

+“/getHFA” (GET)+“/getSBS” (GET)+“/getSR” (GET)+“/getTech” (GET)

+“/getGuide” + ‘/‘+ :short_name + ‘/’ + :year (GET)

Page 14: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (Project Team 3 – Health Station- IoT)

14

https://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric-sensor-platform-arduino-raspberry-pi-medical

Page 15: CST 498 Project Architecture Fall 15 Draft 4 HH

North Carolina Agricultural and Technical State University

www.ncat.edu

System Architecture Description (REST functionality for Health Station IoT Team )

15

Debian Linux Virtual Machine

MySQL DB Server (health)

REST API1.

Process URL/HTT

P request

2. Perform query based on

function

name/req

type, and input

3. Return results in JSON

to Client Code

Health Station Client

User Encounters

Blood Pressure

http://restmaster.ncat.edu/slimapi/health

+“/getUser” (GET)+“/getBPs” (GET) +“/getPOs” (GET)

Pulse/Oxygen

+“/addUser” + ‘/’+ :fname + ‘/’ + :lname (POST) (User ID Returned)+“/addBP” + ‘/’ + :userID + ‘/‘+ :pulse + ‘/’ + :dia + ‘/’ + :sys (POST) +“/addPO” + ‘/’ + :userID + ‘/‘+ :bpm + ‘/’ + :spo (POST)