Wireless Internet Tutoring System Design Document. Nadya Belov, Dmitriy Bespalov, Ilya Braude, Immanuel Comer, Daniel Lapadat, Andrew Ragone

Size: px
Start display at page:

Download "Wireless Internet Tutoring System Design Document. Nadya Belov, Dmitriy Bespalov, Ilya Braude, Immanuel Comer, Daniel Lapadat, Andrew Ragone"

Transcription

1 Wireless Internet Tutoring System Design Document Nadya Belov, Dmitriy Bespalov, Ilya Braude, Immanuel Comer, Daniel Lapadat, Andrew Ragone

2 Contents Introduction 4. Goals and Guidelines Usability Testing General 4 2. Canvas Services Network Message Parser Client 5 3. ClientCanvas GUI WitsClient ClientSessionManager ClientServiceManager Server 6 4. ServerCanvas Session ServerServiceManager ServiceDescription User ServerSessionManager Client-Server Communication Protocol 7 6 UML Design 8 2

3 List of Figures Top-Level System Architecture General Architecture Client Architecture Server Architecture Data Flow Diagram

4 Introduction The Wireless Internet Tutoring System WITS, overcomes the problems of text-based messaging by allowing for an environment where text, symbols, and graphics can be manipulated and transmitted by persons involved in the tutoring session. WITS is the integration of special software with bleeding-edge hardware available today. WITS allows a tutor to help a student while being geographically separated. It provides the tools which allow a tutor to quickly and efficiently convey his knowledge about a particular math subject to his tutee using textual and graphical representations. This document presents the architectural design of WITS. The design outlines the high-level and low-level architecture specifying all of the objects that are necessary in WITS as well as their interaction with each other and the flow of information in the system. The architectural diagrams are presented using UML and provide detailed class headers along with several message protocols that are used for inter-component interaction. The proposed design is lightly coupled, modular and extensible. The overall architecture of WITS can be described as a client-server architecture, however, a notion of services is introduced. These services need not be specifically tailored to WITS and may be stand-alone applications that will service WITS along with other systems. A significant push in the light coupling design of the WITS system was done by the fast-paced technological advancement in the current world of computing.. Goals and Guidelines In assuring that the WITS is delivered on-time and satisfies all of the original requirements specified in the Requirements Document and reinforced in this document, careful outlining of development schedules and procedures as well as testing must be implemented. In order to assure that our system will be delivered on-time, our team has established development and testing guidelines. We plan on developing our client and server components concurrently. In developing each of those components, we will implement an evolutionary model to ensure that rudimentary functionality has been established before any complex features are implemented. At the completion of each of the development phases which will include a new set of functionalities, extensive testing will be implemented to make sure that the system as it currently stands can run on the chosen hardware (Treo 600) and a demonstration with a basic scenario can be accomplished..2 Usability Testing Usability of a particular system can augment the user in accomplishing a set task. In order to insure that WITS is usable by users of all skill levels (beginner, intermediate and expert), computational and heuristic usability testing methods will be employed at the final stage of testing. This effort will furthermore assist us in the creation of final documentation which will include user manuals and tutorials. 2 General 2. Canvas This is an abstract class that both ServerCanvas and ClientCanvas implement. Canvas provides and interface to receive and provide information into the chat, graphics and caption logs. 2.2 Services Services provide the system with additional capabilities that would not be included otherwise. Reasons may include CPU speeds, memory, complexity, or intensive calculations. Our client system is limited by the device that it is running on. Services allow the client to perform tasks that it otherwise would not have the power to 4

5 do. An example of this is LATEX rendering. The application that does the latex rendering is several Megabytes in size and would be processed slowly if rendered on the client. Services allow the clients to render the latex independently. They are autonomous and know nothing about the WITS system. They can implement their own protocols and even be distributed throughout the network or run locally. The modular design approach used in making the services and independent and non-critical components allows for a significant amount of freedom in the range of systems the WITS system can run on. If clients are on opposite ends of the world they can have their local services render the latex for them, hardware and software capabilities permitting. It must be noted that services are not limited to just rendering latex or even rendering capabilities. As our system evolves and becomes more sophisticated, so will the services that may be associated with our system that will provide WITS clients with certain capabilities. As shown in the UML diagram depicting the architecture of the WITS Server, the WitsServer object will contain a ServiceManager object that will be responsible for providing the services to the server. If the client, however, already knows about the available services, it will be able to use these services without accessing the WitsServer. This modular design also allow the services to provide other systems with their service. The services may have capabilities to make themselves known. Given such capabilities, both the client and server side of our architecture will be allowed to utilize these services simultaneously and independently. 2.3 Network The Network object sends and receives data from the network. Because of the time-critical nature of data exchanged between the server and client, our Network layer uses the TCP protocol as it s underlying transport format. TCP guarantees that data is received in the order that it was sent, and that it does not get corrupted along the way. WITS uses it s own protocol, described in Section 5 to handle client-server communications. Translation between Java objects and our protocol is handled by the Parser (Section 2.3.2). The Network object contains a Java Socket that it uses to communicate with the physical network. The exact Java code for establishing and maintaining a Java Socket will vary on the server and client platforms, but the function and interface are the same Message The Message class represents all messages that are passed throughout our system. Specific instances of this class can express information such as shape additions and deletions, chat messages, and session management directives Parser The Parser translates between the Message class and the WITS communications protocol. Received data gets transformed into a Message object and propagated upwards in the system. Conversely, Message objects are translated into a representation consistent with our protocol and sent through the network. 3 Client 3. ClientCanvas The ClientCanvas implements the Canvas object discussed prior in this document. The ClientCanvas object is customized specifically for the client-side of the WITS system and is responsible for providing the user-interface with which a user will interact with. ClientCanvas is a member of the GUI object. Together, the ClientCanvas 5

6 object and the GUI object provide a complete graphical user interface to the user. Specifically, the WITS system contains a notion of modes which are specific screen arrangements each providing a specific task for the user. For example, there are Draw and SplitScreen modes. ClientCanvas provides the user interface for the modes and augments the GUI object in capturing all of the changes made by the local user as well as the changes made by the other users in the same session. 3.2 GUI The GUI object, briefly mentioned in the description of the ClientCanvas object is a major component of the userinterface part of the WITS Client. The GUI object, contains a ClientCanvas object and uses it to create several modes which a user may use to enter and view information while using the WITS system. The modes are Draw, Text, SplitScreen and Options modes. For example, the SplitScreen mode provides the functionality of both the Draw and Text modes by displaying both and separating them via a divider. While the ClientCanvas is used to compose the modes, the GUI object will be responsible for acting on user-generated events such as various button presses or drawings and will furthermore provide the user with updates that were generated by the WitsServer object in an effort to bring all members of a session up-to date. 3.3 WitsClient This is placeholder class that has access to all objects on the client side. This is needed in case threading is not implemented on the client operating system. If it is not, a scheduling algorithm will be placed here that will poll the appropriate classes 3.4 ClientSessionManager The ClientSessionManger object contains information about the WitsServer. This information includes the IP address and port of the server, the user name, and the current session that the user is in. This will enable the client to automatically reconnect, should the connection be severed, and help in identifying the client when it initiates communications. 3.5 ClientServiceManager The ClientServiceManager object maintains a list of services available to the client. When an object cannot be serviced or rendered by the GUI and Canvas, it is passed to the Service Manager. The Service Manager tries to satisfy the request by using one of the services that are available to it. The output of the service or failure are returned back to the user. For an example, consider a LATEX string as input. The GUI and Canvas are not able to render the math formula due to device limitations. Therefore, the latex code is sent to a LATEX rendering service through the Service Manager. A JPEG image is then returned back to the GUI. 4 Server 4. ServerCanvas The ServerCanvas object implements the Canvas object described earlier in this document. The server component of the WITS system does not contain any graphical components or a user-interface because the server does not have a single user. ServerCanvas keeps an up-to-date representation of the session, including the shape modification and captions history, and the chat history. This will allow for new users to a session to instantly receive the current state for that tutoring session. A similar technique will be applied to users who reconnect 6

7 after a dropped connection. Updates to the canvas by a client will be propagated to the rest of the clients in the same session. 4.2 Session A Session objects describes a session between a tutor and several tutees. Each Session consists of a name, list of Users ( 4.4) in the session, and a ServerCanvas object. The Session object is responsible for propagation changes from a single client to the rest of the users in the session. 4.3 ServerServiceManager The ServerServiceManager handles all of the services present to the network. Only descriptive information about the services is stored within the Server list of ServiceDescriptions. The implementation of each service is hidden from the Server. Clients can obtain information about the available services on the network from this component. The server will be able to use these services as well if that is needed ServiceDescription The ServiceDescription object contains a host name, a port number, a service name, and a description of the service that it provides. 4.4 User The User object holds a user name, and the Network object that the user is using to communicate with the server. 4.5 ServerSessionManager The Session Manager handles all sessions that exist on the server. This is the object that users will initially establish a connection with before being given to a Session. The ServerSessionManager also handles the creation, removal of Sessions, the addition of users to a Session and the removal of users from a Session. 5 Client-Server Communication Protocol The main task of the Network Component is to interpret messages from the components above it and transfer them into a message suitable for transfer across the network. This message should contain any updates, additions and deletions done to the current state of the world in the session. The message that will carry all of this information must be very flexible, modular and extensible. The message format, the protocol of which is described below, will be passed onto the network component as a string. The message will consist of the following format: Magic String Version Number Message Class Message Type Message Message Body Length wits 8 bits 4 bits 4 bits 8 bits Message Length bytes As can be seen from above, a concept of a magic number specified in our protocol as Magic String is used as a means of authentication to assuring that the message originated from a WITS client or server. Furthermore, a version number is used to allow flexibility in the WITS system where it may be necessary to run a client and a server that are of different versions. Each version may have more or less capabilities and needs and by specifying the version number, the server will be able to service that particular client accordingly, or vice versa. Message 7

8 Class and Message Type are used to specify the exact operation and message that this particular message is used to carry. That is, for example, an update of a shape will have to have to specify that the Message Class is an update and Message Type is shape. Using these two concepts we can make the message protocol flexible enough to allow for additions and updates to the protocol without having to change the format of the message and thus allowing for multiple versions. The last two components of the message, Message Length and Message Body are used to specify the specifics that would come with the given Message Class and Message Type. To continue with the example presented above (shape update), the specific shape object description is saved and placed in the Message Body. Let us for example suppose, that the particular shape is a triangle. The Message Body would incorporate the length of each side and the angles of the triangle. The message protocol is flexible in allowing for variable length messages that can be composed of different information in the Message Body. Bandwidth is limited on the hardware platform, Treo, and it is impractical to pad some messages that will not necessarily need to be as large as others that may need to be significantly larger in size. The details of the actual identifiers used to specify the specific type of Message Class and Message Type are left to implementation and will be specified in the final documentation. 6 UML Design WitsServer propagate update update from a client propagate update WitsClient WitsClient WitsClient... Figure : Top-Level System Architecture 8

9 ServerCanvas ClientCanvas -socket: Socket -parser: Parser Network +getdata(): byte[] +senddata(byte[]): void -chatlog: Vector -figures: Vector -caption: String Canvas +drawjpeg(obj:witjpeg): void +drawcircle(obj:witcircle): void +drawrectangle(obj:witrect): void +drawline(obj:witline): void +drawtriangle(obj:wittriangle): void +drawtext(obj:string): void +drawfreehand(coordinates:vector): void +addchattext(text:string): void Parser +parse(data:byte[]): Message +encode(msg:message): byte[] Message +magic_str: String +version: int +class: String +type: String +message: String[] -name: String -network: Network -service_type: String Service LatexService +renderlatex(in latexcommand:string,out RenderedLatex:JPEG) Figure 2: General Architecture 9

10 data that GUI can not handle (service) data that GUI can handle -services_list: Vector -established_services: Vector ClientServiceManager +processmessage(message:message): Object WitsClient -session_manager: ClientSessionManager -gui: GUI -network: Network -service_manager: ClientServiceManager +processmessage(message:message): void -socket: Socket -parser: Parser Network +getdata(): byte[] +senddata(byte[]): void -name: String -network: Network -service_type: String * Service -name: String -server_ip: String -port: int ClientSessionManager +connect(): void +disconnect(): void -freehandbutton: JButton -linewidthbutton: JButton -linecolorbutton: JButton -shapesbutton: JButton -circlebutton: JButton -rectbutton: JButton -linebutton: JButton -arttextbutton: JButton -captionbutton: JButton -symbolbutton: JButton -drawmodebutton: JButton -chatmodebutton: JButton -splitmodebutton: JButton -preferencemodebutton: JButton -sendbutton: JButton -donecaptionbutton: JButton -chattext: JText -chatscrollbar: JScrollbar -userchattext: JText -captiontext: JText -drawpanel: JPanel -chatpane: JPanel -currentpanel: JPanel -splitmodepanel: JPanel -preferncemodepanel: JPanel +handlebuttonclick(button:jbutton): void +handlemouseclick(x:int,y:int,): void +handlemousemove(x:int,y:int,): void +handlekeyboard(letter:char): void +handlefreehandbutton(): void +handlelinewidthbutton(): void +handlelinecolorbutton(): void +handleshapesbutton(): void +handlecirclebutton(): void +handlerectbutton(): void +handlelinebutton(): void +handlearttextbutton(): void +handlecaptionbutton(): void +handlesymbolbutton(): void +handledrawmodebutton(): void +handlechatmodebutton(): void +handlesplitmodebutton(): void +handlepreferencemodebutton(): void +handlesendbutton(): void +handledonecaptionbutton(): void +eventmovesliptmode(): void GUI ClientCanvas Figure 3: Client Architecture 0

11 WitsServer -session_manager: SessionManager -service_manager: ServiceManager -sessions: Vector ServerSessionManager +addsession(): void +adduser(user:user,session:session): void +removesession(session:session): void +removeuser(user:user,session:session): void -service_list: Vector +getservicelist(): Vector +removeservice(name:string): void +addservice(service_description:servicedescription): void ServerServiceManager update from user stores update -canvas: ServerCanvas -users: Vector -name: String Session +processmessage(in message:message): void * +name: String +IP: String +port: int +service_type: String ServiceDescription * ServerCanvas propagate update User -name: String -network: Network -session: Session * list of services -socket: Socket -parser: Parser Network +getdata(): byte[] +senddata(byte[]): void Figure 4: Server Architecture GUI ClientServiceManager Service Network(for the service) ServiceServer Network(for WitsServer) Network(on WitsServer) User Session Users processmsg( msg ) sends data to sends data to be network sends msg according to Service Protocol passes JPG back returns JPG processes message passes JPG back passes JPG back draws JPG on Canvas sends data to sends data to passes msg to calls processmessage sends message to all users returns returns returns returns returns Figure 5: Data Flow Diagram

Assignment 2 Team Project: Distributed System and Application

Assignment 2 Team Project: Distributed System and Application Assignment 2 Team Project: Distributed System and Application Dr. Rajkumar Buyya and Dr. Maria Sossa Cloud Computing and Distributed Systems (CLOUDS) Laboratory School of Computing and Information Systems

More information

Educational Fusion. Implementing a Production Quality User Interface With JFC

Educational Fusion. Implementing a Production Quality User Interface With JFC Educational Fusion Implementing a Production Quality User Interface With JFC Kevin Kennedy Prof. Seth Teller 6.199 May 1999 Abstract Educational Fusion is a online algorithmic teaching program implemented

More information

International Journal of Current Research and Modern Education (IJCRME) ISSN (Online): ( Volume I, Issue II, 2016

International Journal of Current Research and Modern Education (IJCRME) ISSN (Online): (  Volume I, Issue II, 2016 A CASE STUDY OF IMPLEMENTING A GDB INTERFACE BETWEEN AN ARM BASED IC SIMULATOR AND GNU DEBUGGER H. S. Sachin Kumar* & Trisila Devi Nagavi** Department of Computer Science & Engineering, Sri Jaya Chamarajendra

More information

An Example. Unified Modelling Language - 2 ITNP090 - Object Oriented Software Design. Class diagram. Class diagram. Dr Andrea Bracciali

An Example. Unified Modelling Language - 2 ITNP090 - Object Oriented Software Design. Class diagram. Class diagram. Dr Andrea Bracciali An Example We are going to look at a small example where we input information and then ask questions about an er and their pet. Requirements are that we will be able to Unified Modelling Language - 2 ITNP090

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

Discover Robotics & Programming CURRICULUM SAMPLE

Discover Robotics & Programming CURRICULUM SAMPLE OOUTLINE 5 POINTS FOR EDP Yellow Level Overview Robotics incorporates mechanical engineering, electrical engineering and computer science - all of which deal with the design, construction, operation and

More information

Title Core TIs Optional TIs Core Labs Optional Labs. All None 1.1.6, 1.1.7, and Network Math All None None 1.2.5, 1.2.6, and 1.2.

Title Core TIs Optional TIs Core Labs Optional Labs. All None 1.1.6, 1.1.7, and Network Math All None None 1.2.5, 1.2.6, and 1.2. CCNA 1 Plan for Academy Student Success (PASS) CCNA 1 v3.1 Instructional Update # 2006-1 This Instructional Update has been issued to provide guidance on the flexibility that Academy instructors now have

More information

A Study on Information Connection Model using Rulebased Connection Platform

A Study on Information Connection Model using Rulebased Connection Platform A Study on Information Connection Model using Rulebased Connection Platform Heeseok Choi, Jaesoo Kim NTIS Center, Korea Institute of Science and Technology Information, Daejeon, Korea Abstract - National

More information

Higher National Unit Specification. General information for centres. Unit code: DH3J 34

Higher National Unit Specification. General information for centres. Unit code: DH3J 34 Higher National Unit Specification General information for centres Unit code: DH3J 34 Unit purpose: This Unit is designed to develop a broad knowledge of the concepts, principles, boundaries and scope

More information

Wireless Data Efficiency Get the Most Megabytes for Your Buck Mobile Explosion 08 Las Vegas, January 25, 2008

Wireless Data Efficiency Get the Most Megabytes for Your Buck Mobile Explosion 08 Las Vegas, January 25, 2008 Wireless Data Efficiency Get the Most Megabytes for Your Buck Mobile Explosion 08 Las Vegas, January 25, 2008 Peter Rysavy Rysavy Research http://www.rysavy.com 1 Copyright 2006-2008 Rysavy Research Agenda

More information

Marking Scheme for the Sample Exam Paper

Marking Scheme for the Sample Exam Paper INFORMATION SYSTEMS EXAMINATION BOARD BUSINESS SYSTEMS DEVELOPMENT CERTIFICATE IN INFORMATION AND COMMUNICATION TECHNOLOGY for the Sample Exam Paper As this is a sample paper, both the paper and the marking

More information

Operating- System Structures

Operating- System Structures Operating- System Structures 2 CHAPTER Practice Exercises 2.1 What is the purpose of system calls? Answer: System calls allow user-level processes to request services of the operating system. 2.2 What

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

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018 San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018 Course and Contact Information Instructor: Vidya Rangasayee Office Location: MH 213 Telephone:

More information

Mobile and Heterogeneous databases Distributed Database System Query Processing. A.R. Hurson Computer Science Missouri Science & Technology

Mobile and Heterogeneous databases Distributed Database System Query Processing. A.R. Hurson Computer Science Missouri Science & Technology Mobile and Heterogeneous databases Distributed Database System Query Processing A.R. Hurson Computer Science Missouri Science & Technology 1 Note, this unit will be covered in four lectures. In case you

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

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

Splitting the pattern into the model (this stores and manipulates the data and executes all business rules).

Splitting the pattern into the model (this stores and manipulates the data and executes all business rules). Tutorial 3 Answers Comp319 Software Engineering Object patterns Model View Controller Splitting the pattern into the model (this stores and manipulates the data and executes all business rules). View Controller

More information

SRD User Manual. Table of contents: Overview

SRD User Manual. Table of contents: Overview SRD User Manual Table of contents: 1. Overview 2. First use of SRD 3. The Sequence Information Script File format 4. The Sequence Links Script File format 5. Import new data to visualize 6. Intra-category

More information

Introduction - SENG 330. Object-Oriented Analysis and Design

Introduction - SENG 330. Object-Oriented Analysis and Design Introduction - SENG 330 Object-Oriented Analysis and Design SENG 330 Fall 2006 Instructor: Alex Thomo Email: thomo@cs.uvic.ca Office hours: Office Hours: TWF 12:30-1:30 p.m. Location: ECS 556 Objective:

More information

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 307: Software Engineering. Lecture 10: Software Design and Architecture CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office

More information

About Netscape Composer

About Netscape Composer An About Netscape Composer The pictures and directions in this handout are for Netscape Composer that comes with the Netscape Communicator 4.7 package available for free from Netscape s web site at http://www.netscape.com.

More information

Voluntary Product Accessibility Template (VPAT)

Voluntary Product Accessibility Template (VPAT) Voluntary Product Accessibility Template (VPAT) Date 2017-02-06 Name of Product Top Hat Lecture - Student - Android App Version Contact Steve Pascoe steve.pascoe+vpat@tophat.com Summary Table Criteria

More information

Welcome. Web Authoring: HTML - Advanced Topics & Photo Optimisation (Level 3) Richard Hey & Barny Baggs

Welcome. Web Authoring: HTML - Advanced Topics & Photo Optimisation (Level 3) Richard Hey & Barny Baggs Welcome Web Authoring: HTML - Advanced Topics & Photo Optimisation (Level 3) Richard Hey & Barny Baggs Health and Safety Course Information General Information Objectives To understand the need for photo

More information

Design Patterns in C++

Design Patterns in C++ Design Patterns in C++ Structural Patterns Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa March 23, 2011 G. Lipari (Scuola Superiore Sant Anna) Structural patterns March

More information

CAMERA User s Guide. They are most easily launched from the main menu application. To do this, all the class files must reside in the same directory.

CAMERA User s Guide. They are most easily launched from the main menu application. To do this, all the class files must reside in the same directory. CAMERA User s Guide 1 Quick Start CAMERA is a collection of concise, intuitive and visually inspiring workbenches for cache mapping schemes and virtual memory. The CAMERA workbenches are standalone applications

More information

eswt Requirements and High-Level Architecture Abstract Document Information Change History

eswt Requirements and High-Level Architecture Abstract Document Information Change History eswt Requirements and High-Level Architecture Abstract There is a need for a standardized UI API fit for embedded devices having fewer resources and smaller screen sizes than a desktop computer. The goal

More information

KF5008 Program Design & Development. Lecture 1 Usability GUI Design and Implementation

KF5008 Program Design & Development. Lecture 1 Usability GUI Design and Implementation KF5008 Program Design & Development Lecture 1 Usability GUI Design and Implementation Types of Requirements Functional Requirements What the system does or is expected to do Non-functional Requirements

More information

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

More information

[MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension

[MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension [MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications

More information

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 Introduction to User Stories CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 1 Goals Present an introduction to the topic of user stories concepts and terminology benefits and limitations

More information

Peer entities. Protocol Layering. Protocols. Example

Peer entities. Protocol Layering. Protocols. Example Peer entities Protocol Layering An Engineering Approach to Computer Networking Customer A and B are peers Postal worker A and B are peers Protocols A protocol is a set of rules and formats that govern

More information

Higher National Unit specification: general information

Higher National Unit specification: general information Higher National Unit specification: general information Unit code: FR23 35 Superclass: CB Publication date: August 2011 Source: Scottish Qualifications Authority Version: 01 Unit purpose The purpose of

More information

Roombots Robot-User 3D Interface

Roombots Robot-User 3D Interface Roombots Robot-User 3D Interface Project Specifications Sébastien GAY Department of Computer Science Institute of applied sciences (INSA) Lyon A document submitted for the degree of Engineer diploma Yet

More information

Table of Contents. Cisco Introduction to EIGRP

Table of Contents. Cisco Introduction to EIGRP Table of Contents Introduction to EIGRP...1 Introduction...1 Before You Begin...1 Conventions...1 Prerequisites...1 Components Used...1 What is IGRP?...2 What is EIGRP?...2 How Does EIGRP Work?...2 EIGRP

More information

St. Catherine s High School

St. Catherine s High School St. Catherine s High School Annual June 2015 Class: Senior 4 Subject: Computer Studies Total: Duration: 2 hrs Final Total: /100 MAKE SURE TO CHECK THAT YOU ARE GIVEN FIVE PRINTED PAGES Calculators may

More information

Introduction to Object Oriented Analysis and Design

Introduction to Object Oriented Analysis and Design A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,

More information

Java Support for developing TCP Network Based Programs

Java Support for developing TCP Network Based Programs Java Support for developing TCP Network Based Programs 1 How to Write a Network Based Program (In Java) As mentioned, we will use the TCP Transport Protocol. To communicate over TCP, a client program and

More information

firewalls perimeter firewall systems firewalls security gateways secure Internet gateways

firewalls perimeter firewall systems firewalls security gateways secure Internet gateways Firewalls 1 Overview In old days, brick walls (called firewalls ) built between buildings to prevent fire spreading from building to another Today, when private network (i.e., intranet) connected to public

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information

Asheville-Buncombe Technical Community College Department of Networking Technology. Course Outline

Asheville-Buncombe Technical Community College Department of Networking Technology. Course Outline Course Number: NET 226 Course Title: Routing and Switching II Class Hours: 1 Lab Hours: 4 Credit Hours: 3 Course Description: This course introduces WAN theory and design, WAN technology, PPP, Frame Relay,

More information

Wimba Classroom VPAT

Wimba Classroom VPAT Wimba Classroom VPAT The purpose of this Voluntary Product Accessibility Template, or VPAT, is to assist Federal contracting officials and other buyers in making preliminary assessments regarding the availability

More information

Interactr: an interaction diagram drawing tool

Interactr: an interaction diagram drawing tool Interactr: an interaction diagram drawing tool Software-ontwerp 2017-2018 Iteration 3 Contents 1 Introduction 2 2 General Information 2 2.1 Team Work............................... 2 2.2 Iterations................................

More information

Swing: Building GUIs in Java

Swing: Building GUIs in Java Swing: Building GUIs in Java ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland February 13, 2017 Outline 1 Introduction 2 Aside: Inner

More information

Lecture 2 Operating System Structures (chapter 2)

Lecture 2 Operating System Structures (chapter 2) Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 2 Operating System Structures (chapter 2) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The

More information

The World Wide Web is a technology beast. If you have read this book s

The World Wide Web is a technology beast. If you have read this book s What Is a Markup Language and Why Do I Care? The World Wide Web is a technology beast. If you have read this book s introduction, you should have at least a passing familiarity with how the Web started

More information

Model-Based Design for Large High Integrity Systems: A Discussion Regarding Model Architecture

Model-Based Design for Large High Integrity Systems: A Discussion Regarding Model Architecture Model-Based Design for Large High Integrity Systems: A Discussion Regarding Model Architecture By Mike Anthony and Jon Friedman MathWorks Inc, Natick, MA, 01760 INTRODUCTION From complex controls problems

More information

Module 3: Operating-System Structures. Common System Components

Module 3: Operating-System Structures. Common System Components Module 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1 Common

More information

SPEC Socket Programming

SPEC Socket Programming SPEC Socket Programming Logan Daum Department of Physics, Massachusetts Institute of Technology, Cambridge, Massachusetts, 02139 (Dated: August 13, 2010) In this project, a GUI for controlling motors and

More information

Title Core TIs Optional TIs Core Labs Optional Labs. 1.1 WANs All None None None. All None None None. All None 2.2.1, 2.2.4, 2.2.

Title Core TIs Optional TIs Core Labs Optional Labs. 1.1 WANs All None None None. All None None None. All None 2.2.1, 2.2.4, 2.2. CCNA 2 Plan for Academy Student Success (PASS) CCNA 2 v3.1 Instructional Update # 2006-1 This Instructional Update has been issued to provide guidance on the flexibility that Academy instructors now have

More information

Graphical User Interface Canvas Frame Event structure Platform-free GUI operations Operator << Operator >> Operator = Operator ~ Operator + Operator

Graphical User Interface Canvas Frame Event structure Platform-free GUI operations Operator << Operator >> Operator = Operator ~ Operator + Operator Graphical User Interface Canvas Frame Event structure Platform-free GUI operations Operator > Operator = Operator ~ Operator + Operator - Operator [] Operator size Operator $ Operator? Operator!

More information

Software System/Design & Architecture. Eng.Muhammad Fahad Khan Assistant Professor Department of Software Engineering

Software System/Design & Architecture. Eng.Muhammad Fahad Khan Assistant Professor Department of Software Engineering Software System/Design & Architecture Eng.Muhammad Fahad Khan Assistant Professor Department of Software Engineering Todays lecture Model View Controller (MVC) Copyright 2012 @ M.Fahad Khan 2 Model-View-Controller

More information

Unit 3: Congruence & Similarity

Unit 3: Congruence & Similarity Approximate Time Frame: 6 weeks Connections to Previous Learning: In previous grades, students made scale drawings of geometric figures and solved problems involving angle measure, surface area, and volume.

More information

SDMX self-learning package No. 3 Student book. SDMX-ML Messages

SDMX self-learning package No. 3 Student book. SDMX-ML Messages No. 3 Student book SDMX-ML Messages Produced by Eurostat, Directorate B: Statistical Methodologies and Tools Unit B-5: Statistical Information Technologies Last update of content February 2010 Version

More information

UNIT-IV BASIC BEHAVIORAL MODELING-I

UNIT-IV BASIC BEHAVIORAL MODELING-I UNIT-IV BASIC BEHAVIORAL MODELING-I CONTENTS 1. Interactions Terms and Concepts Modeling Techniques 2. Interaction Diagrams Terms and Concepts Modeling Techniques Interactions: Terms and Concepts: An interaction

More information

Slide 1 & 2 Technical issues Slide 3 Technical expertise (continued...)

Slide 1 & 2 Technical issues Slide 3 Technical expertise (continued...) Technical issues 1 Slide 1 & 2 Technical issues There are a wide variety of technical issues related to starting up an IR. I m not a technical expert, so I m going to cover most of these in a fairly superficial

More information

Compiler Theory Introduction and Course Outline Sandro Spina Department of Computer Science

Compiler Theory Introduction and Course Outline Sandro Spina Department of Computer Science Compiler Theory 001 - Introduction and Course Outline Sandro Spina Department of Computer Science ( course Books (needed during this My slides are based on the three books: Compilers: Principles, techniques

More information

CS211 Lecture: Modeling Dynamic Behaviors of Systems; Interaction Diagrams in UML

CS211 Lecture: Modeling Dynamic Behaviors of Systems; Interaction Diagrams in UML CS211 Lecture: Modeling Dynamic Behaviors of Systems; Interaction Diagrams in UML Objectives: 1. To introduce the notion of dynamic analysis 2. To show how to create and read Sequence Diagrams 3. To show

More information

IrDA INTEROPERABILITY

IrDA INTEROPERABILITY Part F:2 IrDA INTEROPERABILITY The IrOBEX protocol is utilized by the Bluetooth technology. In Bluetooth, OBEX offers same features for applications as within the IrDA protocol hierarchy and enabling the

More information

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions) By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable

More information

Lab 8. An Introduction to Objects

Lab 8. An Introduction to Objects Lab 8 An Introduction to Objects 1 Overview One of the characteristics, perhaps the most important, of a good designer is the ability to deal with abstractions or generalizations. In the process of learning

More information

Routing Basics. What is Routing? Routing Components. Path Determination CHAPTER

Routing Basics. What is Routing? Routing Components. Path Determination CHAPTER CHAPTER 5 Routing Basics This chapter introduces the underlying concepts widely used in routing protocols Topics summarized here include routing protocol components and algorithms In addition, the role

More information

Demonstrations and examples are a key part in most introductory physics student s learning

Demonstrations and examples are a key part in most introductory physics student s learning 2 Demonstrations and examples are a key part in most introductory physics student s learning process. Students are well versed in how gravity functions because they have experienced its effects first hand,

More information

JAVA ~ as opposed to Java Script

JAVA ~ as opposed to Java Script JAVA ~ as opposed to Java Script STEP ONE: INSTALLING JAVA DEVELOPMENT TOOLS [NetBeans IDE 7.3 ]:- To program with Java, the NetBeans IDE is a wise IDE to use. There are others. https://netbeans.org/downloads/index.html

More information

Software Requirements Specification (SRS) Graphical Model Editing Framework (GMEF) Motorola 1

Software Requirements Specification (SRS) Graphical Model Editing Framework (GMEF) Motorola 1 Software Requirements Specification (SRS) Graphical Model Editing Framework (GMEF) Motorola 1 Final Draft Due December 7, 2006 Authors: Greg Heil, Andrew Holder, Karli Lopez, Josh Detwiler Customer: Kabe

More information

Comparative analyses for the performance of Rational Rose and Visio in software engineering teaching

Comparative analyses for the performance of Rational Rose and Visio in software engineering teaching Journal of Physics: Conference Series PAPER OPEN ACCESS Comparative analyses for the performance of Rational Rose and Visio in software engineering teaching To cite this article: Zhaojun Yu and Zhan Xiong

More information

3D Graphics Programming Mira Costa High School - Class Syllabus,

3D Graphics Programming Mira Costa High School - Class Syllabus, 3D Graphics Programming Mira Costa High School - Class Syllabus, 2009-2010 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and

More information

COMP/ELEC 429/556 Introduction to Computer Networks

COMP/ELEC 429/556 Introduction to Computer Networks COMP/ELEC 429/556 Introduction to Computer Networks Creating a Network Application Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang 1 How to Programmatically

More information

CS118 Discussion, Week 6. Taqi

CS118 Discussion, Week 6. Taqi CS118 Discussion, Week 6 Taqi 1 Outline Network Layer IP NAT DHCP Project 2 spec 2 Network layer: overview Basic functions for network layer Routing Forwarding Connection v.s. connection-less delivery

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

TRIBHUVAN UNIVERSITY INSTITUTE OF ENGINEERING PULCHOWK CAMPUS DEPARTMENT OF ELECTRONICS AND COMPUTER ENGINEERING. A Report On MARRAIGE

TRIBHUVAN UNIVERSITY INSTITUTE OF ENGINEERING PULCHOWK CAMPUS DEPARTMENT OF ELECTRONICS AND COMPUTER ENGINEERING. A Report On MARRAIGE TRIBHUVAN UNIVERSITY INSTITUTE OF ENGINEERING PULCHOWK CAMPUS DEPARTMENT OF ELECTRONICS AND COMPUTER ENGINEERING A Report On MARRAIGE Submitted To: Department of Electronics and Computer Engineering Pulchowk

More information

Swing: Building GUIs in Java

Swing: Building GUIs in Java Swing: Building GUIs in Java ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland February 13, 2017 Outline 1 Introduction 2 Aside: Inner

More information

Limnor Studio Getting Started

Limnor Studio Getting Started Limnor Studio Getting Started Longflow Enterprises Ltd. Tuesday, October 20, 2009 Contact: info@limnor.com 1 Introduction... 1 1.1 Limnor Studio... 1 1.2 Limnor Codeless Visual Programming... 3 2 Installation...

More information

UNIT- 2 Physical Layer and Overview of PL Switching

UNIT- 2 Physical Layer and Overview of PL Switching UNIT- 2 Physical Layer and Overview of PL Switching 2.1 MULTIPLEXING Multiplexing is the set of techniques that allows the simultaneous transmission of multiple signals across a single data link. Figure

More information

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services Objectives Chapter 2: Operating-System Structures To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system

More information

Memory Addressing, Binary, and Hexadecimal Review

Memory Addressing, Binary, and Hexadecimal Review C++ By A EXAMPLE Memory Addressing, Binary, and Hexadecimal Review You do not have to understand the concepts in this appendix to become well-versed in C++. You can master C++, however, only if you spend

More information

Web Engineering. Introduction. Husni

Web Engineering. Introduction. Husni Web Engineering Introduction Husni Husni@trunojoyo.ac.id Outline What is Web Engineering? Evolution of the Web Challenges of Web Engineering In the early days of the Web, we built systems using informality,

More information

San Jose State University - Department of Computer Science

San Jose State University - Department of Computer Science San Jose State University - Department of Computer Science CS 151, Section 4 - Object-Oriented Design Instructor:Cay S. Horstmann Email: cay.horstmann@sjsu.edu Telephone: +1-408-924-5060 Office Hours:

More information

Open XML Requirements Specifications, a Xylia based application

Open XML Requirements Specifications, a Xylia based application Open XML Requirements Specifications, a Xylia based application Naeim Semsarilar Dennis K. Peters Theodore S. Norvell Faculty of Engineering and Applied Science Memorial University of Newfoundland November

More information

Course Design, Representation and Browser for Web Based Education

Course Design, Representation and Browser for Web Based Education Course Design, Representation and Browser for Web Based Education KUNAL CHAWLA Department of Information Technology Indian Institute of Information Technology Allahabad, Uttar Pradesh INDIA Abstract: -

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

Introduction to MiniSim A Simple von Neumann Machine

Introduction to MiniSim A Simple von Neumann Machine Math 121: Introduction to Computing Handout #19 Introduction to MiniSim A Simple von Neumann Machine Programming languages like C, C++, Java, or even Karel are called high-level languages because they

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

M.SARAVANA KARTHIKEYAN

M.SARAVANA KARTHIKEYAN PERVASIVE COMPUTING Unit II Part A 1. What is XML? XML stands for EXtensible Markup Language XML is a markup language much like HTML XML was designed to carry data, not to display data XML tags are not

More information

DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA

DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA M. GAUS, G. R. JOUBERT, O. KAO, S. RIEDEL AND S. STAPEL Technical University of Clausthal, Department of Computer Science Julius-Albert-Str. 4, 38678

More information

TIRA: Text based Information Retrieval Architecture

TIRA: Text based Information Retrieval Architecture TIRA: Text based Information Retrieval Architecture Yunlu Ai, Robert Gerling, Marco Neumann, Christian Nitschke, Patrick Riehmann yunlu.ai@medien.uni-weimar.de, robert.gerling@medien.uni-weimar.de, marco.neumann@medien.uni-weimar.de,

More information

Midterm assessment - MAKEUP Fall 2010

Midterm assessment - MAKEUP Fall 2010 M257 MTA Faculty of Computer Studies Information Technology and Computing Date: /1/2011 Duration: 60 minutes 1-Version 1 M 257: Putting Java to Work Midterm assessment - MAKEUP Fall 2010 Student Name:

More information

Opleiding Informatica

Opleiding Informatica Opleiding Informatica A browser-based graphical editor for Reo networks Maarten Smeyers Supervisors: Prof. dr. Farhad Arbab & Kasper Dokter BACHELOR THESIS Leiden Institute of Advanced Computer Science

More information

Sequence of Grade 4 Modules Aligned with the Standards

Sequence of Grade 4 Modules Aligned with the Standards Sequence of Grade 4 Modules Aligned with the Standards Module 1: Place Value, Rounding, and Algorithms for Addition and Subtraction Module 2: Unit Conversions and Problem Solving with Metric Measurement

More information

Grid Computing with Voyager

Grid Computing with Voyager Grid Computing with Voyager By Saikumar Dubugunta Recursion Software, Inc. September 28, 2005 TABLE OF CONTENTS Introduction... 1 Using Voyager for Grid Computing... 2 Voyager Core Components... 3 Code

More information

White Paper. Rose PowerBuilder Link

White Paper. Rose PowerBuilder Link White Paper Rose PowerBuilder Link Contents Overview 1 Audience...1 The Software Development Landscape...1 The Nature of Software Development...1 Better Software Development Methods...1 Successful Software

More information

Simulation of TCP Layer

Simulation of TCP Layer 39 Simulation of TCP Layer Preeti Grover, M.Tech, Computer Science, Uttrakhand Technical University, Dehradun ABSTRACT The Transmission Control Protocol (TCP) represents the most deployed transport protocol

More information

System recommendations for version 17.1

System recommendations for version 17.1 System recommendations for version 17.1 This article contains information about recommended hardware resources and network environments for version 17.1 of Sage 300 Construction and Real Estate. NOTE:

More information

Course 40045A: Microsoft SQL Server for Oracle DBAs

Course 40045A: Microsoft SQL Server for Oracle DBAs Skip to main content Course 40045A: Microsoft SQL Server for Oracle DBAs - Course details Course Outline Module 1: Database and Instance This module provides an understanding of the two major components

More information

PHY 351/651 LABORATORY 1 Introduction to LabVIEW

PHY 351/651 LABORATORY 1 Introduction to LabVIEW PHY 351/651 LABORATORY 1 Introduction to LabVIEW Introduction Generally speaking, modern data acquisition systems include four basic stages 1 : o o A sensor (or transducer) circuit that transforms a physical

More information

Network Communication and Remote Procedure Calls

Network Communication and Remote Procedure Calls Network Communication and Remote Procedure Calls CS 240: Computing Systems and Concurrency Lecture 2 Marco Canini Credits: Michael Freedman and Kyle Jamieson developed much of the original material. Context

More information

InfoEd Global SPIN Reference Guide

InfoEd Global SPIN Reference Guide InfoEd Global SPIN Reference Guide This reference guide will provide short explanations of the functionality available to you in the newest version of SPIN, provided by InfoEd Global. The full user manual

More information

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

ADDENDUM. PRINCIPLES OF DESIGN COURSE Topic YouTube link QR Code

ADDENDUM. PRINCIPLES OF DESIGN COURSE Topic YouTube link QR Code ADDENDUM PRINCIPLES OF DESIGN COURSE Topic YouTube link QR Code Topic 1 Introduction to Graphic Design https://youtu.be/pacrrojlvui This video discussed on essential skills of a graphic design and its

More information

Publisher 2007 Creating Flyers and Brochures

Publisher 2007 Creating Flyers and Brochures MS Publisher 2007 User Guide Publisher 2007 Creating Flyers and Brochures THE NATURE OF DESKTOP PUBLISHING - INTRODUCTION Publisher is a desktop publishing program. You can create publications that

More information