Multi-Screen Online Multiplayer Game for an Android Device

Size: px
Start display at page:

Download "Multi-Screen Online Multiplayer Game for an Android Device"

Transcription

1 COMP 4905 Honours Project Multi-Screen Online Multiplayer Game for an Android Device Author: Nicholas Tierney Supervised by: Dr. Tony White School of Computer Science Carleton University Ottawa, Canada April 18,

2 Abstract The goal of this project is to create a multiplayer game that uses both a computer screen and an Android device to convey information to its players. The main focus will be producing software that will provide a zero-configuration networking experience to the user, through the use of service discovery. The local area network service discovery will be handled by the Bonjour library, and the remote through a simple name server registration setup. Messaging will be handled by the RabbitMQ library with JSON being used for serialization. The game will use OpenGL ES 1.1 for Android and the whole project will be programmed in Java. With the imminent release of the Wii-U and the rising popularity of smart televisions, we will soon see a rise in the number of multi-screen applications being released. It is for this reason that I have chosen to create an application of the sort for my project. A few problems arise when creating a multi-screen application, due to the involvement of multiple devices. The first problem is discovery of devices and the second is communication between said devices. With this project, I hope to provide an implementation of such an application by using a combination of pre-existing technologies. From this project I hope to acquire a better understanding of the technologies required in order to develop both locally and remotely distributed applications, and to learn how to create an application that requires very little configuration in order to begin the communication between devices. In addition to this, I want to apply my knowledge of DirectX in order to learn how to implement games with OpenGL on a handheld device. Page 2

3 Acknowledgement There are a few people at this point that I would like to recognize, for making some of contribution to this project. First of all, I would like to thank Dr. Tony White for his patience and help starting me off on the right track, and for the interest in these subjects that I acquired during his Comp 4104 class. I would also like to thank my family, for their motivation along the way and my friends, for allowing me to ignore them for a while. Page 3

4 Table of Contents Abstract... 2 Acknowledgement... 3 Game Description... 5 Introduction... 5 Game Rules and Player Interaction... 5 Graphics and Input... 5 Service Discovery Description... 7 Messaging Protocol Description Code Documentation Half-Sync/ Half-Async Message Queues Reactor Pattern Pipe and Filter Model View Controller Project Results Concepts and Technologies Learned Future Work Conclusion Appendices Submission Contents Required Tools Project Setup References... 1 Page 4

5 List of Figures... 2 Game Description Introduction The given name for the game that users will experience is Maze Racer, where players navigate their way through a maze simultaneously in pursuit of a goal. The maze in focus will be randomly generated at the start of each session, and only through the clever use of both visual outputs will a player succeed. Each player with their own android device will have their own view of the three dimensional world from a first person perspective and a two dimensional shared view of the world from a bird s eye view. This game has been created to show how older, simpler games can be designed from a newer perspective. The main goal of this game is to show how having a personalized perspective for each player can affect the mechanics of a Game Rules and Player Interaction At the beginning of each game, players are placed into a randomly generated maze. A single golden star will be placed inside of the level, and players must race to be the first to acquire it. When the golden star is taken by a player, a new one will randomly spawn in the maze and the process will restart however, players will not revert to their starting places. In order to win the game, a single player must be the first to collect five golden stars. Graphics and Input Having two screens to work with allows for a certain amount of creativity that would not normally be feasible. By designing different graphical viewpoints, both representing the same world, on each screen, new mechanics that rely on this can be implemented. The game on the Android client is rendered entirely in 3-D; it uses a mobile version OpenGL to do this. The maze is viewed from the player s perspective, so that only nearby obstacles can be Page 5

6 viewed. When using the Android client, a player can move around the world by sliding their finger on the screen in the direction they wish to go. Figure 1 - View of Game on Android Device Players will get an eagles-view of the maze from the PC Client, as the screen is shared between everyone in the game. The game on the PC is rendered in 2-D, using Java s Swing components. There is no input for the PC, as everyone controls the game from their own Android device. Page 6

7 Figure 2 - View of Game on PC Service Discovery Description There are two primary forms of service discovery that occur in this project. The first type of discovery happens between handheld devices running the Android client (MSPhoneClient) and computers running the Java client (MSPCClient) within the local network. The second type of discovery is between different computers running different instances of the game lobby over a wide area network (WAN). The two types of discovery are implemented in completely different ways, since multicasting a service over a WAN is not practical (or potentially possible.) When searching for services on a local network the advantage lies in the ability to multicast messages over the network, which is possible due to the limited amount of devices. Multicast service discovery is such a powerful tool over a local network, since any device that is part of the network can find or broadcast a service to any other device a feature such as this would not be possible over a WAN due to the sheer number of devices that exist. The advantage of multicasting is taken advantage of through the use of ZeroConfig service discovery. Bonjour, an implementation of such a service, is used in order to detect which Lobbies are active on PCs nearby from Android devices that are running the client. The second type of service discovery happens over a wide area network, when lobbies are searching for hosting lobbies to join. Since we cannot take advantage of ZeroConfig service Page 7

8 discovery over a WAN, another scheme must be used which in this case is a simple name server setup. Lobbies that are hosting games will register themselves with an external static server, adding them to a list with all of the other lobbies that are hosting a game as well. When a lobby is created, it will do two things. The first thing that the lobby will do is to broadcast its service over the local network using the Bonjour library, allowing phones on the local network to find it. The next thing a lobby will do is register itself with the static name server over the WAN, allowing other lobbies to discover itself. Page 8

9 Figure 3 - Diagram of Network Connectivity Page 9

10 Messaging Protocol Description Compatibility can be an important feature of a piece of software, as it can increase the total number of users that can use it. By implementing the messaging protocol entirely with JSON, or JavaScript Object Notation, it can be compatible with a large number of end users. Each message is a JSON object with the arguments that are described in the following table. Event Name Arguments Description PlayerLobbyEvent PlayerGameEvent GameLoadEvent string playerid int actiontype string playerid int actiontype float spacesizeratio float spaceplayerratio int levelwidth int levelheight Wall[] walls Sent when a player performs some action that would change either their state in the Lobby or the Lobby itself. Sent when a player performs an action in the Game. Contains data relevant to the layout of components that make up a Level. GameStatusEvent Int actiontype Sent when the state of the Game has changed. RegisterLobbyEvent String playerid Sent when a lobby registers or unregisters String IP Int port boolean register GetLobbyEvent String playerid Request for registered lobbies String IP Int port ReturnLobbyEvent ArrayList<ConnectionInfo> Contains the set of lobbies that are registered Figure 4 - Table Displaying the Messaging Protocol Page 10

11 Code Documentation Several patterns of code design were used in the creation of this project; this section will give an overview of these concepts and then show how they are used in combination. Half-Sync/ Half-Async This half-sync / half-async pattern decouples asynchronous and synchronous service processing in concurrent systems. [1] This structure is used in order to allow asynchronous messaging to interact with the rest of the program, a synchronous service. In order to combine these two layers, a third queuing layer is necessary to provide a way to control the flow of both incoming and outgoing messages. Figure 5 - DIagram of Half-Sync/Half-Async pattern Message Queues The messaging of the program is entirely handled through implementation of message queues, specifically RabbitMQ. Message queues provide a necessary service that simplifies the structure of how messages are sent between clients and allows this to become an asynchronous process. A consumer/producer pattern is the underlying structure of message queues. After creating a queue, a producer will add to it and a consumer will remove this allows messages to be passed from one client to another in an asynchronous fashion. Page 11

12 Reactor Pattern The reactor design pattern allows for asynchronous messages to be dispatched to the program model in a synchronous format. It also provides a way to determine which event handlers will be used in conjunction with which event types. Event handlers are loaded upon start time through class reflection, determined by the names given in a configuration file. The reactor will follow a continuous cycle after it has been initialized in one or possibly more threads; each thread will remove an event from the incoming queue, determine the event handler that is associated with that event and then carry out the action that is specified in the handler. Pipe and Filter When an event is transported from one client to another, it does so in a fashion that allows for both security and compatibility. In order to allow for compatibility, events must be converted into a format that stays consistent with as many clients and middleware as possible. This compatibility is achieved through the pipe and filter method by passing an event through multiple stages of encoding. When a message is received, it will begin in a byte format and get converted into a String. After we have the event in a String format, it is reorganized back into a JSONObject that will contain all of the header information and the event itself. The final step of this process is to infer the type from the header to create the event object from the arguments inside of the JSONObject. Model View Controller In order to maintain a graphical user interface with relevant data that may not match up directly with the model, the MVC architecture is used in this project. This architecture is used specifically in the PC client, and to a lesser degree on the Android client. By maintaining a correct model of the data on its own, without combination of interface into the design, a proper structure is easier to maintain. The same is true about the interface, since it is not integrated into the model, there can be a more accurate representation of structure. Since the view is not integrated into the structure of the model, there must be a way for it to detect when changes have been made- a problem solved by following the Observer pattern as well. Page 12

13 When changes are made to the model, it will notify the Observer and the correct changes to the interface will be made. Project Results What I accomplished with this project is less than I had wanted to, but for the most part I have learned what I have wanted to. My implementation of the project did not quite come through with the success that I had hoped, I managed to get ZeroConfig networking implemented fully as well as learning how to use JSON for message protocols and RabbitMQ message queues for communication. The combination of these technologies allowed me to create a working game lobby, but I wasn t actually able to get the game working. I was able to fully implement the ZeroConf networking, Android clients can discover PC clients and join lobbies as well as the game. Once they are in the game they can change their ready state. Figure 6 - Android Client Options Screen Page 13

14 This project managed to be a moderate success, but I felt as though I didn t get as much done that I would have liked to. When I started this project, I had several goals that I wanted to accomplish. The first thing that I wished to learn was how to develop an Android application, which I now have a further grasp on. I have learned how to make some basic applications including lists and buttons, as well as including OpenGL. I discovered the difficult process of testing applications for Android on a PC, that it is almost necessary to have a physical device when building your application. Figure 7 - PC Client Lobby Screen I wanted to learn how to create a program in OpenGL, which I found that I had quite enough success with. I managed to implement the basic levels of my game inside using OpenGL, but was not able to spend much time polishing or completing what I had wanted to even though I had learned how it had worked. Concepts and Technologies Learned The technologies that I learned very much about while doing this project are ZeroConfig networking, android app development and JSON. ZeroConfig was a really important thing to Page 14

15 learn about, as it can simplify so many applications that I can think about developing. JSON is also a helpful tool, as it is being used everywhere; it really changed how I think about messaging across different clients. Future Work In the future, there is still some work to be done to getting my project to a finished state. There isn t much left when it comes down to it, but there is still more work to be done on game mechanics as well as finishing the protocol for the actual game. I would like to make it so that the name server registration works properly, it is only a few steps from being complete and once that is finished, multiple lobbies can connect and games can actually be played across the web. Conclusion The most important thing that I learned from this project is to not take more than I can handle. I feel that I decided to do too many things, and many parts were nearly implemented but it just did not mesh together properly taking away from the experience. I learned that I would like to spend more of my time in the future learning about networking, and how it can be used in order to make tasks while working easier. Appendices Submission Contents The zip file that is included with this report contains the following eclipse projects: MSAndroidClient the client that is run on Android devices MSPCClient the client for game lobbies that is run on the PC MSServer the name server that lobbies use for registration Required Tools Several tools are required in order to properly run this software. Page 15

16 Java SDK 1.7 is required for the PC Clients, and 1.6 for Android devices[2] Android SDK with API level 16 or higher[3] ADB Plugin for Eclipse[3] RabbitMQ server version 3.0.4[4] Erlang AMQP client library protocol version 0-9-1[4] Project Setup In order to run this project, the three project folders must be imported into the IDE. To run the PC Client, the PCClient class must be run normally from inside of Eclipse. Any android client that is to be launched must have an actual device connected to the computer, in order to take advantage of the ZeroConf networking. For the first time running an android client, the main activity must be run from Eclipse. Page 16

17 References [1] "Architecture and Design of Dependable Systems TIARDIPOSA2: Half-Sync / Half-Async Archictectural Pattern," Aarhus University, [Online]. Available: [Accessed 7 February 2013]. [2] "Oracle Technology Network Downloads," [Online]. Available: [3] "Android Devoppers Website," [Online]. Available: [4] "RabbitMQ Downloads," [Online]. Available: 1

18 List of Figures Figure 1 - View of Game on Android Device... 6 Figure 2 - View of Game on PC... 7 Figure 3 - Diagram of Network Connectivity... 9 Figure 4 - Table Displaying the Messaging Protocol Figure 5 - DIagram of Half-Sync/Half-Async pattern Page 2

19 Page 3

Carleton University Real-Time Settlers of Catan Michael McMillan Jean-Pierre Corriveau Ph.D. Computer Science April 19/2014

Carleton University Real-Time Settlers of Catan Michael McMillan Jean-Pierre Corriveau Ph.D. Computer Science April 19/2014 Carleton University Real-Time Settlers of Catan Michael McMillan Jean-Pierre Corriveau Ph.D. Computer Science April 19/2014 Table of Contents 1. Installation 2. Design Overview 3. Events 4. Design Patterns

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

CS 4300 Computer Graphics

CS 4300 Computer Graphics CS 4300 Computer Graphics Prof. Harriet Fell Fall 2011 Lecture 8 September 22, 2011 GUIs GUIs in modern operating systems cross-platform GUI frameworks common GUI widgets event-driven programming Model-View-Controller

More information

StratumGS Documentation

StratumGS Documentation StratumGS Documentation Release 0.1.0 Dave Korhumel May 14, 2016 Contents 1 Documentation 3 1.1 Design.................................................. 3 1.2 Guides..................................................

More information

Mobile Application Programming: Android

Mobile Application Programming: Android Mobile Application Programming: Android CS4530 Fall 2016 Project 4 - Networked Battleship Due: 11:59PM Monday, Nov 7th Abstract Extend your Model-View-Controller implementation of the game Battleship on

More information

3 A Model for Stream Based Interactive Storytelling

3 A Model for Stream Based Interactive Storytelling 3 A Model for Stream Based Interactive Storytelling In this chapter, a Model for Stream Based Interactive Storytelling is presented. This model uses a distributed strategy, removing the need of having

More information

Introduction to computer networking

Introduction to computer networking Introduction to computer networking First part of the assignment Academic year 2017-2018 Abstract In this assignment, students will have to implement a client-server application using Java Sockets. The

More information

An ios Static Library for Service Discovery and Dynamic Procedure Calls

An ios Static Library for Service Discovery and Dynamic Procedure Calls An ios Static Library for Service Discovery and Dynamic Procedure Calls Arnav Anshul Department of Engineering. Arizona State University Polytechnic Campus. arnavanshul@gmail.com Abstract - Remote procedure

More information

The Soccer Box Coaches & Managers

The Soccer Box Coaches & Managers The Soccer Box Coaches & Managers Quick Start - Building Your Team STEP 1 Register your team STEP 2 Receive Invitation for Bonzi Team Add your players to send invitation link for the team. STEP 3 Your

More information

Firefox for Android. Reviewer s Guide. Contact us:

Firefox for Android. Reviewer s Guide. Contact us: Reviewer s Guide Contact us: press@mozilla.com Table of Contents About Mozilla 1 Move at the Speed of the Web 2 Get Started 3 Mobile Browsing Upgrade 4 Get Up and Go 6 Customize On the Go 7 Privacy and

More information

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges

More information

Android Basics Nanodegree Syllabus

Android Basics Nanodegree Syllabus Android Basics Nanodegree Syllabus Before You Start This is an entry-level program. No prior programming experience required. Project 1: Build a Single Screen App Design and implement a single screen app

More information

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie)! Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries

Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt

More information

Develop Mobile Front Ends Using Mobile Application Framework A - 2

Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 3 Develop Mobile Front Ends Using Mobile Application Framework A - 4

More information

Review Guide: Picasa 3 (beta) and Picasa Web Albums Fast and easy photo sharing from Google

Review Guide: Picasa 3 (beta) and Picasa Web Albums Fast and easy photo sharing from Google Review Guide: Picasa 3 (beta) and Picasa Web Albums Fast and easy photo sharing from Google Together, Picasa and Picasa Web Albums make it easy for you to organize and edit your digital photos, and then

More information

CrossMount MediaTek White Paper April2015

CrossMount MediaTek White Paper April2015 MediaTek White Paper April2015 2015 MediaTek Inc. Technology Introducing is a new MediaTek technology that simplifies hardware and software resource sharing between different consumer devices. Designed

More information

Mobile Application Programming: ios

Mobile Application Programming: ios Mobile Application Programming: ios CS4962 Fall 2014 Project 4 - Network MVC Battleship Due: 11:59PM Monday, Nov 17 Abstract Build a Model-View-Controller implementation of the game Battleship on Android.

More information

Semester Project Report Mobile Application for Online Surakarta Battle

Semester Project Report Mobile Application for Online Surakarta Battle Semester Project Report Mobile Application for Online Surakarta Battle COMP4342 Mobile Computing Department of Computing The Hong Kong Polytechnic University CHAU Tsz Ling 15067489D FU Kuo-Hao, 14112466D

More information

Senior Project Write Up

Senior Project Write Up Robert Burton Senior Project Write Up Motion Controlled Graphics Applications Abstract! This project implements a new control scheme for the OpenGL racing game Crusin Pangea[3] using the motion tracking

More information

Android App Development for Beginners

Android App Development for Beginners Description Android App Development for Beginners DEVELOP ANDROID APPLICATIONS Learning basics skills and all you need to know to make successful Android Apps. This course is designed for students who

More information

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc.

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc. When the Servlet Model Doesn't Serve Gary Murphy Hilbert Computing, Inc. glm@hilbertinc.com Motivation? Many decision makers and programmers equate Java with servlets? Servlets are appropriate for a class

More information

Project: Minesweeper Online EDA095

Project: Minesweeper Online EDA095 Project: Minesweeper Online EDA095 Oscar Axelsson, D11, dat11oax@student.lu.se Elliot Jalgard, D10, ada10eja@student.lu.se Philip Mårtensson, D10, ada10pma@student.lu.se Daniel Olsson, D11, atf10dol@student.lu.se

More information

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No # 09 Lecture No # 40 This is lecture forty of the course on

More information

Design Patterns. SE3A04 Tutorial. Jason Jaskolka

Design Patterns. SE3A04 Tutorial. Jason Jaskolka SE3A04 Tutorial Jason Jaskolka Department of Computing and Software Faculty of Engineering McMaster University Hamilton, Ontario, Canada jaskolj@mcmaster.ca November 18/19, 2014 Jason Jaskolka 1 / 35 1

More information

Android Basics Nanodegree Syllabus

Android Basics Nanodegree Syllabus Android Basics Nanodegree Syllabus Before You Start This is an entry-level, single term Nanodegree program with no prior programming experience required. Support Options We are here to support you every

More information

Case Study. Mobile-based App for Stock Analysis and Stock Experiences_final Brainvire Infotech Pvt Ltd Page 1 of 1

Case Study. Mobile-based App for Stock Analysis and Stock Experiences_final Brainvire Infotech Pvt Ltd Page 1 of 1 Case Study Mobile-based App for Stock Analysis and Stock Experiences_final www.brainvire.com 2013 Brainvire Infotech Pvt Ltd Page 1 of 1 Client Requirement This is a stock-based mobile application. The

More information

Channel Allocation for Social Networking Features on Publish/Subscribe-based Mobile Application

Channel Allocation for Social Networking Features on Publish/Subscribe-based Mobile Application Allocation for Social Networking Features on Publish/Subscribe-based Mobile Application Alfian Ramadhan, Achmad Imam Kistijantoro Laboratory of Distributed System School of Electrical Engineering and Informatics,

More information

NEO OPC Client Driver. The NEO OPC Client can be launched by configuring an OPC Link from the New Link or Add Link dialog as the followings:

NEO OPC Client Driver. The NEO OPC Client can be launched by configuring an OPC Link from the New Link or Add Link dialog as the followings: The configuration program provides a built-in OPC UA Client that enables connections to OPC Servers. The NEO OPC Client is built with the OPC Client SDK and can be used to interactively browse and retrieve

More information

IERG 4080 Building Scalable Internet-based Services

IERG 4080 Building Scalable Internet-based Services Department of Information Engineering, CUHK MScIE 2 nd Semester, 2015/16 IERG 4080 Building Scalable Internet-based Services Lecture 9 Web Sockets for Real-time Communications Lecturer: Albert C. M. Au

More information

What s new in SketchUp Pro?

What s new in SketchUp Pro? What s new in SketchUp Pro? SketchUp Pro (Desktop) Making Information Modeling Useful Ultimately, we think BIM is about using information in your model to make better buildings. Our focus is to help users

More information

Mobile & More: Preparing for the Latest Design Trends

Mobile & More: Preparing for the Latest Design Trends February 26, 2015 Mobile & More: Preparing for the Latest Design Trends LATEST TRENDS Responsive Takes Over Material Is the New Flat Hero Images Getting Bigger Interactions Are Micro Video in the Background

More information

RAVENNA-2-SAP Converter Installation + Operation Guide

RAVENNA-2-SAP Converter Installation + Operation Guide RAVENNA-2-SAP Converter Installation + Operation Guide Version 1.0 September 2016 RAVENNA-2-SAP Converter Guide 1 Table of Contents: 1 LEGAL 3 1.1 LICENSE 3 1.2 DISCLAIMER 3 2 INTRODUCTION 4 2.1 BACKGROUND

More information

SchoolMessenger App. Teacher User Guide - Web. West Corporation. 100 Enterprise Way, Suite A-300. Scotts Valley, CA

SchoolMessenger App. Teacher User Guide - Web. West Corporation. 100 Enterprise Way, Suite A-300. Scotts Valley, CA SchoolMessenger App Teacher User Guide - Web West Corporation 100 Enterprise Way, Suite A-300 Scotts Valley, CA 95066 800-920-3897 www.schoolmessenger.com Contents Welcome!... 3 SchoolMessenger and the

More information

Java GUI Testing Tools

Java GUI Testing Tools Java GUI Testing Tools Well, this is my take, and while I try to be unbiased, I *am* the author of one of the frameworks. Be sure to take a look at some of the yahoo java-guitesting archives as well; there

More information

Module 3 Web Component

Module 3 Web Component Module 3 Component Model Objectives Describe the role of web components in a Java EE application Define the HTTP request-response model Compare Java servlets and JSP components Describe the basic session

More information

(Refer Slide Time: 1:09)

(Refer Slide Time: 1:09) Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecturer # 30 UDP and Client Server Good day, today we will start our discussion

More information

CONTENTS. System Requirements FAQ Webcast Functionality Webcast Functionality FAQ Appendix Page 2

CONTENTS. System Requirements FAQ Webcast Functionality Webcast Functionality FAQ Appendix Page 2 VIOCAST FAQ CONTENTS System Requirements FAQ... 3 Webcast Functionality... 6 Webcast Functionality FAQ... 7 Appendix... 8 Page 2 SYSTEM REQUIREMENTS FAQ 1) What kind of Internet connection do I need to

More information

Introduction to Programming Style

Introduction to Programming Style Introduction to Programming Style Thaddeus Aid The IT Learning Programme The University of Oxford, UK 30 July, 2013 Abstract Programming style is the part of the program that the human reads and the compiler

More information

[PDF] BEGINNING ANDROID 4 GAMES DEVELOPMENT CODE DOWNLOAD

[PDF] BEGINNING ANDROID 4 GAMES DEVELOPMENT CODE DOWNLOAD 10 December, 2017 [PDF] BEGINNING ANDROID 4 GAMES DEVELOPMENT CODE DOWNLOAD Document Filetype: PDF 428.15 KB 0 [PDF] BEGINNING ANDROID 4 GAMES DEVELOPMENT CODE DOWNLOAD Android might not be the best choice

More information

learn programming the right way

learn programming the right way Coding 101 learn programming the right way 1 INTRODUCTION Before you begin learning how to code, it s first useful to discuss why you would want to learn web development. There are lots of good reasons

More information

Tishik Int. University / College of Science / IT Dept. This Course based mainly on online sources ADVANCED MOBILE APPLICATIONS / Spring 1

Tishik Int. University / College of Science / IT Dept. This Course based mainly on online sources ADVANCED MOBILE APPLICATIONS / Spring 1 ADVANCED MOBILE APPLICATIONS / 2018-2019 Spring Tishik Int. University / College of Science / IT Dept. Presented By: Mohammad Salim Al-Othman For 4 th Grade Students This Course based mainly on online

More information

(Refer Slide Time: 1:12)

(Refer Slide Time: 1:12) Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Lecture 06 Android Studio Setup Hello, today s lecture is your first lecture to watch android development.

More information

Benefits of Concurrency in Java & Android: Program Structure

Benefits of Concurrency in Java & Android: Program Structure Benefits of Concurrency in Java & Android: Program Structure Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University

More information

Introduction to Z-Wave SmartStart. Whitepaper

Introduction to Z-Wave SmartStart. Whitepaper Introduction to Z-Wave SmartStart Whitepaper TABLE OF CONTENTS Summary... 3 Abbreviations and Terminology... 3 Z-Wave SmartStart under the Hood... 5 Improved Inclusion Process...5 QR Data Structure...7

More information

This is a talk given by me to the Northwest C++ Users Group on May 19, 2010.

This is a talk given by me to the Northwest C++ Users Group on May 19, 2010. This is a talk given by me to the Northwest C++ Users Group on May 19, 2010. 1 I like this picture because it clearly shows what is private and what is shared. In the message-passing system, threads operate

More information

Table of Contents. 1. Introduction 1. 1 Overview Business Context Glossary...3

Table of Contents. 1. Introduction 1. 1 Overview Business Context Glossary...3 Table of Contents 1. Introduction 1. 1 Overview......2 1. 2 Business Context.. 2 1. 3 Glossary...3 2. General Description 2. 1 Product/System Functions..4 2. 2 User Characteristics and Objectives 4 2.

More information

Acknowledgments...xvii. Introduction... Chapter 1: Getting Started Chapter 2: Build a Hi-Lo Guessing Game App!... 19

Acknowledgments...xvii. Introduction... Chapter 1: Getting Started Chapter 2: Build a Hi-Lo Guessing Game App!... 19 Brief Contents Acknowledgments...xvii Introduction... xix Chapter 1: Getting Started... 1 Chapter 2: Build a Hi-Lo Guessing Game App!... 19 Chapter 3: Creating a GUI for Our Guessing Game... 43 Chapter

More information

RBDIGITAL START GUIDE

RBDIGITAL START GUIDE RBDIGITAL START GUIDE Summary Summary...1 What is RBdigital?...1 Objectives...1 First steps...2 Obtaining magazines with RBdigital...4 Managing my collection...6 Read with a mobile device...7 What is RBdigital?

More information

State of jquery Fall John Resig

State of jquery Fall John Resig State of jquery Fall 2010 John Resig State of the Project New Releases jquery 1.4.3 / jquery 1.4.4 Official Plugins: jquery Templating jquery Data Linking jquery Mobile jquery 1.4.3 JSLint Modularity

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

CSC 2209: CLOUD STORAGE FINAL PROJECT

CSC 2209: CLOUD STORAGE FINAL PROJECT CSC 2209: CLOUD STORAGE FINAL PROJECT DAVID SOLYMOSI AND JIMMY ZHU 1. High Level Overview We implemented a backup and sync service with a focus on minimizing network traffic at the cost of local storage

More information

SchoolMessenger App. User Guide - Mobile (Android) 100 Enterprise Way, Suite A-300. Scotts Valley, CA

SchoolMessenger App. User Guide - Mobile (Android) 100 Enterprise Way, Suite A-300. Scotts Valley, CA COMMUNICATE SchoolMessenger App User Guide - Mobile (Android) West Corporation 100 Enterprise Way, Suite A-300 Scotts Valley, CA 95066 888-527-5225 www.schoolmessenger.com Table of Contents WELCOME!...

More information

Progressive Authentication in ios

Progressive Authentication in ios Progressive Authentication in ios Genghis Chau, Denis Plotnikov, Edwin Zhang December 12 th, 2014 1 Overview In today s increasingly mobile-centric world, more people are beginning to use their smartphones

More information

Programming in Android. Nick Bopp

Programming in Android. Nick Bopp Programming in Android Nick Bopp nbopp@usc.edu Types of Classes Activity This is the main Android class that you will be using. These are actively displayed on the screen and allow for user interaction.

More information

Viewer 2 Beta Frequently Asked Questions

Viewer 2 Beta Frequently Asked Questions Viewer 2 Beta GENERAL Why did you create Viewer 2 and who is the primary audience for this viewer? Viewer 1.23 is the culmination of over ten years of work and it has helped to create the Second Life that

More information

Android Overview. Most of the material in this section comes from

Android Overview. Most of the material in this section comes from Android Overview Most of the material in this section comes from http://developer.android.com/guide/ Android Overview A software stack for mobile devices Developed and managed by Open Handset Alliance

More information

CS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers

CS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers CS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers 1 Critical sections and atomicity We have been seeing that sharing mutable objects between different threads is tricky We need some

More information

Firefox 4 for Mobile Reviewer s Guide. Contact us:

Firefox 4 for Mobile Reviewer s Guide. Contact us: Reviewer s Guide Contact us: press@mozilla.com TABLE OF Contents About Mozilla 1 Get Started 2 Type Less, Browse More 3 Get Up and Go 4 Customize and Go 6 Favorite Features 7 The Cutting Edge 8 about Mozilla

More information

Laboratory 1: Eclipse and Karel the Robot

Laboratory 1: Eclipse and Karel the Robot Math 121: Introduction to Computing Handout #2 Laboratory 1: Eclipse and Karel the Robot Your first laboratory task is to use the Eclipse IDE framework ( integrated development environment, and the d also

More information

A Web-Based Application for Automatic Evaluation of Programming Assignments

A Web-Based Application for Automatic Evaluation of Programming Assignments University of Nevada, Reno A Web-Based Application for Automatic Evaluation of Programming Assignments A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science

More information

Introduction What is Android?

Introduction What is Android? Introduction What is Android? CS 2046 Mobile Application Development Fall 2010 Everything you know is wrong Most desktop/web applications: Large screen size vs. Everything you know is wrong Most desktop/web

More information

The Client Server Model and Software Design

The Client Server Model and Software Design The Client Server Model and Software Design Prof. Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Taipei, TAIWAN MCSE Lab, NTUT, TAIWAN 1 Introduction

More information

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

CPS 310 midterm exam #1, 2/19/2016

CPS 310 midterm exam #1, 2/19/2016 CPS 310 midterm exam #1, 2/19/2016 Your name please: NetID: Answer all questions. Please attempt to confine your answers to the boxes provided. For the execution tracing problem (P3) you may wish to use

More information

Web & Automotive. Paris, April Dave Raggett

Web & Automotive. Paris, April Dave Raggett Web & Automotive Paris, April 2012 Dave Raggett 1 Aims To discuss potential for Web Apps in cars Identify what kinds of Web standards are needed Discuss plans for W3C Web & Automotive Workshop

More information

INTRODUCTION. Chris Claterbos, Vlamis Software Solutions, Inc. REVIEW OF ARCHITECTURE

INTRODUCTION. Chris Claterbos, Vlamis Software Solutions, Inc. REVIEW OF ARCHITECTURE BUILDING AN END TO END OLAP SOLUTION USING ORACLE BUSINESS INTELLIGENCE Chris Claterbos, Vlamis Software Solutions, Inc. claterbos@vlamis.com INTRODUCTION Using Oracle 10g R2 and Oracle Business Intelligence

More information

ELET4133: Embedded Systems. Topic 3 Eclipse Tour & Building a First App

ELET4133: Embedded Systems. Topic 3 Eclipse Tour & Building a First App ELET4133: Embedded Systems Topic 3 Eclipse Tour & Building a First App Agenda In this class we will look at the Eclipse IDE We will examine it s various parts when working on an application We will load

More information

SchoolMessenger App. User Guide - Mobile (Android) 100 Enterprise Way, Suite A-300. Scotts Valley, CA

SchoolMessenger App. User Guide - Mobile (Android) 100 Enterprise Way, Suite A-300. Scotts Valley, CA COMMUNICATE SchoolMessenger App User Guide - Mobile (Android) West Corporation 100 Enterprise Way, Suite A-300 Scotts Valley, CA 95066 888-527-5225 www.schoolmessenger.com Table of Contents WELCOME!...

More information

Networking, Java threads and synchronization. PRIS lecture 4 Fredrik Kilander

Networking, Java threads and synchronization. PRIS lecture 4 Fredrik Kilander Networking, Java threads and synchronization PRIS lecture 4 Fredrik Kilander OSI Application Presentation Session Transport Network Data link Physical TCP/IP Application Transport Internet Host-to-network

More information

Chapter 5.6 Network and Multiplayer

Chapter 5.6 Network and Multiplayer Chapter 5.6 Network and Multiplayer Multiplayer Modes: Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement Latency sensitive 2 Multiplayer Modes: Shared I/O Input

More information

From: Sudarshan N Raghavan (770)

From: Sudarshan N Raghavan (770) Spectrum Software, Inc. 11445 Johns Creek Pkwy. Suite 300 Duluth, GA 30097 www.spectrumscm.com Subject: SpectrumSCM Plugin for the Eclipse Platform Original Issue Date: February 2 nd, 2005 Latest Update

More information

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2 Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design

More information

Let s Hack NFC. How does NFC work? How could we hack it? Where are the weaknesses? What are the security implications?

Let s Hack NFC. How does NFC work? How could we hack it? Where are the weaknesses? What are the security implications? Geoffrey Vaughan Let s Hack NFC How does NFC work? How could we hack it? Where are the weaknesses? What are the security implications? Security Compass and NFC Currently we are devoting a lot of energy

More information

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I BASIC COMPUTATION x public static void main(string [] args) Fundamentals of Computer Science I Outline Using Eclipse Data Types Variables Primitive and Class Data Types Expressions Declaration Assignment

More information

Microsoft SharePoint 2010

Microsoft SharePoint 2010 BrainStorm Quick Start Card for Microsoft SharePoint 2010 Getting Started Microsoft SharePoint 2010 brings together your organization s people, documents, information, and ideas in a customizable space

More information

COMP390 (Design &) Implementation

COMP390 (Design &) Implementation COMP390 (Design &) Implementation Phil (& Dave s) rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (and a chance for me to try out some features

More information

Julia Eclipse Plugin User Manual. Version 2.6.0

Julia Eclipse Plugin User Manual. Version 2.6.0 Version 2.6.0 Table of Contents Introduction Installation Settings Running Julia Navigating the Results Managing analyses results Extraction of the application under analysis Julia Java Project Wizard

More information

Julia Eclipse Plugin User Manual Table of Contents

Julia Eclipse Plugin User Manual Table of Contents Julia Eclipse Plugin User Manual Table of Contents Introduction Installation Settings Running Julia Navigating the Results Managing analyses results Extraction of the application under analysis Julia Java

More information

SchoolMessenger App. Teacher User Guide - Web. West Corporation. 100 Enterprise Way, Suite A-300. Scotts Valley, CA

SchoolMessenger App. Teacher User Guide - Web. West Corporation. 100 Enterprise Way, Suite A-300. Scotts Valley, CA SchoolMessenger App Teacher User Guide - Web West Corporation 100 Enterprise Way, Suite A-300 Scotts Valley, CA 95066 800-920-3897 www.schoolmessenger.com Contents Welcome!... 3 SchoolMessenger and the

More information

Remodeling Your Office A New Look for the SAS Add-In for Microsoft Office

Remodeling Your Office A New Look for the SAS Add-In for Microsoft Office Paper SAS1864-2018 Remodeling Your Office A New Look for the SAS Add-In for Microsoft Office ABSTRACT Tim Beese, SAS Institute Inc., Cary, NC Millions of people spend their weekdays in an office. Occasionally

More information

Lecture 21 Concurrent Programming

Lecture 21 Concurrent Programming Lecture 21 Concurrent Programming 13th November 2003 Leaders and followers pattern Problem: Clients periodically present service requests which requires a significant amount of work that along the way

More information

MongoDB Web Architecture

MongoDB Web Architecture MongoDB Web Architecture MongoDB MongoDB is an open-source, NoSQL database that uses a JSON-like (BSON) document-oriented model. Data is stored in collections (rather than tables). - Uses dynamic schemas

More information

Personal Health Assistant: Final Report Prepared by K. Morillo, J. Redway, and I. Smyrnow Version Date April 29, 2010 Personal Health Assistant

Personal Health Assistant: Final Report Prepared by K. Morillo, J. Redway, and I. Smyrnow Version Date April 29, 2010 Personal Health Assistant Personal Health Assistant Ishmael Smyrnow Kevin Morillo James Redway CSE 293 Final Report Table of Contents 0... 3 1...General Overview... 3 1.1 Introduction... 3 1.2 Goal...3 1.3 Overview... 3 2... Server

More information

Overview of Patterns: Introduction

Overview of Patterns: Introduction : Introduction d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Introduction

More information

JIVE: Dynamic Analysis for Java

JIVE: Dynamic Analysis for Java JIVE: Dynamic Analysis for Java Overview, Architecture, and Implementation Demian Lessa Computer Science and Engineering State University of New York, Buffalo Dec. 01, 2010 Outline 1 Overview 2 Architecture

More information

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement. CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.

More information

Apache Thrift Introduction & Tutorial

Apache Thrift Introduction & Tutorial Apache Thrift Introduction & Tutorial Marlon Pierce, Suresh Marru Q & A TIOBE Index Programming Language polyglotism Modern distributed applications are rarely composed of modules written in a single language.

More information

CANVAS TEACHER IOS GUIDE

CANVAS TEACHER IOS GUIDE CANVAS TEACHER IOS GUIDE This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike License Table of Contents Navigation...4 How do I download the Teacher app on my ios device?...5

More information

CUNA. A GPS-based Navigation Aid. for Carleton University. Honours Project (COMP 4905) By Wakee Ho. Supervised by Dr. Tony White

CUNA. A GPS-based Navigation Aid. for Carleton University. Honours Project (COMP 4905) By Wakee Ho. Supervised by Dr. Tony White CUNA A GPS-based Navigation Aid for Carleton University Honours Project (COMP 4905) By Wakee Ho Supervised by Dr. Tony White School of Computer Science Carleton University Ottawa, Ontario Winter 2010 Abstract

More information

From EC2 to Alex Tolley

From EC2 to Alex Tolley From EC2 to AppEngineJava @ Alex Tolley alexandertolley@gmail.com June 2nd, 2009 Why Port to AppEngine? 1. Closer to "Big Switch" idea plug and play. Why Port to AppEngine? 2. Cheaper vs EC2 costs Basic

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK A REVIEW ON THE ARCHITECTURE OF ANDROID IN SMART PHONES RAVNEET KAUR T. BAGGA 1,

More information

DATA SECURITY MANAGEMENT. Chris Hare INSIDE. What is a Network? Network Devices; Hubs; Repeaters; Bridges; Routers; Switches; Network

DATA SECURITY MANAGEMENT. Chris Hare INSIDE. What is a Network? Network Devices; Hubs; Repeaters; Bridges; Routers; Switches; Network 87-01-01 DATA SECURITY MANAGEMENT NETWORK TECHNOLOGIES FOR INFORMATION SECURITY PRACTITIONERS: PART 1 Chris Hare INSIDE What is a Network? Network Devices; Hubs; Repeaters; Bridges; Routers; Switches;

More information

Around Android. Essential Android features illustrated by a walk through a practical example

Around Android. Essential Android features illustrated by a walk through a practical example Around Android Essential Android features illustrated by a walk through a practical example By Stefan Meisner Larsen, Trifork. sml@trifork.dk. Twitter: stefanmeisner Agenda Introduction to MoGuard Alert

More information

COMP390 (Design &) Implementation

COMP390 (Design &) Implementation COMP390 (Design &) Implementation A rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (With thanks to Dave Shield) Design & Implementation What

More information

2016 Survey MANAGING APPLE DEVICES IN HIGHER EDUCATION

2016 Survey MANAGING APPLE DEVICES IN HIGHER EDUCATION 2016 Survey MANAGING APPLE DEVICES IN HIGHER EDUCATION 2016 Survey MANAGING APPLE DEVICES IN HIGHER EDUCATION The annual Jamf Trends Survey looked at Apple in higher education evaluating growth, key drivers

More information

MAC Theory. Chapter 7. Ad Hoc and Sensor Networks Roger Wattenhofer

MAC Theory. Chapter 7. Ad Hoc and Sensor Networks Roger Wattenhofer MAC Theory Chapter 7 7/1 Seeing Through Walls! [Wilson, Patwari, U. Utah] Schoolboy s dream, now reality thank to sensor networks... 7/2 Rating Area maturity First steps Text book Practical importance

More information

Project 2: Part 1: RPC and Locks

Project 2: Part 1: RPC and Locks Project 2: Part 1: RPC and Locks Due: 11:59PM Thursday, October 14, 2010 1 Introduction In this series of labs, you will implement a fully functional distributed file server with the Frangipani architecture

More information