Information system paper
Servers, Clients, Virtual Machines and Other Devices
1
T.J. Smith – Drexel University
May I have a Part Number?
Sure: 12F67G
Client
Protocols
Network
Server
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Client and Server
2
This week we will talk about the various ways in which a computer can support our activities. We will start with World Wide Web content production.
Three basic ways to run programs on a computer:
Stand-alone
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Web Browser and Server
A stand-alone computer runs a program with no connection to the outside world. If you use an application to create a document such as a letter, a spreadsheet or a presentation, you may be working stand-alone, not even connected to the Internet.
Three basic ways to run programs on a computer:
Client-Server
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Web Browser and Server
Initially, Client-Server functionality referred to computers working together on a Local Area Network. These computers would often be of two types, workstations and servers, each type equipped with certain software that would allow it to do its job. Often the file types on the workstations would be different from the file types on the servers, for example, executable files (.exe) on the workstation and dynamic link library files (.dll) that they access on the server. The client would access the server for data and functionality across a physical connection.
Three basic ways to run programs on a computer:
Web Enabled Client Server
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Web Browser and Server
Increasingly though, a Client-Server scenario involves something other than a physical connection between two computers running different types of software. Web-enabled computers are equipped with browsers if they are acting as clients and with server software if they are acting as servers. Using these two types of software, a server and a client can find each other even if they are located in different parts of the world. This is the type of scenario that we discussed extensively in Week 2.
One uses a Web browser to access a Web application in a Web server.
Internet
Web server
T.J. Smith – Drexel University
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Web Browser and Server
The programs we run in this third scenario are enabled by software products known as “Browsers”. Browsers open windows into the Internet by displaying the web pages we use to reach outside of our own stand-alone computers.
7
Web pages share text, images, gadgets, maps, video, sound, and multimedia effects with a simple click on any computer.
Web sites are collections of related Web pages.
Web pages are displayed by Web browsers whose job it is to locate and display Web information.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Web pages, Sites, and Browsers
Here are some definitions to start out with.
7
The next several slides show three years of statistics regarding user share of the most popular browsers.
There are some things you will note about browsers as you go along:
If you use different browsers to render your web page, it will probably look pretty much the same, but not identical, no matter what it is launched in, but browsers do exhibit different behaviors.
You will note that the browsers engage in annoying extracurricular activities, such as prompting you with urges to change default browser, or notifying you that they have disabled features from other browsers. This is a symptom of the famous “browser wars” that you have most likely heard about. Those wars are still going on!
8
9
10
This slide shows the actual percentages of market share dominated by each of the major browsers as of September. Here is a question for you: If Internet Explorer is bundled and the bulk of the other browsers are open source, why do they still tend to call it “market share”?
11
I have read many different opinions on the reasons for this loss of market share on the parts of I.E. and Firefox. Firefox was very popular but reportedly made some poor design decisions resulting in excessive memory usage and lag. People seem to like Chrome, and Google has utilized a very aggressive marketing campaign. Chrome is very forgiving and I have seen one website that specifies you should use only Chrome to open it. Of course, this is a good reason not to use Chrome for testing your website! I tell my students to use I.E. for testing. It is definitely the strictest browser and therefore if you want your web page to work robustly when you put it out there, I.E. is probably the way to go for testing. Safari is the default Apple product and pioneered the Canvas API, a popular feature that is used to draw graphics, via scripting (usually JavaScript). Opera is a browser that was developed in Europe. It offers a built-in ad blocker and a free VPN.
12
Protocols
TCP/IP
HTTP
HTML
Bits
TCP/IP
HTTP
HTML
Bits
part number?
12F67G
T.J. Smith – Drexel University
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Request and Response Model
13
Just a little refresher about the Request and Response model. Note that “HTML” is listed in the Application layer of this model. HTML is one
of three core technologies of web page production. We will examine each of them in turn.
Let’s start with HTML. No matter what browser you use to render your web page, the odds are pretty good that you will have used HTML to
create it. This language was invented by Tim Berners-Lee, who as you know also invented the World Wide Web, so this is probably a main
reason why it is so prevalent! HTML is different from a lot of programming languages that you may be familiar with. Its primary purpose is to
describe to the computer how the web page should look. It doesn’t do logic or looping or array processing, or any of the more complex
programming activities you might be familiar with. It just creates the look of the page.
14
Week 4 – Servers, Clients, Virtual Machines and Other Devices
HTML
You don’t need a remote server to render a web page. Any browser on your own computer can do it. Let’s try it! Here are the steps:
1) Open the “HelloWorld.html” file that is posted this week, in any text editor.
2) Note some things about HTML:
- a) HTML directives are enclosed in angle brackets <>
- b) An HTML directive has two parts: the first directive in <>, and an end to the directive in </>. These bracketed segments
tell the browser where the activity starts, and where it ends.
- c) The HTML document is broken into two sections: The <head></head> section, and the <body></body> section.
- d) The <head> section is used for setting things up. Note in the head section above, that there are some sections for <style> and <script>. We well talk about these shortly.
- e) The specifications for text and images that render on the screen are laid out in the <body> section.
3) Fill in the body section with the code on the above slide.
4) Save the file with an “.html” extension.
5) Some editors allow you to launch the web page from within the editor. If your editor doesn’t provide for that, you can run it from the folder or Desktop by clicking on it.
14
Brendan Eich
He started work at Netscape Communications Corporation in April 1995, and was commissioned to create a new language that resembled Java, JavaScript for the Netscape Navigator Web browser.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
JavaScript
JavaScript is a language which is embedded in HTML and handles the logic of the web page. This is a picture of Brendan Eich, the creator of JavaScript. Eich started out with Netscape Communications Corporation, where he did the work on JavaScript, then spent a brief time as CEO of Mozilla, the organization behind the Firefox Web Browser, which he co-founded.
15
16
Week 4 – Servers, Clients, Virtual Machines and Other Devices
JavaScript
JavaScript is embedded – it runs from within your HTML file. It manages the parts of your web page that need logic, looping, and information processing.
To see how this works, let’s add a little JavaScript logic and functionality to our Hello program. Add the new text above to your .html file. Note that it goes between the <script> and </script> tags in the <head> section of the program.
16
17
Week 4 – Servers, Clients, Virtual Machines and Other Devices
JavaScript
Here is an example of what I was talking about earlier – the difference among browsers in how things work. Launch this code in various browsers to see the differences in how they respond to the “close()” command.
17
Håkon Wium Lie
Standards activist and Father of CSS
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Internet pioneers
This is a picture of Håkon Wium Lie, a Norwegian web pioneer and standards activist. While working with Tim Berners-Lee and Robert Cailliau at CERN in 1994, he proposed the concept of Cascading Style Sheets (CSS). As an employee at W3C, he developed CSS into a W3C Recommendation. CSS is a method of standardizing formatting of web pages.
CSS styles are really just HTML. The idea behind them is that you will have a much better quality website if you produce a standard look and feel that matches across all the web pages in your web site. You define the styles and then anywhere in your web site that you want a certain look, you use the predefined style. This has the added benefit of saving time and work for the programmer. Styles can be added to the web page in the <style> section of the <head> area. Alternatively, you can put the style definitions in a separate file (hence the name Cascading Style Sheets), and simply reference the file in your web pages.
18
19
Week 4 – Servers, Clients, Virtual Machines and Other Devices
JavaScript
Run your “HelloWorld” web page again and look closely at it. Do you see anything that could stand improvement?
19
20
Week 4 – Servers, Clients, Virtual Machines and Other Devices
CSS
Let’s use CSS styles to fix the text on the web page. For this example, we will just put them in our page, and not in their own style Sheet. I want to specify a better style for the font, and add a background color.
20
21
Week 4 – Servers, Clients, Virtual Machines and Other Devices
CSS
Since I have predefined the background color and this particular font, I can now duplicate them easily anywhere in the web page.
21
Client-Side Scripting versus Server-Side Scripting
Client-side scripting can be used to:
validate user input.
interact with the browser.
enhance web pages.
add client/server communication between a browser and a website.
22
So far, we have actually been working stand-alone. We built and tested our web page on our computer with no connection to the outside world. I can disconnect from the Internet altogether and test the web page in exactly the same way we have done here. The obvious problem with this is that I don’t have access to any information or resources on other computers. In a Client-Server scenario, I can use one computer to house a huge database that is accessed by other computers all over the world. This is very different concept from the idea of a distributed database, where the data is split up among various computers and resides on those individual computers. The distributed database scenario has many logistical and security issues, such as the necessity to constantly move data around to where they are needed, and the additional security issues of having to protect data in multiple locations instead of just one. A server scenario is also a great way to optimize the use of peripherals such as printers, scanners, and so forth. Many clients can share one printer attached to a server which administers it. This makes so much more sense than everyone having their own printer which spends the majority of its time just sitting there waiting for a job.
Client-Side Scripting versus Server-Side Scripting
Client-side scripting has limitations:
Client-side scripts can be viewed by the client by using the browser’s source-viewing capability. Sensitive information, such as passwords or other personally identifiable data, should not be on the client.
Placing certain operations in JavaScript on the client can open web applications to security issues.
Programmers have more flexibility with server-side scripts, which often generate custom responses for clients.
Server-side scripting languages have a wider range of programmatic capabilities than their client-side equivalents.
Server-side scripts also have access to server-side software that extends server functionality.
23
The difference between a Client and a Server isn’t as much about hardware as it is about software and the job that the computer is trying to do. Pretty much any computer can act as either a client or a server. However, servers often are `bigger computers because of their purpose. They house huge databases or administer large numbers of peripherals. For their purposes, they need different functionality.
One of the functions that servers need to excel at is the security function. I am sure it occurred to you when we were working with the .html file, that a text file is a very insecure thing. Anyone with a text editor can open and read it. If the data being accessed by the web site also reside on the Client, this can be a very insecure situation.
Rasmus Lerdorf
Created the PHP Scripting Language
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
On the other hand, we have seen by playing with Wireshark, how easy it is to intercept information as it passes between the Client and the Server.
PHP is a popular open source server-side scripting language, which offers some protections against hacking of the information that is being transferred between Client and Server. This is Rasmus Lerdorf, the creator of PHP. PHP was written in C, and originally designed for tracking visits to his online resume. It has grown in power and functionality and is one of the most popular server-side scripting languages.
24
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
Like JavaScript, PHP is embedded in the HTML file. However, it does not run when the HTML file is launched in a browser.
25
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
This is Server software named XAMPP that I have loaded on my computer. Its purpose is to enable me to test my server-side programs. It starts a process that activates a listener. A listener is a process that receives incoming client connection requests and manages the traffic of these requests to the server.
26
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
I can test my .php program by placing it in a folder that XAMPP is aware of and running it from there.
27
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
28
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
I have run an ipconfig/all on my server in this picture. I will use the IPV4 address I find to access the PHP program from a Client computer. In this case, this is the private address of my router, not a server address in the Domain Name System database, but you get the idea.
29
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
The listener in XAMPP listens for requests coming in from the outside world. When it receives a request, it routes the Client to the requested file.
30
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
The server processes the request (in this case, a request to open the web page.)
31
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Server-side Processing
When I update the data on the Server and refresh the launch on the Client, the web page I am looking at is updated. This was a very simple change to the text string, but changes to data in a database or other processing of information can take place on the server in response to information coming in from the Client – and that is the way Clients and Servers communicate.
32
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Virtual Machines
System Virtual Machines
33
Virtual Machines are another interesting way to use computers. There are two main types of virtual machines. One, which is called a System Virtual Machine, is used to mimic a complete system platform (all the processes and components of an actual computer). System virtual machines allow a person to use a single server as if it were many different computers. Each of these configurations is completely isolated from the other systems and can act as an independent computer, even though each of them exists on the same physical machine.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Virtual Machines
Process Virtual Machines
34
The other type of Virtual Machine is the Process Virtual Machine. This type of emulator is used to run a single application and disappears when that application is closed. In order to do this, the Process Virtual Machine provides an operating-system like environment that enables the process to run properly.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Uses for Virtual Machines
Run programs that are only available on one type of operating system.
Exploring other operating systems without having to buy multiple machines.
Testing a program across multiple platforms without switching machines.
Operating System research and development
Working on system compatibility problems.
Creating a lab environment where every student is looking at the exact same data with the exact same system parameters.
35
There are a great many reasons to use Virtual Machines. I have listed only a few of them here. We will explore Virtual Machines more in Week 8.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Disadvantages of Virtual Machines
There is no direct sharing of resources, since the virtual machines are completely isolated. Of course, this can be an advantage in the sense that it protects system resources of the other systems.
Virtual machines can be slower, since many of the privileged instructions that deal with I/O are simulated.
Running multiple virtual machines on a system can result in instability.
36
The disadvantages of virtual machines, essentially the fact that they are less efficient, and cannot share resources with other systems, are definitely overshadowed by their advantages.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Virtual Private Networks
A Virtual Private Network is a safe and encrypted connection over a less secure network, such as the Internet.
This technology ensures the appropriate level of security to the connected systems when the underlying network infrastructure alone cannot provide it.
It is called a Virtual Private Network because it has the effect of creating a virtual area in the Internet or other insecure location, that emulates or can be configured like your more secure private network.
Factors affecting VPN performance include:
The speed of users’ internet connections
The types of protocols an internet service provider may use
The type of encryption the VPN uses.
The quality of service and conditions that are outside the control of IT.
37
Related to the idea of Virtual Machines, is the idea of a Virtual Private Network or VPN. This technology allows remote users and branch offices to securely access corporate applications and other resources. Data travels through secure tunnels and VPN users must use authentication methods — including passwords, tokens and other unique identification methods — to gain access to the VPN.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Virtual Private Networks – VPN Protocols
VPN services use various protocols including encryption protocols and tunneling schemes, to create a virtual safe place to conduct business on the Internet.
There are a number of VPN companies which produce these applications, and as with other software, there are free trials available. A fewlinks where you can go to browse and examine these products are below:
https://www.top10bestvpn.com/?utm_source=bing&bkw=top%20ten%20vpn&bcampid=53206582&bcamp=VPN%20US%20Bing&bagid=3196139479&bag=Top%20VPN&btarid=kwd-118061101936:loc-4113&bidm=be&bnet=o&bd=c&bmobval=0&bt=search&utm_medium=cpc&utm_term=top%20ten%20vpn&utm_campaign=Bing+CPC+Campaign&c=73736076388183&m=e&k=118061101936&a=B1027&ts=&topic=&upf=&msclkid=97fcabc59a3f1c740a2af227db9b0960&gclid=CPHF-7DK8NYCFUeVswodZ0AEbA&gclsrc=ds
https://best.offers.com/best-vpn-services?path=zbe-32985-cob-100c1a&creative=78271504238567&device=c&keyword=78271551551581&source=s
http://top5-vpn.com/?utm_source=B
http://bestvaluevpn.com/comparison-chart/top-10-vpn?utm_campaign=bing-usa&msclkid=4662529e98001fb7d6b20b7cda9b012b&utm_source=bing&utm_medium=cpc&utm_term=%2Btop%20%2Bvpn&utm_content=top%20vpn
38
Encryption protocols used by VPN’s include the use of public and private keys, examination during the handshaking period and tunneling, which is a process of embedding the services themselves into the data part of the packets. I browsed the Internet and looked at sites that offer comparisons of VPN products. Two things were of interest:
ExpressVPN, NordVPN, PureVPN and IPVanish were always near the top 5 of the group.
Several of the sites had disclaimers regarding appropriate and inappropriate use of the VPN’s. As with all things related to security, VPN’s seem like they can be a double-edged sword – what keeps you safe also keeps users doing illegal business on the Internet safe. The more you know about how security works, the better equipped you are to take care of yourself, but conversely, the better equipped you are to understand ways to hack. That is what makes security such a problematic endeavor.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
39
Handheld and mobile devices are another use of computers to make our lives more interesting. Computers these days come in all shapes and sizes, and as we discussed
last week, regardless of the size, there are certain required elements to all of them.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
40
Last week we spoke briefly about the System on a Chip (SoC), a product of advances in miniaturization, that combines many elements on
one chip, and makes smaller and more powerful computing devices possible.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
41
Handheld devices are a natural consequence of the miniaturization of computing components. The first handheld device that I can
remember was my transistor radio. I was so proud of that thing! It came in a little plastic case and replaced the big heavy radios we used
to lug to parties! This radio was made possible by advancement in transistor science.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
42
The next really exciting event was when I was in college. My husband bought his first calculator. It did addition, subtraction,
multiplication and division and only cost $200! We started college using slide rules, so this device was a true improvement in life style!
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
43
When I started my Masters Degree, my husband bought me a programmable calculator and I knew I had arrived! It was not a
small computer though. Its functionality was limited and, like ENIAC, mostly geared to math, functions and number crunching.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
44
Hand held devices are interesting because essentially they fell into to categories at the beginning, which eventually merged. The first category was increasingly
smaller and more versatile computers. The first handheld computers were Personal Digital Assistants, which you could use to take notes,
store contacts, and manage calendars
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
45
The PDA’s evolved into a family of tablet-sized devices that combined the PDA functionality with limited capability to run applications
and create documents.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
46
Interestingly, as tablet computers increased in power and flexibility, the lack of a reasonably-sized QWERTY keyboard became more
troublesome. Adding the keyboard to a tablet makes it a lot more like a laptop. I have found it interesting to note that some devices are
getting bigger again, as size becomes a limiting factor in what a power user can do with a device.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
47
The second category of handheld devices was ever smaller and more powerful telephones – and telephones that didn’t have to be connected
to wires.
Week 4 – Servers, Clients, Virtual Machines and Other Devices
Handheld Devices
48
Modern smartphones are a combination of PDA, wireless telephone, camera, alarm clock, and computer in the sense that they can run
programs. The one thing that I am not aware of them doing by themselves that a laptop computer can do, is generating large documents and
writing and compiling programs – very likely a limitation based on the user interface problems as much as anything else.
Handheld Devices – Operating Systems
iOS by Apple
49
Because operating systems are based on hardware, it is not surprising that there are a number of different mobile device operating systems out there, created by the manufacturers of the devices. Shown below are some of the existing mobile device operating systems.
Handheld Devices – Operating Systems
Windows for Mobile Phones by Microsoft
50
Handheld Devices – Operating Systems
Symbian by Nokia
51
Handheld Devices – Operating Systems
RIM (Research in Motion) by Blackberry
52
My first Blackberry had the RIM operating system, but the one I have now actually uses a different operating system – Google’s Android.
Android
53
Android is interesting for many reasons – because it is created by Google and everything they are doing these days is interesting, in both good and
bad ways!
Android is interesting because of the wonderful Android version designators – Cupcake, Donut, Éclair, Froyo (which stands for frozen yogurt), Gingerbread,
Honeycomb, Ice Cream Sandwich, Jellybean, Oreo. Fortunately, the API’s are also numbered for those less inclined to whimsy.
Android is also interesting because Google has exposed an API for each version to make it easy and robust to write third party
applications. An Application Programming Interface (API) is a set of code libraries, protocols, and other tools for building software that
matches a certain operating environment. If a software company releases its API to the public, that makes it possible for third party
developers to design programs for the products that work with its services. There is a great software development kit (SDK) written in
Java for use in Android development
54
In this lecture we have only scratched the surface of what is going on out there in the wonderful world of development. It feels like there
could be a whole class for practically every slide – I hope that it has given you an appetite for exploring further! Have a wonderful week!
55
55
http://www.socialmediaexaminer.com/copyright-fair-use-and-how-it-works-for-online-images/
https://www.lib.umn.edu/copyright/using-images-teaching
https://www.stinkyinkshop.co.uk/articles/ultimate-guide-to-images
https://www.rivaliq.com/blog/guide-copyright-fair-use-laws-online-images/
T.J. Smith – Drexel University
http://www.open.edu/openlearn/ocw/pluginfile.php/70391/mod_oucontent/oucontent/545/54b90dd0/d3798efc/t175_3_009i.jpg
http://digestwebdesign.com/images/lan.jpg
http://gs.statcounter.com/
https://www.quora.com/How-did-Internet-Explorer-lose-the-market-to-other-browsers-such-as-Chrome-and-Firefox
http://image.slidesharecdn.com/virtual-machine-150316004018-conversion-gate01/95/virtual-machine-14-638.jpg?cb=1426466785
http://www.macping.com/top-10-windows-emulator-for-mac-that-will-allow-convenient-access-of-windows-applications-on-your-mac/
http://theinfonomia.com/wp-content/uploads/2016/04/Android-Emulators-lets-you-run-Android-on-a-Windows-Mac-or-Linux.jpg
http://www.iphonetopics.com/windows-emulator-for-mac/
http://www.linuxforums.org/forum/miscellaneous/21671-linux-emulator-windows.html
http://www.wisegeek.com/what-are-the-different-types-of-virtual-machines.htm
https://www.smashingmagazine.com/wp-content/uploads/2011/11/device.png
References
55
56
56
http://1.bp.blogspot.com/-krSyMK5lSqc/UE5qNz5UByI/AAAAAAAAAAs/RYaKbVQ4a3w/s1600/maquina-virtual.jpg
http://i.ebayimg.com/images/i/151365097271-0-1/s-l1000.jpg
http://www.mobilespoon.net/2009/03/history-of-pdas-part-1.html
http://1840farm.com/wp-content/uploads/2012/08/phone.jpg
https://www.bing.com/images/search?view=detailV2&ccid=WHk6czFP&id=834CBF0FAE35F66CF30686B388DBE50AF0E5AB7A&thid=OIP.WHk6czFPrVmgbaHKbwrITQEsCY&q=smartphone+images&simid=607989297278026311&selectedIndex=0&ajaxhist=0
http://www.clicktechtips.com/wp-content/uploads/2015/05/smartphones-under-30000.jpg
http://searchnetworking.techtarget.com/definition/virtual-private-network
https://luxsci.com/blog/ssl-versus-tls-whats-the-difference.html
https://luxsci.com/blog/ssl-versus-tls-whats-the-difference.html
https://www.top10vpn.com/best-vpn-for-usa/?v=2&bsid=c33se4kw141&utm_source=bing&utm_medium=cpc&utm_campaign=GEN-USA-ALL-B-WEB-EN&utm_term=%2Bvpn&utm_content=VPN-MB
http://3.bp.blogspot.com/-nmdiiuj7F3M/TZsyfiv8ERI/AAAAAAAAAUc/LrKViQXJeGM/s1600/Superpad+10.2+Tablet+PC%252C+Google+Android+2.1%252C+Webcam%252C+GPS%252C+HDMI%252C+USB%252C+WIFI%252C+2+micro+SD+card+slots.jpg
References
56