Engineering project report writing
School of Science and Technology
MARINE VESSEL MONITORING USING INMARSAT FLEET BROADBAND SATELLITE SERVICES
ABSTRACT
This project, named “Marine Vessel Monitoring Using Inmarsat Fleet Broadband Satellite Services” is a Vessel Monitoring System for vessels of all sizes and functions. The project consists of hardware which is able to send Vessel location and fuel quantity. It also consists of a software platform to provide integration into real –time mapping, inventory, asset status and admin processes.
The hardware involves a Fleet Broadband (FB) which transmits location data to an Inmarsat server through Transmission Control Protocol (TCP). The software platform consists of PHP scripts and configuration of MySQL database which are stored in a web server hosted by Amazon Elastic Compute Cloud (EC2) services.
This report reviews the development of the Vessel Management System, its feasibility and presents experiences from implementation of an application based on EC2.
ACKNOWLEDGEMENTS
TABLE OF CONTENTS
Page
ABSTRACT i
ACKNOWLEDGEMENT ii
LISTS OF FIGURES iii
LIST OF TABLES iv
LIST OF SYMBOLS v
CHAPTER ONE
INTRODUCTION 1
1.1 Background and Motivation
1.2 Objectives
1.3 Scope
1.4 Layout of the Project report
CHAPTER TWO
REVIEW OF THEORY AND PREVIOUS WORK 6
2.1
2.2
CHAPTER XX
SUMMARY, CONCLUSIONS AND FUTURE WORK xx
CHAPTER XXX
REFLECTION xxx
REFERENCES
APPENDIX A
APPENDIX B
1. INTRODUCTION
1.1 Overview of Background
In the current scenario, most vessel monitoring service provides deploy and make use of Global Positioning System (GPS) based tracking units to locate their vessels on the sea. Such system design is widely used by many service providers across the country and offers a web interface on their websites for tracking. However, there are still limitations to GPS. GPS provides only latitude and longitude readings and accuracy varies at times. Most receiving devices are using analogue processing methods which are usually unlikely to provide real-time data. Most service providers use customized server to host the system link between GPS transmitter (device) and GPS receiver (end user). These customized servers require more time and money for maintenance and in turn additional costs are added to the end users.
Most service providers are only using GPS to locate the vessels’ location. Additional data like fuel level in the vessels cannot be monitored. Most vessel owners often regard fuel as an expensive resource. There are many reports that fuel level on board ‘drain’ up very fast. This is caused by theft by sailor on board or even possibility in pirates attack.
1.2 Project Objective
Inmarsat is currently the world largest mobile satellite service provider for marine vessels communication. Their latest satellite network service Fleet Broadband allows IP connection onboard the ships. In recent years, FB is being used for Machine to Machine (M2M) applications such as monitoring of engine status, fuel level, GPS locations and etc.
The objective of this project is to develop a platform whereby marine vessels with Inmarsat FB satellite terminals are able to send its location and sensor data through Global Positioning System (GPS). This platform will act as a middle-ware between sensors, GPS and a server that is located in an onshore facility. GPS and sensor data will be consolidated and then be transmitted to an onshore server every one minute. Within the onshore server, a software will be use to decode the data. After decoding, the data will be transformed into a format which can be readable by web portal. Finally, all data received from FB will be displayed onto an Internet Web Portal screen in the client’s computer.
1.3 Project Requirement
The project was divided into four parts
i. Identify and understand Satellite & Inmarsat FB Technology
ii. Identify and understand different types of network transmission protocols.
iii. Identify the type of web programming software/coding to be used.
iv. Web resources development
The aforesaid goals had to be achieved and documented in a report including review of the hardware used, future prospects and implementation of application software.
1.3.1 Resources
This project focuses on web application development and hence the investigating part consists of web browser and web server reviews and evaluation. Therefore much of the resources have been online researches and example available. Notes have also been taken from other web developers and programmers which are available in Google Search.
Hardware for this project was only available from Inmarsat vendors and the selling price of this device exceeded the project funds available. Inmarsat offer the wide range of mobile voice and data solutions to meet the needs of all types and size of vessel.
1.3.2 Satellite Technology
A satellite is a moon, planet or machine that orbits a planet or star. For example, Earth is a satellite because it orbits the sun. Likewise, the moon is a satellite because it orbits Earth. Usually, the word "satellite" refers to a machine that is launched into space and moves around Earth or another body in space. Earth and the moon are examples of natural satellites. Thousands of artificial, or man-made, satellites orbit Earth. Some take pictures of the planet that help meteorologists predict weather and track hurricanes. Some take pictures of other planets, the sun, black holes, dark matter or faraway galaxies. These pictures help scientists better understand the solar system and universe.
Still other satellites are used mainly for communications, such as beaming TV signals and phone calls around the world. A group of more than 20 satellites make up the Global Positioning System, or GPS. If you have a GPS receiver, these satellites can help figure out your exact location. Inmarsat is the leader in global mobile satellite communications. Inmarsat’s communication services are accessed using variety of devices, from hand-portable satellite phones and remote site fixed installations, to vessel, vehicular and airborne mobile terminals. Thousands of vessels rely on their service availability and coverage for operational communications and safety services.
1.3.3 Selection of Hardware Devices
Fleet Broadband (FB) is a maritime global satellite internet, telephony, SMS texting and ISDN network for ocean going vessels using portable domed terminal antennas. These terminal antennas range in size from 291mm x 275mm (The FB150) to the largest 605mm x 630mm (FB500) system, which is capable of 432 kbit/s speeds. These antennas, and corresponding indoor controllers, are used to connect phones and laptop computers from sailing vessels, on any ocean, with the rest of the world. All FB antennas require line-of-sight to one of three geosynchronous orbit satellites, so the terminal can be used anywhere, even on land.
The FB network was developed by Inmarsat and is composed of three geosynchronous orbiting satellites called I-4 that allow contiguous global coverage, except for the poles. FB systems installed on vessels may travel from ocean to ocean without human interaction. If there is line-of sight to one of the three I-4 satellites, then connectivity can be achieved, even in rough rolling seas. Since the FB network uses the L band, rain fade is much less of an issue than the larger VSAT Ku band or C Band systems.The FB service was modeled after terrestrial Internet services where IP based traffic Internet Protocol dominated over ISDN and other earlier communication protocols. Many corporations and IT departments are standardizing around IP traffic for data, and voice and text communication, so it is assumed Inmarsat is filling that long term communications requirement.
There are three terminal antenna types available. The small FB150 antenna (291mm x 275mm) capable of 150 kbit/s, to the mid-sized FB250 antenna (329mm x 276mm) capable of 284 kbit/s, to the largest and fastest FB500 antenna (605 x 630mm) capable of up to 432 kbit/s. Table 1.3.3 shows the image and specification of FB250.
|
|
· Streaming IP (Guaranteed bandwidth for data sessions or applications requiring a specific bandwidth – 32, 64 or 128 kbps |
|
|
Frequency Band: · Rx 1525.0 – 1559.0 MHz; Tx 1626.5 – 1660.5 MHz · Ch. Width 10.5 -189 kHz, Rx / 21 – 189 kHz, Tx |
|
|
Global Services: · Voice 4 kbps AMBE+2 · Standard IP 150/150 kbps · SMS Up to 160 characters |
Table 1.3.3 Sailor FB250
1.3.4 Selection of Server
In this project, a server is required for the exchange of data between FB and web portal. Server is a system that responds to requests across a network to provide, or help to provide, a network service. Servers can be run on a dedicated computer, which is also often referred to as "the server", but many networked computers are capable of hosting servers. In many cases, a computer can provide several services and have several servers running.
Servers operate within a client-server architecture. Servers are computer programs running to serve the requests of other programs, the clients. Thus, the server performs some tasks on behalf of clients. The clients typically connect to the server through the network but may run on the same computer. In the context of Internet Protocol (IP) networking, a server is a program that operates as a socket listener.
One of the criteria of this project is to reduce cost incurred as compared to other vessel monitoring service providers. As such, Amazon Elastic Compute Cloud (EC2) was introduced. EC2 is a central part of Amazon.com's cloud computing platform, Amazon Web Services (AWS). EC2 allows users to rent virtual computers on which to run their own computer applications. EC2 allows scalable deployment of applications by providing a Web service through which a user can boot an Amazon Machine Image to create a virtual machine, which Amazon calls an "instance", containing any software desired. A user can create, launch, and terminate server instances as needed, paying by the hour for active servers, hence the term "elastic". EC2 provides users with control over the geographical location of instances that allows for latency optimization and high levels of redundancy.
1.3.5 Selection of Programming Language
As mentioned in the previous section, server will be hosted in EC2 platform. Most of the free EC2 platforms are Linux base. One of the most economical servers recommended by EC2 is the LAMP service. The acronym LAMP refers to first letters of the four components of a solution stack, composed entirely of free and open-source software, suitable for building high-availability heavy-duty dynamic web sites, and capable of serving tens of thousands of requests simultaneously.
The meaning of the LAMP acronym depends on which specific components are used as part of the actual bundle:
· Linux, the operating system (i.e. not just the Linux kernel, but also glibc and some other essential components of an operating system)
· Apache HTTP Server, the web server
· MySQL, MariaDB or MongoDB, the database management system
· PHP, Perl, or Python, the scripting languages (respectively programming languages) used for dynamic web pages and web development.
1.4 Terms of Reference
1.4.1 Project Design and Development
The most essential part of the project is the software implementation and correct server and software chosen to meet the requirement. My SQL and PHP programming languages are created to develop the vessel monitoring system. From conception, this project requires a significant amount of planning and coordination so as to meet the planned schedule of submitting the final report on time. The main focus will be on the receiving of vessels’ data and display them accurately onto Google map, which is part of the web portal of this project. Warning features like low fuel level will be included to the project. Majority of the time will be spent on researching, understanding and programming EC2 services. Other than that, most of the time will be spent on designing, developing and troubleshooting of the web portal.
1.4.2 Project Testing and Evaluation
Debugging will be done at any point of time when each component of the software is ready. In this case, errors and major issues can be rectified instantly. Upon completion of the software, testing and evaluation will be conducted. Testing would be done from end users viewpoint in order to gain better understanding of the exact requirement to this project. This can help enhance the project functionality.
1.4.3 Results and Enhancement
Delivery of the results to meet project’s objective is important. This depends on the testing results and review if there is any enhancement needed in order to fulfill the project objectives.
1.4.4 Troubleshooting and Evaluation
Troubleshooting and evaluation will be conducted to ensure that there is no error and all the objectives are delivered correctly.
1.5 Layout of Project Report
Chapter 1: - Introduction which gives a summary of the project objectives, hardware and software, application and project scope. Further detail on individual component will be explained in other chapters.
Chapter 2: - Project Management gives information on problem which would be faced during the project development stage, Therefore, earlier prevention plan plays an important part of the project.
Chapter 3: - Literature review on researches of background on FB and server technology. Concepts, principles and application used for FB and server are being covered in this chapter.
Chapter 4: - System integration of Vessel Monitoring System which plans the project process flow towards meeting the requirement of the project.
Chapter 5: - Highlight of the problems faced for system design which aided in the prevention of software implementation.
Chapter 6: - Software developments with explanation of each of the functions and flowchart for further illustration for vessel monitoring system.
Chapter 7: - Testing and evaluation methods which show the results of the functionality of vessel monitoring system.
Chapter 8: - Problems which encountered during the process of development for vessel monitoring system and solution used to fix the issues.\
Chapter 9: - Conclusion on work completed. Recommendations provided for future enhancement.
Chapter 10: - Reflection on the development of the project. Essentially, the experience and knowledge learnt from the process of project development.
2. PROJECT MANAGEMENT
2.1 Project Planning
Project planning is a very crucial part to each project. Therefore, appropriate planning is needed during the initial stage. Figure 2.1 shows the work breakdown structure is prepared for this project. It illustrates the overall scope skeleton of the project organization.
Figure 2.1 Work Breakdown Structure of Project
2.2 Project Monitoring
Gantt chart is used to monitoring and to marks the starting and finishing dates of the project. The chart summarizes all the events which will take place within the project timeframe. Work breakdown structure is clearly illustrated in the chart. The Gantt chart prepared serves as a good guide for keeping in pace with schedule to complete the project. Please refer to Appendix A for the Gantt chart for this project. As listed in the chart, majority of time and effort were allocated to troubleshoot the software for entire project. The estimated number of days allocated for completing each of the tasks of the project is shown in Appendix B.
2.3 Project Risk Management
There are four stages of risk management planning. There are as follows:
· Risk Identification - Identifying what is the cause and impact.
· Risk Quantification – Marking out what is the probability that the risk will happen and what is the impact to it.
· Risk Response – Finding ways to avoid, reducing the impact and accepting the risk. There is no point to ponder over it.
· Risk Monitoring and Control – Regularly checking status on the outstanding action to the risk and identifying new risk which might occur.
2.4 Cost Management
In order to keep the project costing as low as possible, all software and hardware required were sourced with care. In software area, there is no sophisticated software used. Basic notepad and free ware were downloaded from website. As for hardware, FB is way too expensive and exceeded the fund available for this project. In order to test the project with a FB, project supervisor Mr Kevin assisted to source for loan set from vendor. In all, zero dollars was spent.
3. LITERATURE REVIEW
3.1 Introduction and Overview of Satellite
A satellite is any object that moves in a curved path around a planet. The moon is Earth's original, natural satellite, and there are many man-made (artificial) satellites, usually closer to Earth. The path a satellite follows is an orbit, which sometimes takes the shape of a circle.
To understand why satellites move this way, we must revisit our friend Newton. Newton proposed that a force -- gravity -- exists between any two objects in the universe. If it weren't for this force, a satellite in motion near a planet would continue in motion at the same speed and in the same direction -- a straight line. This straight-line inertial path of a satellite, however, is balanced by a strong gravitational attraction directed toward the center of the planet.
Sometimes, a satellite's orbit looks like an ellipse, a squashed circle that moves around two points known as foci. The same basic laws of motion apply, except that the planet is located at one of the foci. As a result, the net force applied to the satellite isn't uniform all the way around the orbit, and the speed of the satellite changes constantly. It moves fastest when it's closest to the planet -- a point known as perigee -- and slowest when it's farthest from the planet -- a point known as apogee.
Satellites come in all shapes and sizes and play a variety of roles.
· Weather satellites help meteorologists predict the weather or see what's happening at the moment. The Geostationary Operational Environmental Satellite (GOES) is a good example. These satellites generally contain cameras that can return photos of Earth's weather, either from fixed geostationary positions or from polar orbits.
· Communications satellites allow telephone and data conversations to be relayed through the satellite. Typical communications satellites include Telstar and Intelsat. The most important feature of a communications satellite is the transponder -- a radio that receives a conversation at one frequency and then amplifies it and retransmits it back to Earth on another frequency. A satellite normally contains hundreds or thousands of transponders. Communications satellites are usually geosynchronous (more on that later).
· Broadcast satellites broadcast television signals from one point to another (similar to communications satellites).
· Scientific satellites, like the Hubble Space Telescope , perform all sorts of scientific missions. They look at everything from sunspots to gamma rays .
· Navigational satellites help ships and planes navigate. The most famous are the GPS NAVSTAR satellites .
· Rescue satellites respond to radio distress signals (read this page for details).
· Earth observation satellites check the planet for changes in everything from temperature to forestation to ice-sheet coverage. The most famous are the Landsat series.
· Military satellites are up there, but much of the actual application information remains secret. Applications may include relaying encrypted communication, nuclear monitoring, observing enemy movements, early warning of missile launches, eavesdropping on terrestrial radio links , radar imaging and photography (using what are essentially large telescopes that take pictures of militarily interesting areas).
3.2 Introduction and Overview of Fleet Broadband (FB)
Fleet Broadband (FB) is a maritime global satellite internet, telephony, SMS texting and ISDN network for ocean going vessels using portable domed terminal antennas. These terminal antennas range in size from 291mm x 275mm (The FB150) to the largest 605mm x 630mm (FB500) system, which is capable of 432 kbit/s speeds. These antennas, and corresponding indoor controllers, are used to connect phones and laptop computers from sailing vessels, on any ocean, with the rest of the world. All FB antennas require line-of-sight to one of three geosynchronous orbit satellites, so the terminal can be used anywhere, even on land.
The FB network was developed by Inmarsat and is composed of three geosynchronous orbiting satellites called I-4 that allow contiguous global coverage, except for the poles. FB systems installed on vessels may travel from ocean to ocean without human interaction. If there is line-of sight to one of the three I-4 satellites, then connectivity can be achieved, even in rough rolling seas. Since the FB network uses the L band, rain fade is much less of an issue than the larger VSAT Ku band or C Band systems.The FB service was modeled after terrestrial Internet services where IP based traffic Internet Protocol dominated over ISDN and other earlier communication protocols. Many corporations and IT departments are standardizing around IP traffic for data, and voice and text communication, so it is assumed Inmarsat is filling that long term communications requirement.
There are three terminal antenna types available. The small FB150 antenna (291mm x 275mm) capable of 150 kbit/s, to the mid-sized FB250 antenna (329mm x 276mm) capable of 284 kbit/s, to the largest and fastest FB500 antenna (605 x 630mm) capable of up to 432 kbit/s. Table 1.3.3 shows the image and specification of FB250.
|
|
· Streaming IP (Guaranteed bandwidth for data sessions or applications requiring a specific bandwidth – 32, 64 or 128 kbps |
|
|
Frequency Band: · Rx 1525.0 – 1559.0 MHz; Tx 1626.5 – 1660.5 MHz · Ch. Width 10.5 -189 kHz, Rx / 21 – 189 kHz, Tx |
|
|
Global Services: · Voice 4 kbps AMBE+2 · Standard IP 150/150 kbps · SMS Up to 160 characters |
Table 1.3.3 Sailor FB250
3.3 Introduction and Overview of TCP/IP
TCP/IP (Transmission Control Protocol/Internet Protocol) is the basic communication language or protocol of the Internet. It can also be used as a communications protocol in a private network (either an intranet or an extranet ). When you are set up with direct access to the Internet, your computer is provided with a copy of the TCP/IP program just as every other computer that you may send messages to or get information from also has a copy of TCP/IP.
TCP/IP is a two-layer program. The higher layer , Transmission Control Protocol, manages the assembling of a message or file into smaller packet s that are transmitted over the Internet and received by a TCP layer that reassembles the packets into the original message. The lower layer, Internet Protocol , handles the address part of each packet so that it gets to the right destination. Each gateway computer on the network checks this address to see where to forward the message. Even though some packets from the same message are routed differently than others, they'll be reassembled at the destination.
TCP/IP uses the client/server model of communication in which a computer user (a client) requests and is provided a service (such as sending a Web page) by another computer (a server) in the network. TCP/IP communication is primarily point-to-point, meaning each communication is from one point (or host computer) in the network to another point or host computer. TCP/IP and the higher-level applications that use it are collectively said to be "stateless" because each client request is considered a new request unrelated to any previous one (unlike ordinary phone conversations that require a dedicated connection for the call duration). Being stateless frees network paths so that everyone can use them continuously. (Note that the TCP layer itself is not stateless as far as any one message is concerned. Its connection remains in place until all packets in a message have been received.)
Many Internet users are familiar with the even higher layer application protocols that use TCP/IP to get to the Internet. These include the World Wide Web's Hypertext Transfer Protocol ( HTTP ), the File Transfer Protocol (FTP), Telnet ( Telnet ) which lets you logon to remote computers, and the Simple Mail Transfer Protocol ( SMTP ). These and other protocols are often packaged together with TCP/IP as a "suite."
Personal computer users with an analog phone modem connection to the Internet usually get to the Internet through the Serial Line Internet Protocol (SLIP) or the Point-to-Point Protocol ( PPP ). These protocols encapsulate the IP packets so that they can be sent over the dial-up phone connection to an access provider's modem.
Protocols related to TCP/IP include the User Datagram Protocol ( UDP ), which is used instead of TCP for special purposes. Other protocols are used by network host computers for exchanging router information. These include the Internet Control Message Protocol ( ICMP ), the Interior Gateway Protocol ( IGP ), the Exterior Gateway Protocol (EGP), and the Border Gateway Protocol ( BGP ).
3.4 Introduction and Overview of Socket Server
An Internet socket is characterized by a unique combination of the following:
· Local socket address: Local IP address and port number
· Remote socket address: Only for established TCP sockets. As discussed in the client-server section below, this is necessary since a TCP server may serve several clients concurrently. The server creates one socket for each client, and these sockets share the same local socket address from the point of view of the TCP server.
· Protocol : A transport protocol (e.g., TCP , UDP , raw IP , or others). TCP port 53 and UDP port 53 are consequently different, distinct sockets.
Within the operating system and the application that created a socket, a socket is referred to by a unique integer value called a socket descriptor. The operating system forwards the payload of incoming IP packets to the corresponding application by extracting the socket address information from the IP and transport protocol headers and stripping the headers from the application data.
In IETF Request for Comments , Internet Standards , in many textbooks, as well as in this article, the term socket refers to an entity that is uniquely identified by the socket number. In other textbooks, [1] the socket term refers to a local socket address, i.e. a "combination of an IP address and a port number". In the original definition of socket given in RFC 147 , as it was related to the ARPA network in 1971, "the socket is specified as a 32 bit number with even sockets identifying receiving sockets and odd sockets identifying sending sockets." Today, however, socket communications are bidirectional.
On Unix-like and Microsoft Windows based operating systems the netstat command line tool may be used to list all currently established sockets and related information.
Computer processes that provide application services are referred to as servers , and create sockets on start up that are in listening state. These sockets are waiting for initiatives from client programs.
A TCP server may serve several clients concurrently, by creating a child process for each client and establishing a TCP connection between the child process and the client. Unique dedicated sockets are created for each connection. These are in established state, when a socket-to-socket virtual connection or virtual circuit (VC), also known as a TCP session , is established with the remote socket, providing a duplex byte stream .
A server may create several concurrently established TCP sockets with the same local port number and local IP address, each mapped to its own server-child process, serving its own client process. They are treated as different sockets by the operating system, since the remote socket address (the client IP address and/or port number) are different; i.e. since they have different socket pair tuples (see below).
For further details on TCP sockets, including other states of TCP sockets, see Transmission Control Protocol .
A UDP socket cannot be in an established state, since UDP is connectionless . Therefore, netstat does not show the state of a UDP socket. A UDP server does not create new child processes for every concurrently served client, but the same process handles incoming data packets from all remote clients sequentially through the same socket. It implies that UDP sockets are not identified by the remote address, but only by the local address, although each message has an associated remote address.
Communicating local and remote sockets are called socket pairs. Each socket pair is described by a unique 4-tuple consisting of source and destination IP addresses and port numbers, i.e. of local and remote socket addresses. [3] HYPERLINK "http://en.wikipedia.org/wiki/Network_socket" \l "cite_note-4" [4] As seen in the discussion above, in the TCP case, each unique socket pair 4-tuple is assigned a socket number, while in the UDP case, each unique local socket address is assigned a socket number.
The socket is primarily a concept used in the Transport Layer of the Internet model . Networking equipment such as routers and switches do not require implementations of the Transport Layer, as they operate on the Link Layer level (switches) or at the Internet Layer (routers). However, stateful network firewalls , network address translators , and proxy servers keep track of active socket pairs. Also in fair queuing , layer 3 switching and quality of service (QoS) support in routers, packet flows may be identified by extracting information about the socket pairs. Raw sockets are typically available in network equipment and are used for routing protocols such as IGRP and OSPF , and in Internet Control Message Protocol (ICMP).
3.5 Introduction and Overview of Amazon Elastic Compute Cloud (EC2)
Amazon announced a limited public beta test of EC2 on August 25, 2006, [3] offering access on a first come first served basis. Amazon added two new instance types (Large and Extra-Large) on October 16, 2007. [4] On May 29, 2008, two more types were added, High-CPU Medium and High-CPU Extra Large. [5] There are twelve types of instances available. [6]
Amazon added three new features on March 27, 2008: [7] static IP addresses, availability zones, and user selectable kernels. On August 20, 2008, Amazon added Elastic Block Store (EBS) [8] This provides persistent storage, a feature that had been lacking since the service was introduced.
Amazon EC2 went into full production when it dropped the beta label on October 23, 2008. On the same day, Amazon announced the following features: [9] a service level agreement for EC2, Microsoft Windows in beta form on EC2, Microsoft SQL Server in beta form on EC2, plans for an AWS management console, and plans for load balancing, autoscaling, and cloud monitoring services. [9] These features were subsequently added on May 18, 2009. [10]
Amazon EC2 was developed mostly by a team in Cape Town, South Africa led by Chris Pinkham . [11] HYPERLINK "http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud" \l "cite_note-12" [12] HYPERLINK "http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud" \l "cite_note-13" [13] HYPERLINK "http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud" \l "cite_note-14" [14] Pinkham provided the initial architecture guidance for EC2 and then built the team and led the development of the project. Some other members of the early team were Chris Brown, Quinton Hoole and Roland Paterson-Jones.
EC2 uses Xen virtualization. [15] Each virtual machine, called an "instance", functions as a virtual private server . Amazon sizes instances based on "Elastic Compute Units". The performance of otherwise identical virtual machines may vary. [16]
As of December 2012 [update] , the following instance types were offered: [17]
· On-demand: pay by hour without commitment
· Reserved: rent instances with one-time payment receiving discounts on the hourly charge
· Spot: bid-based service (runs the jobs only if the spot price is below the bid specified by bidder—the spot price is claimed to be supply-demand based, however, research refutes this claim [18] )
Cost[edit]
Amazon CTO Werner Vogels announces price reductions at AWS Summit 2013 NYC
As of February 2013 [update] , Amazon charged about $.02/hour ($15/month) for the smallest "Micro Instance" (t1.micro) virtual machine running Linux or Windows. High CPU and memory instances for Compute Clusters cost as much as $4.60/hour. "Reserved" instances can go as low as $6.43/month for a three-year prepaid plan. [note 1] HYPERLINK "http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud" \l "cite_note-20" [19] The data transfer charge ranges from free to $0.12 per gigabyte, depending on the direction and monthly volume (inbound data transfer is free on all AWS services [20] ).
AWS' pricing came under scrutiny due to the complexity of their pricing model. [21] Guides on cost savings tips are available [22] and third party vendors, such as Cloudyn [23] and CloudCheckr [24] offer fee for service analysis to help reduce costs.
Free tier[edit]
As of December 2010 [update] Amazon offered a bundle of free resource credits to new account holders. The credits are designed to run a "micro" sized server, storage (EBS), and bandwidth for one year. Charges are applied on demand so the credit need not be used in the first month. [25]
Reserved instances[edit]
Reserved instances enable EC2 or RDS service users to reserve an instance for one or three years. There is a fee associated with reserving an instance. The corresponding per hour rate charged by Amazon to operate the instance is much less than the rate charged for on-demand instances. [26]
Reserved Instances come in three different utilization levels: Light, Medium and Heavy. Each one has a different upfront cost and a different hourly cost. This makes the break-even points different for each utilisation level and term.[ citation needed ]
Comparison Table[edit]
|
API Name |
Memory (GiB) |
Cores/Compute Units |
Instance Storage (GB) |
32bit/64bit |
I/O Performance |
EBS-Optimizable |
On-Demand Cost (Linux - per hour on US East 1) |
|
m1.small |
1.7 |
1/1 |
160 |
32/64 |
Moderate |
No |
$0.060 |
|
m1.medium |
3.75 |
1/2 |
410 |
32/64 |
Moderate |
No |
$0.120 |
|
m1.large |
7.5 |
2/4 |
850 |
64 |
Moderate |
500 Mbit/s |
$0.240 |
|
m1.xlarge |
15 |
4/8 |
1600 |
64 |
High |
1000 Mbit/s |
$0.480 |
|
m3.xlarge |
15 |
4/13 |
0 (EBS only) |
64 |
Moderate |
500 Mbit/s |
$0.500 |
|
m3.2xlarge |
30 |
8/26 |
0 (EBS only) |
64 |
High |
1000 Mbit/s |
$1.000 |
|
t1.micro |
0.6 |
1/(up to 2) |
0 (EBS only) |
32/64 |
Low |
No |
$0.020 |
|
m2.xlarge |
17.1 |
2/6.5 |
420 |
64 |
Moderate |
No |
$0.410 |
|
m2.2xlarge |
34.2 |
4/13 |
850 |
64 |
High |
500 Mbit/s |
$0.820 |
|
m2.4xlarge |
68.4 |
8/26 |
1690 |
64 |
High |
1000 Mbit/s |
$1.640 |
|
c1.medium |
1.7 |
2/5 |
350 |
32/64 |
Moderate |
No |
$0.145 |
|
c1.xlarge |
7 |
8/20 |
1690 |
64 |
High |
1000 Mbit/s |
$0.580 |
|
cc1.4xlarge |
23 |
2/33.5 (2 Intel Xeon X5570) |
1690 |
64 |
Very High (10 Gbit) |
? |
$1.300 |
|
cc2.8xlarge |
60.5 |
2/88 (2 Intel Xeon E5-2670) |
3370 |
64 |
Very High (10 Gbit) |
Not necessary |
$2.400 |
|
cr1.8xlarge |
244 |
2/88 (2 Intel Xeon E5-2670) |
240 (SSD) |
64 |
Very High (10 Gbit) |
Not necessary |
$3.500 |
|
cg1.4xlarge |
22 |
2/33.5 (2 Intel Xeon X5570) + 2 NVIDIA Tesla "Fermi" M2050 GPU |
1960 |
64 |
Very High (10 Gbit) |
Not necessary |
$2.100 |
|
hi1.4xlarge |
60.5 |
16/35 (8 cores + 8 hyperthreads) |
2*1024 (SSD) |
64 |
Very High (10 Gbit) |
Not necessary |
$3.100 |
|
hs1.8xlarge |
117 |
16/35 (8 cores + 8 hyperthreads) |
48000 (24 * 2TB drives) |
64 |
Very High (10 Gbit) |
Not necessary |
$4.600 |
3.6 Introduction and Overview of LAMP server
The acronym LAMP refers to first letters of the four components of a solution stack , composed entirely of free and open-source software , suitable for building high-availability heavy-duty dynamic web sites , and capable of serving tens of thousands of requests simultaneously.
The meaning of the LAMP acronym depends on which specific components are used as part of the actual bundle:
· L inux , the operating system (i.e. not just the Linux kernel , but also glibc and some other essential components of an operating system)
· A pache HTTP Server , the web server
· M ySQL , M ariaDB or M ongoDB , the database management system
· P HP , P erl , or P ython , the scripting languages (respectively programming languages ) used for dynamic web pages and web development .
The exact combination of the software included in a LAMP stack is prone to variation, for example Apache web server can be replaced by some other web server software . Though the original authors of these programs did not design them to work as a component of the LAMP stack, the development philosophy and tool sets are shared and were developed in close conjunction, so they work and scale very well together. The software combination has become popular because it is entirely free and open-source software , which means that each component can be adapted to the underlying hardware and customized to meet the specification as exactly as possible, without the slightest vendor lock-in . The complete software stack is also free of cost, maximizing the available budget for tailoring the hardware and software.
Due to the nature of free and open-source software and the ubiquity of its components, each component of the LAMP stack is very well tested regarding performance and security. At the same time, there is an abundance of experienced contractors to do the tailoring required for various customizations, or for complex setups. There is also constant development going on.
The components of the LAMP stack are present in the software repositories of most (if not all) Linux distributions , giving any end-user a simple way to install, set up and operate an initial LAMP stack out of the box . The web presence of a small company that does not have a high hit count and is not prone to frequent attacks, can therefore be administered by another small company, by a one man company or even by a student.
The LAMP bundle can be and often is combined with many other free and open-source software packages such as, for example:
· netsniff-ng for security testing and hardening
· Snort , an intrusion detection (IDS) and intrusion prevention system (IPS)
· RRDtool for diagrams
· Nagios , Collectd or Cacti , for monitoring.
Linux[edit]
Main articles: Linux and Linux kernel
Linux is a Unix-like and POSIX -compliant computer operating system assembled under the model of free and open source software development and distribution. The main form of distribution are Linux distributions , usually providing complete LAMP setups out of the box through their package management systems . Of the most widespread Linux distributions, as of 1 October 2013, 58.5% of web server market share is shared between Debian and Ubuntu , while RHEL , Fedora and CentOS together share 37.3%. [1]
Many options are available for customizing and securing Linux installations, for example by using SELinux , or by employing chroot environments.
Apache[edit]
Main article: Apache HTTP Server
Apache is a web server , the most popular in use. As of June 2013 [update] , Apache was estimated to serve 54.2% of all active websites and 53.3% of the top servers across all domains. [2]
Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation . Released under the Apache License , Apache is open-source software . A wide variety of features is supported, and many of them are implemented as compiled modules which extend the core functionality of Apache. These can range from server-side programming language support to authentication schemes.
MySQL, MariaDB, MongoDB[edit]
Main articles: MySQL , MariaDB , and MongoDB
MySQL is a multithreaded , multi-user , SQL database management system (DBMS) now owned by Oracle Corporation. [3] MySQL has been owned by Oracle Corporation since January 27, 2010 through the purchase of Sun Microsystems . [4] HYPERLINK "http://en.wikipedia.org/wiki/LAMP_server" \l "cite_note-5" [5] Sun had originally acquired MySQL on February 26, 2008. The MySQL development project has made its source code available under the terms of the GNU General Public License , as well as under a variety of proprietary agreements.
MariaDB is a fork of MySQL. MongoDB is a widely used open-source NoSQL database. MongoDB eschews the traditional table-based relational database structure in favor of JSON -like documents with dynamic schemas (calling the format BSON ), making the integration of data in certain types of applications easier and faster.
Other RDBM systems such as PostgreSQL (forming up the LAPP bundle) are also viable. [6]
PHP, Perl, Python[edit]
Main articles: PHP , Perl , and Python
PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language . PHP code is interpreted by a web server with a PHP processor module, which generates the resulting web page: PHP commands can be embedded directly into an HTML source document rather than calling an external file to process data. It has also evolved to include a command-line interface capability and can be used in standalone graphical applications . [7]
PHP is free software released under the PHP License , which is incompatible with the GNU General Public License (GPL) due to restrictions on the usage of the term PHP. [8]
Perl is a family of high-level , general-purpose, interpreted, dynamic programming languages . The languages in this family include Perl 5 and Perl 6 . [9] The Perl languages borrow features from other programming languages including C , shell scripting ( sh ), AWK , and sed . [10] They provide powerful text processing facilities without the arbitrary data-length limits of many contemporary Unix commandline tools , [11] facilitating easy manipulation of text files . Perl 5 gained widespread popularity in the late 1990s as a CGI scripting language, in part due to its parsing abilities. [12]
Python is a widely used general-purpose, high-level programming language. [13] Python supports multiple programming paradigms , including object-oriented , imperative and functional programming or procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library . [14] Like other dynamic languages , Python is often used as a scripting language , but is also used in a wide range of non-scripting contexts.
4. SYSETM INTEGRATION
4.1 System Overview
Figure 1.4 Proposed overall system architecture
In the figure above, the equipments and processes required for this project are labelled. Below are the details of each process involved:
1) Fuel sensors installed on the oil tankers are used to monitor the fuel level. A Remote Terminal Unit (RTU) will poll and receive fuel data from sensors. The polling of data from the sensors is completed periodically.
2) When data are collected at the RTU, it will be converted into a format readable by the Inmarsat FB terminal. The RTU will be connected to FB terminal through Ethernet cable.
3) FB terminal will transmit data collected through the stabilized antenna.
4) The stabilized antenna will transmit both location and fuel level data of vessel to dedicated Inmarsat satellite
5) Inmarsat satellite will push all data received to the land receiving station.
6) String of data received will be stored in a network server.
7) In the network server, an application software will be used to decode data.
8) After decoding, all data required will be in format readable by the web browser.
4.2 System Architecture
5. SYSTEM DESIGN CONSIDERATIONS
5.1 Configuration of server
The Vessel Server accepts socket connections from vessels, receives vessel connections and it stores the location data in vessel database.
1.1. User Website
The User Website allows vessel monitoring based on location data stored in database.
1.2. Admin Website
The Admin Website allows user and vessel management.
1.3. Vessel Database
The Vessel Database stores all vessel location data received by vessel server.
2. Vessel Server
2.1. Client Request Flow
2.2. Configuration
Configuration file: /home/ec2-user/vesselserver/appconf.php
Configuration options:
· database (host, username, password, name)
· server (host, port)
· alert email sender
· log files
2.3. Log Files
Log files are located in /home/ec2-user/vesselserver/log
1. vesselserver.log: indicates server activity
2. vesselserver-errors.log: indicates any protocol errors found
2.4. Control Scripts
1. Start server:
cd /home/ec2-user/vesselserver
php serverstart.php
2. Stop server:
cd /home/ec2-user/vesselserver
php serverstop.php
To verify if server is alive, run this command in shell (using Putty for example):
ps ax | grep php
If server is alive, there should be a process running:
/usr/bin/php ./VesselServer.php
2.5. Cron
The script for starting the server is setup on cron. This script verifies every minute is server process is started (and it starts the server process if not started).
This is a failure safe in case of machine restart or process crash.
2.6. Client Protocol
Clients connect over socket on 54.200.103.41:5000
(The server host and port are defined in configuration file).
Sockets are kept alive until client closes the connection.
A client request should have the following format:
Fuel level: 5.0%
Latitude: 1.352083
Longitude: 103.4546
Date and Time: 03 Mar 14 19:03:10
Ship ID: 886778985AB
The server will save the data in database and respond with “ok” (in case of success) or with an error description (in case of error).
2.7. Fuel email alerts
In case the fuel level of a vessel drops under 30%, the server sends an email to vessel owner (in case the vessel owner has specified an e-mail address).
2.8. Test Client
In order to check if server is running ok and recording the data correctly, you can run a test client:
cd /home/ec2-user/vesselserver/test
php client.php
This test client sends 5 locations one after the other. The server log should include this data, as well the vessel_position table from database.
3. Administrator GUI
3.1. Configuration
Configuration file: /var/www/html/admin/conf/appconf.php
Configuration options:
· database (host, username, password, name)
· log files
3.2. Log Files
Log files are located in /var/www/html/admin/log
3. logmanager.log: indicates GUI activity (if any logged)
4. logmanager-errors.log: indicates any GUI error found
3.3. Login Page
You need to specify as username: “admin” and the password.
No other user is allowed to access the admin interface.
3.4. Users Page
You can manage the user accounts, including the admin account.
You can create users, delete users or update user information (e.g. username, password and other profile information).
Users can also be disabled. Once disabled, they cannot login anymore into the user GUI.
3.5. Ships Page
You can manage the ship information.
You can create ships, delete ships or update ship information (e.g. shipID, userID as owner).
You can also visualize the latest location information received for a ship.
4. User GUI
4.1. Configuration
Configuration file: /var/www/html/conf/appconf.php
Configuration options:
· database (host, username, password, name)
· log files
4.2. Log Files
Log files are located in /var/www/html/log
5. logmanager.log: indicates GUI activity (if any logged)
6. logmanager-errors.log: indicates any GUI error found
4.3. Login Page
You need to specify the username and password of an existing and active account.
4.4. Map Page
All ships assigned to logged user account are disabled on the map.
The map is initially centered on the most recent ship location.
The ship locations are refreshed on map every 5 seconds with latest location received on server.
You can see the ship details by clicking on the ship icon from map: ship ID, latitude, longitude, fuel level, last date, IP address.
4.5. Fuel Level Page
The fuel level is displayed on a daily chart. The values displayed are percentages (0-100%) as sent to vessel server by ships. The X axis is represented by hours from 12 AM to 11 PM.
The user can select a day from calendar and a ship owned to view the fuel level chart.
The chart is refreshed automatically every 5 seconds with latest fuel level.
4.6. History Page
The history page shows the vessel location data received for ships owned.
Search filter and column sorting is allowed on data.
The page is refreshed by clicking F5.
5. Database
5.1. Tables
These are the tables used by vessel server and GUI:
1. user: stores user accounts (i.e. ship owners)
2. vessel: stores vessel information
3. vessel_position: stores latest position data received by server from vessels
4. logs: stores error logs generated either by server, admin or user GUI
5.2. User Table
A user record has following information available:
· id: unique table identifier
· username
· password (SHA1 encrypted)
· name
· phone
· dateAdded
· dateUpdated
5.3. Vessel Table
A vessel record has following information available:
· id: unique table identifier
· shipID
· userID (owner)
· shipLatitude (latest position received from ship)
· shipLongitude
· fuelLevel
· ipAddress (socket IP address connected on server)
· date
· dateAdded
· dateUpdated
5.4. Vessel Position Table
A vessel_position record has following information available:
· id: unique table identifier
· shipID
· shipLatitude (latest position received from ship)
· shipLongitude
· fuelLevel
· ipAddress (socket IP address connected on server)
· date
· dateAdded
· dateUpdated
5.5. Logs Table
A logs record has following information available:
· id: unique table identifier
· type (log type; error=2)
· system (the module/function generating the log)
· message
· dateAdded
6. Software Developments
REFERENCES
[1] Flexer, RW, Baer, RM, Luft, P & Simmons, TJ 2008, Transition planning for secondary students with disabilities, 3rd edn, Pearson, Upper Saddle River, New Jersey.
[2] Jones, BE & Jones, SR 1987, 'Powerful questions', Journal of Power Engineering, vol. 1, no. 3, pp.10-8.
[3] Popham, B 1987, 'Saving the future', Weekend Australian Magazine, 7-8 Feb., p. 10.
Vessel sends location data
Database
Server
Vessel
Server accepts connection and creates client process
Vessel connects to server over socket
Send vessel location over socket
Manage users and vessels
Get vessel location data
Place a list of the references you have cited in the text. Arrange this in alphabetical order of authors' surnames, and chronologically for each author, where more than one work by that author is cited.
Vessels
Vessel
Database
Vessel
Server
Admin
Website
User
Website
Figure: Vessel Server and UI
Server stores location data in vessel_position table
Server stores latest location data in vessel table
Server sends alert email to vessel owner if fuel level drops under 30%
Figure: Client Request Flow
xiv