Android Services. Lecture 4. Operating Systems Practical. 26 October 2016
|
|
- Giles Jacobs
- 6 years ago
- Views:
Transcription
1 Android Services Lecture 4 Operating Systems Practical 26 October 2016 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit OSP Android Services, Lecture 4 1/55
2 Overview Started Services Bound Services Messenger AIDL Foreground Services Bibliography OSP Android Services, Lecture 4 2/55
3 Outline Overview Started Services Bound Services Messenger AIDL Foreground Services Bibliography OSP Android Services, Lecture 4 3/55
4 Android Service Application component without a user interface Designed for long-running operations in the background Can run even if the user is not in the hosting application OSP Android Services, Lecture 4 4/55
5 Android Service Can be accessed by external applications directly If exported by the hosting application By default, runs in the main UI thread of the hosting application CPU intensive and blocking operations - create another thread A service can be configured to run in a separate process OSP Android Services, Lecture 4 5/55
6 Declaring a Service in Manifest <service> tag under the <application> tag android:name - The class implementing the service android:enabled - Set as true or false if the system can / cannot instantiate the service Default value is true OSP Android Services, Lecture 4 6/55
7 Declaring a Service in Manifest android:exported - Whether or not other applications can access the service Without intent filter - default is false With intent filter - default is true android:process - Create a new process to run the service E.g. android:process=":fgservice" android:permission - Permission that must be given to a component to access the service OSP Android Services, Lecture 4 7/55
8 Types of Services Started Service Performs a single operation Does not return the result to the caller directly Launched by an application component that calls Context.startService() Once started, it can run indefinitely, even if the caller has terminated Not killed when they finish their job OSP Android Services, Lecture 4 8/55
9 Types of Services Bound Service Can perform multiple operations Offers a client-server interface, allowing interactions with it (send requests, obtain results) Communication can be across processes (IPC) Launched by an application component that calls Context.bindService() Remains active as long as there is at least one component is still bound to it Killed when the last component calls Context.unbindService() OSP Android Services, Lecture 4 9/55
10 Service Life Cycle Source: OSP Android Services, Lecture 4 10/55
11 Outline Overview Started Services Bound Services Messenger AIDL Foreground Services Bibliography OSP Android Services, Lecture 4 11/55
12 Started Services Launched by calling Context.startService(Intent) Intent - specify the task given to the Service In extras or action Read information in onstartcommand() Not terminated after the task is completed Stopped in two ways: Another application component - Context.stopService(Intent) Stop itself - Service.stopSelf() OSP Android Services, Lecture 4 12/55
13 Implementing a Started Service Extending the base Service class Implement the onstartcommand(intent, flags, startid) method Separate thread for CPU intensive / blocking operations START STICKY - restart faster START NOT STICKY - killed faster onbind() is mandatory - return null OSP Android Services, Lecture 4 13/55
14 Service Example p u b l i c c l a s s H e l l o S e r v i c e extends S e r v i c e O v e r r i d e p u b l i c i n t onstartcommand ( I n t e n t i n t e n t, i n t f l a g s, i n t s t a r t I d ) { Toast. maketext ( t h i s, s e r v i c e s t a r t i n g, Toast. LENGTH SHORT ). show ( ) ; r e t u r n START STICKY O v e r r i d e p u b l i c I B i n d e r onbind ( I n t e n t i n t e n t ) { r e t u r n n u l l O v e r r i d e p u b l i c v o i d ondestroy ( ) { Toast. maketext ( t h i s, s e r v i c e done, Toast. LENGTH SHORT ). show ( ) ; OSP Android Services, Lecture 4 14/55
15 Implementing a Started Service Extending the IntentService class Uses a worker thread to handle start requests, one at a time Multiple requests, not handled simultaneously Only onhandleintent(intent) is mandatory OSP Android Services, Lecture 4 15/55
16 IntentService Creates a worker thread that will treat all Intents received by onstartcommand() Creates a work queue that delivers one Intent at a time to onhandleintent() Stops service after handling all requests Includes onbind() that returns null Includes onstartcommand() that sends Intents to the work queue and then to onhandleintent() OSP Android Services, Lecture 4 16/55
17 IntentService Example p u b l i c c l a s s H e l l o I n t e n t S e r v i c e extends I n t e n t S e r v i c e { p u b l i c H e l l o I n t e n t S e r v i c e ( ) { s u p e r ( H e l l o I n t e n t S e r v i c e ) O v e r r i d e p r o t e c t e d v o i d o n H a n d l e I n t e n t ( I n t e n t i n t e n t ) { // Normally we would do some work here, l i k e download a f i l e. Constructor and implementation for onhandleintent() When overriding other callback methods - call super OSP Android Services, Lecture 4 17/55
18 Starting a Service Pass an Intent to startservice() The system calls the service s oncreate(), then onstartcommand() If the service is running, it calls only onstartcommand() I n t e n t i n t e n t = new I n t e n t ( t h i s, H e l l o S e r v i c e. c l a s s ) ; s t a r t S e r v i c e ( i n t e n t ) ; OSP Android Services, Lecture 4 18/55
19 Stopping a Started Service Manage its own lifecycle Destroyed by the system only in low memory situations Call stopself() from the service Call stopservice() from other component Should not kill the service while processing requests stopself() using startid OSP Android Services, Lecture 4 19/55
20 Outline Overview Started Services Bound Services Messenger AIDL Foreground Services Bibliography OSP Android Services, Lecture 4 20/55
21 Bound Services Launched by calling Context.bindService(Intent) If another component calls bindservice() after the service has been launched, the same service instance is given Client-server paradigm The server is the running service The client is the application component (e.g. the Activity) bound to the service The communication interface is specified by an IBinder Can receive requests from external processes / applications OSP Android Services, Lecture 4 21/55
22 Implementing a Bound Service Extend the Service class Implement the onbind() method onbind() returns an IBinder object Called only for the first component binding to the service Subsequent components that bind to the service will receive the same IBinder object OSP Android Services, Lecture 4 22/55
23 Communicating with a Bound Service If the client is running in the same process Extend the Binder class and return an instance For communicating with external processes you can: Use a Messenger (that serializes incoming requests) and call Messenger.getBinder() Use AIDL (especially when you need to handle multiple requests simultaneously) OSP Android Services, Lecture 4 23/55
24 Client Side - Connecting to a Bound Service Implement the ServiceConnection interface onserviceconnected() callback gives the IBinder used to call remote methods onservicedisconnected() callback gets called when the connection to the service has died OSP Android Services, Lecture 4 24/55
25 Client Side - Connecting to a Bound Service Call bindservice() and give it an instance of your ServiceConnection implementation bindservice() returns immediately The framework will call onserviceconnected() when connection to the service has been established OSP Android Services, Lecture 4 25/55
26 Client Side - Disconnecting from a Bound Service Call unbindservice() to end service connection If the current component unbinding is the only one who had been still bound, the service should be destroyed The service is kept alive only if it is also a Started Service (another component has called startservice() on it) OSP Android Services, Lecture 4 26/55
27 Extending the Binder class Client and service in the same process In the Service class, create a member variable of a class extending Binder From the Service s onbind() return the member variable OSP Android Services, Lecture 4 27/55
28 Extending the Binder class 3 options for exporting services: The Binder instance has public methods that can be called from the outside It can return a reference to the Service class, which itself has public methods It can return a reference to another class, hosted within the service, which has public methods OSP Android Services, Lecture 4 28/55
29 Using a reference to the Service p u b l i c c l a s s L o c a l S e r v i c e extends S e r v i c e { private f i n a l IBinder mbinder = new LocalBinder ( ) ; private f i n a l Random mgenerator = new Random ( ) ; public c l a s s L o c a l B i n d e r extends B i n d e r { L o c a l S e r v i c e g e t S e r v i c e ( ) { r e t u r n L o c a l S e r v i c e. t h i s O v e r r i d e p u b l i c I B i n d e r onbind ( I n t e n t i n t e n t ) { r e t u r n mbinder ; public i n t getrandomnumber ( ) { r e t u r n mgenerator. n e x t I n t ( ) ; OSP Android Services, Lecture 4 29/55
30 Using a reference to the Service p u b l i c c l a s s B i n d i n g A c t i v i t y extends A c t i v i t y { L o c a l S e r v i c e m S e r v i c e ; boolean mbound = f a l s e O v e r r i d e p r o t e c t e d v o i d onstart ( ) { s u p e r. o n S t a r t ( ) ; I n t e n t i n t e n t = new I n t e n t ( t h i s, L o c a l S e r v i c e. c l a s s ) ; bindservice ( intent, mconnection, Context. BIND AUTO CREATE ) O v e r r i d e p r o t e c t e d v o i d onstop ( ) { s u p e r. onstop ( ) ; i f ( mbound ) { u n b i n d S e r v i c e ( mconnection ) ; mbound = f a l s e ; p r i v a t e S e r v i c e C o n n e c t i o n mconnection = new S e r v i c e C o n n e c t i o n ( ) O v e r r i d e p u b l i c v o i d onserviceconnected ( ComponentName classname, IBinder s e r v i c e ) { L o c a l B i n d e r b i n d e r = ( L o c a l B i n d e r ) s e r v i c e ; m S e r v i c e = b i n d e r. g e t S e r v i c e ( ) ; mbound = true O v e r r i d e p u b l i c v o i d onservicedisconnected ( ComponentName arg0 ) { mbound = f a l s e ; ; OSP Android Services, Lecture 4 30/55
31 Outline Overview Started Services Bound Services Messenger AIDL Foreground Services Bibliography OSP Android Services, Lecture 4 31/55
32 Communicating through a Messenger Communication between bound service and external application Through a Messenger IPC Serialize multiple incoming connections OSP Android Services, Lecture 4 32/55
33 Communicating through a Messenger In the Service class, create a member variable of a class extending Handler Implement the handlemessage(message) method Communication with the service is done by how different Message types are handled Create a Messenger member variable passing to its constructor an instance of your Handler class In the onbind() method return Messenger.getBinder() OSP Android Services, Lecture 4 33/55
34 Messenger Example p u b l i c c l a s s M e s s e n g e r S e r v i c e extends S e r v i c e { s t a t i c f i n a l i n t MSG SAY HELLO = 1 ; c l a s s I n c o m i n g H a n d l e r extends H a n d l e r O v e r r i d e p u b l i c v o i d handlemessage ( Message msg ) { s w i t c h ( msg. what ) { case MSG SAY HELLO : Toast. maketext ( g e t A p p l i c a t i o n C o n t e x t ( ), h e l l o!, Toast. LENGTH SHORT ). show ( ) ; break ; default : s u p e r. handlemessage ( msg ) ; f i n a l Messenger mmessenger = new Messenger (new IncomingHandler ( ) ) O v e r r i d e p u b l i c I B i n d e r onbind ( I n t e n t i n t e n t ) { r e t u r n mmessenger. g e t B i n d e r ( ) ; OSP Android Services, Lecture 4 34/55
35 Communicating through a Messenger Client side In onserviceconnected() receive IBinder object Create Messenger object based on IBinder object Create and send messages through the Messenger OSP Android Services, Lecture 4 35/55
36 Messenger Example p u b l i c c l a s s A c t i v i t y M e s s e n g e r extends A c t i v i t y { Messenger m S e r v i c e = n u l l ; boolean mbound ; p r i v a t e S e r v i c e C o n n e c t i o n mconnection = new S e r v i c e C o n n e c t i o n ( ) { p u b l i c v o i d onserviceconnected ( ComponentName classname, IBinder s e r v i c e ) { m S e r v i c e = new Messenger ( s e r v i c e ) ; mbound = true ; ; p u b l i c v o i d onservicedisconnected ( ComponentName classname ) { m S e r v i c e = n u l l ; mbound = f a l s e ; p u b l i c v o i d sayhello ( View v ) { i f (! mbound ) r e t u r n ; Message msg = Message. obtain ( null, MessengerService. MSG SAY HELLO, 0, 0 ) ; t r y { m S e r v i c e. send ( msg ) ; catch ( RemoteException e ) { e. p r i n t S t a c k T r a c e ( ) ; OSP Android Services, Lecture 4 36/55
37 Communicating through a Messenger The handlemessage() method returns void The service has no readily-available means to respond to the client To have two-way communication you need to implement a similar Messenger mechanism in the client Set the client s Messenger as the replyto parameter of the Message The service receives a reference to the client s Messenger that can be used to send it s responses OSP Android Services, Lecture 4 37/55
38 Outline Overview Started Services Bound Services Messenger AIDL Foreground Services Bibliography OSP Android Services, Lecture 4 38/55
39 Interface Definition Languages Communication between components written in different languages Specification language Describe a software component s interface Remote Procedure Calls (RPC) OSP Android Services, Lecture 4 39/55
40 Interface Definition Languages Examples of IDLs include: AIDL - Android IDL OMG IDL (Object Management Group IDL) - implemented in CORBA for RPC services Protocol Buffers - Google s method of serializing structured data WSDL - Web Services Description Language OSP Android Services, Lecture 4 40/55
41 The Need for AIDL Android provides security through sandboxing An app s process cannot normally access the memory of another app s process Communication between two processes Send messages, perform RPC Decompose objects into primitives that can be marshalled across the system The Binder system handles these operations Expose Binder functionality to applications Using AIDL System marshalls / unmarshalls objects and calls the Binder services OSP Android Services, Lecture 4 41/55
42 Creating an AIDL File.aidl file in src/ Declare a single interface containing only method signatures AIDL allows using the data types: Primitive Java types (int, float, boolean, etc.) String CharSequence List (the system will use ArrayList) Map (the system will use HashMap) Collections include elements with permitted data types OSP Android Services, Lecture 4 42/55
43 Implementing the AIDL interface Service side YourInterface.aidl in /src Build application => generates YourInterface.java in gen/ Includes YourInterface.Stub subclass with all methods declared in the.aidl file In Service, instantiate the YourInterface.Stub and implement its methods Return Stub instance from the Service s onbind() method OSP Android Services, Lecture 4 43/55
44 AIDL Example - Service Side p u b l i c c l a s s R e m o t e S e r v i c e extends S e r v i c e O v e r r i d e p u b l i c v o i d oncreate ( ) { s u p e r. o n C r e a t e ( ) O v e r r i d e p u b l i c I B i n d e r onbind ( I n t e n t i n t e n t ) { r e t u r n mbinder ; private f i n a l IRemoteService. Stub mbinder = new IRemoteService. Stub ( ) { p u b l i c i n t g e t P i d (){ r e t u r n P r o c e s s. mypid ( ) ; public void b a s i c T y p e s ( i n t a n I n t, long along, boolean aboolean, f l o a t afloat, double adouble, S t r i n g a S t r i n g ) { ; OSP Android Services, Lecture 4 44/55
45 Connecting to a Service using AIDL Client side Copy of YourInterface.aidl in src/ Create a ServiceConnection instance Within the onserviceconnected() method Use IBinder parameter Obtain reference to AIDL interface YourInterface.Stub.asInterface(IBinder) Guard calls to service methods in a try{... catch block DeadObjectException - broken connection OSP Android Services, Lecture 4 45/55
46 AIDL Example - Client Side IRemoteService miremoteservice ; p r i v a t e S e r v i c e C o n n e c t i o n mconnection = new S e r v i c e C o n n e c t i o n ( ) { p u b l i c v o i d onserviceconnected ( ComponentName classname, IBinder s e r v i c e ) { miremoteservice = I R e m o t e S e r v i c e. Stub. a s I n t e r f a c e ( s e r v i c e ) ; ; p u b l i c v o i d onservicedisconnected ( ComponentName classname ) { miremoteservice = n u l l ; OSP Android Services, Lecture 4 46/55
47 Sending Custom Objects over IPC Custom classes - implement the Parcelable interface Implement writetoparcel() Include public static final Parcelable.Creator<YourClass> CREATOR member variable Implement createfromparcel() and newarray() interface methods Create a YourClass.aidl file in which you declare the class as parcelable parcelable YourClass; OSP Android Services, Lecture 4 47/55
48 Example public c l a s s MyParcelable implements Pa rce lab le { private i n t mdata ; p u b l i c v o i d w r i t e T o P a r c e l ( P a r c e l out, i n t f l a g s ) { out. w r i t e I n t ( mdata ) ; p u b l i c s t a t i c f i n a l P a r c e l a b l e. C r e a t o r<myparcelable> CREATOR = new Pa rce lab le. Creator<MyParcelable >() { p u b l i c M y P a r c e l a b l e c r e a t e F r o m P a r c e l ( P a r c e l i n ) { r e t u r n new MyParcelable ( in ) ; ; p u b l i c M y P a r c e l a b l e [ ] newarray ( i n t s i z e ) { r e t u r n new M y P a r c e l a b l e [ s i z e ] ; p r i v a t e MyParcelable ( Parcel in ) { mdata = i n. r e a d I n t ( ) ; OSP Android Services, Lecture 4 48/55
49 Outline Overview Started Services Bound Services Messenger AIDL Foreground Services Bibliography OSP Android Services, Lecture 4 49/55
50 Foreground Services The user is aware of this service E.g. a music player Considered important to the user Not easily killed in low-memory situations An on-going notification while running OSP Android Services, Lecture 4 50/55
51 Foreground Services Started by calling startforeground(notificationid, Notification) Called from within the Service itself Specify the Activity to be started when selecting the Notification Stopped by calling stopforeground() OSP Android Services, Lecture 4 51/55
52 Foreground Service Example N o t i f i c a t i o n n o t i f i c a t i o n = new N o t i f i c a t i o n (R. d r a w a b l e. icon, g ettext (R. s t r i n g. t i c k e r t e x t ), System. c u r r e n t T i m e M i l l i s ( ) ) ; I n t e n t n o t i f i c a t i o n I n t e n t = new I n t e n t ( t h i s, E x a m p l e A c t i v i t y. c l a s s ) ; P e n d i n g I n t e n t p e n d i n g I n t e n t = P e n d i n g I n t e n t. g e t A c t i v i t y ( t h i s, 0, n o t i f i c a t i o n I n t e n t, 0 ) ; n o t i f i c a t i o n. s e t L a t e s t E v e n t I n f o ( t h i s, g ettext (R. s t r i n g. n o t i f i c a t i o n t i t l e ), g ettext (R. s t r i n g. n o t i f i c a t i o n m e s s a g e ), p e n d i n g I n t e n t ) ; s t a r t F o r e g r o u n d ( ONGOING NOTIFICATION ID, n o t i f i c a t i o n ) ; OSP Android Services, Lecture 4 52/55
53 Outline Overview Started Services Bound Services Messenger AIDL Foreground Services Bibliography OSP Android Services, Lecture 4 53/55
54 Bibliography http: //developer.android.com/reference/android/app/intentservice.html ServiceConnection.html OSP Android Services, Lecture 4 54/55
55 Keywords Android Services Started Services Foreground Services IntentService Bound Services IBinder ServiceConnection Handler Messenger Message AIDL Parcelable OSP Android Services, Lecture 4 55/55
SDS developer guide. Develop distributed and parallel applications in Java. Nathanaël Cottin. version
SDS developer guide Develop distributed and parallel applications in Java Nathanaël Cottin sds@ncottin.net http://sds.ncottin.net version 0.0.3 Copyright 2007 - Nathanaël Cottin Permission is granted to
More informationAndroid Security Mechanisms
Android Security Mechanisms Lecture 8 Operating Systems Practical 7 December 2016 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license,
More informationMobile and Wireless Systems Programming
Application Fundamentals Java programming language Android package :.apk Dalvik VM executes files in the Dalvik Executable (.dex) format 1.apk = 1 application 1 application = 1 Linux process 1 application
More informationAndroid Security Mechanisms
Android Security Mechanisms Lecture 9 Android and Low-level Optimizations Summer School 1 August 2015 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy
More informationActivities, Services, Intents...
,,... Mobile App Development Przemyslaw Pawluk 1 2 3 4 1 2 3 4 Basic components Activity functionality with UI Service long-running task without UI Content Provider abstracts data and enables interprocess
More informationAndroid Security Mechanisms (2)
Android Security Mechanisms (2) Lecture 9 Operating Systems Practical 14 December 2016 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license,
More informationIntroduction to ArcGIS Server Development
Introduction to ArcGIS Server Development Kevin Deege,, Rob Burke, Kelly Hutchins, and Sathya Prasad ESRI Developer Summit 2008 1 Schedule Introduction to ArcGIS Server Rob and Kevin Questions Break 2:15
More informationExtensibility Patterns: Extension Access
Design Patterns and Frameworks Dipl.-Medieninf. Christian Piechnick INF 2080 christian.piechnick@tu-dresden.de Exercise Sheet No. 5 Software Technology Group Institute for SMT Department of Computer Science
More informationComputer Science Introductory Course MSc - Introduction to Java
Computer Science Introductory Course MSc - Introduction to Java Lecture 3:,, Pablo Oliveira ENST Outline 1 2 3 Definition An exception is an event that indicates an abnormal condition
More informationActivities, Fragments and Intents
Mobile App Development 1 2 Design Principles 3 1 2 Design Principles 3 Manifest file Outline AndroidManifest.xml XML file Contains name of the application and a default package, Sets up the various permissions
More informationOutline. PeerSim: Informal introduction. Resources. What is PeerSim? Alberto Montresor Gianluca Ciccarelli
Outline PeerSim: Informal introduction Alberto Montresor Gianluca Ciccarelli Networking group - University of Trento April 3, 2009 1 2 files structure 3 1 / 45 2 / 45 Resources What is PeerSim? These slides
More information13 Concurrent Programming using Tasks and Services
60 Advanced Java for Bioinformatics, WS 17/18, D. Huson, January 18, 2018 13 Concurrent Programming using Tasks and Services Any programs that you write will be multi-threaded. Modern computers have multiple
More informationOutline F eria AADL behavior 1/ 78
Outline AADL behavior Annex Jean-Paul Bodeveix 2 Pierre Dissaux 3 Mamoun Filali 2 Pierre Gaufillet 1 François Vernadat 2 1 AIRBUS-FRANCE 2 FéRIA 3 ELLIDIS SAE AS2C Detroit Michigan April 2006 FéRIA AADL
More informationReport of Dragable Notebook
Report of Dragable Notebook Lu Guandong, Qi Zhenlin, Mao Yong, Han Bing May 18, 2017 Abstract This report shows you why we develop the app, the function of the app and the features of the app. We include
More informationITI Introduction to Computing II
(with contributions from R. Holte) School of Electrical Engineering and Computer Science University of Ottawa Version of January 11, 2015 Please don t print these lecture notes unless you really need to!
More informationInstance Methods and Inheritance (1/2)
Instance Methods and Inheritance (1/2) 1 class Professor { 2 p u b l i c void say_hello ( ) { 3 System. out. p r i n t l n ( " Hello! " ) ; 4 } 5 } 6 class CSIEProfessor extends Professor { 7 p u b l i
More informationAccount Setup. STEP 1: Create Enhanced View Account
SpyMeSatGov Access Guide - Android DigitalGlobe Imagery Enhanced View How to setup, search and download imagery from DigitalGlobe utilizing NGA s Enhanced View license Account Setup SpyMeSatGov uses a
More informationInter-Reactive Kotlin Applications
Inter-Reactive Kotlin Applications Julien Viet @julienviet Julien Viet Open source developer for 15+ years Current @vertx_project lead Principal software engineer at Marseille Java User Group Leader https://www.julienviet.com/
More informationLab Course: distributed data analytics
Lab Course: distributed data analytics 01. Threading and Parallelism Nghia Duong-Trung, Mohsan Jameel Information Systems and Machine Learning Lab (ISMLL) University of Hildesheim, Germany International
More informationTrivadis Integration Blueprint V0.1
Spring Integration Peter Welkenbach Principal Consultant peter.welkenbach@trivadis.com Agenda Integration Blueprint Enterprise Integration Patterns Spring Integration Goals Main Components Architectures
More informationUsability Extensions for the Worklet Service
Usability Extensions for the Worklet Service Michael Adams Queensland University of Technology, Brisbane, Australia. mj.adams@qut.edu.au Abstract. The YAWL Worklet Service is an effective approach to facilitating
More informationHigh-performance processing and development with Madagascar. July 24, 2010 Madagascar development team
High-performance processing and development with Madagascar July 24, 2010 Madagascar development team Outline 1 HPC terminology and frameworks 2 Utilizing data parallelism 3 HPC development with Madagascar
More informationFACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 07/2014 SESSION 8:00-10:00
FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING MODULE CAMPUS CSC2A10 OBJECT ORIENTED PROGRAMMING AUCKLAND PARK CAMPUS (APK) EXAM JULY 2014 DATE 07/2014 SESSION 8:00-10:00 ASSESOR(S)
More informationExtending MISP with Python modules MISP - Malware Information Sharing Platform & Threat Sharing
Extending MISP with Python modules MISP - Malware Information Sharing Platform & Threat Sharing Alexandre Dulaunoy Andras Iklody TLP:WHITE June 16, 2016 Why we want to go more modular... Ways to extend
More informationBasic Java OOP 10/12/2015. Department of Computer Science & Information Engineering. National Taiwan University
Basic Java OOP 10/12/2015 Hsuan-Tien Lin ( 林軒田 ) htlin@csie.ntu.edu.tw Department of Computer Science & Information Engineering National Taiwan University ( 國立台灣大學資訊工程系 ) Hsuan-Tien Lin (NTU CSIE) Basic
More informationComp 11 Lectures. Mike Shah. July 12, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures July 12, / 33
Comp 11 Lectures Mike Shah Tufts University July 12, 2017 Mike Shah (Tufts University) Comp 11 Lectures July 12, 2017 1 / 33 Please do not distribute or host these slides without prior permission. Mike
More informationPlanning Softproviding Meat User Documentation
Great ideas are always simple Softproviding simply makes them happen. Planning Softproviding Meat User Documentation Version: 1.00 Date: 24 August 2017 Release: v5.50 Softproviding AG Riehenring 175 CH-4058
More informationTroubleshooting Replication and Geodata Service Issues
Troubleshooting Replication and Geodata Service Issues Ken Galliher & Ben Lin Esri UC 2014 Demo Theater Tech Session Overview What is Geodatabase Replication Replication types Geodata service replication
More informationSpyMeSat Mobile App. Imaging Satellite Awareness & Access
SpyMeSat Mobile App Imaging Satellite Awareness & Access Imaging & Geospatical Technology Forum ASPRS Annual Conference March 12-16, 2017 Baltimore, MD Ella C. Herz 1 Orbit Logic specializes in software
More informationCS Java. Introduction to Java. Andy Mroczkowski Department of Computer Science Drexel University
CS 190 - Java Introduction to Java Andy Mroczkowski uamroczk@cs.drexel.edu Department of Computer Science Drexel University February 18, 2008 / Lecture 5 Outline Course Status Course Information & Schedule
More informationAperTO - Archivio Istituzionale Open Access dell'università di Torino
AperTO - Archivio Istituzionale Open Access dell'università di Torino Android applications are inspired by Multi-Agent Systems This is the author's manuscript Original Citation: Android applications are
More informationAdministrivia. Course Objectives. Overview. Lecture Notes Week markem/cs333/ 2. Staff. 3. Prerequisites. 4. Grading. 1. Theory and application
Administrivia 1. markem/cs333/ 2. Staff 3. Prerequisites 4. Grading Course Objectives 1. Theory and application 2. Benefits 3. Labs TAs Overview 1. What is a computer system? CPU PC ALU System bus Memory
More informationBlocking Synchronization: Streams Vijay Saraswat (Dec 10, 2012)
1 Streams Blocking Synchronization: Streams Vijay Saraswat (Dec 10, 2012) Streams provide a very simple abstraction for determinate parallel computation. The intuition for streams is already present in
More informationDistributed Algorithms Time, clocks and the ordering of events
Distributed Algorithms Time, clocks and the ordering of events Alberto Montresor University of Trento, Italy 2016/04/26 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International
More informationMURA Office hours Thurs at 12-1pm in CIT 546 Contact for more info.
Course Announcements Lecture capture has begun, available from Lectures page. First two and a half weeks are packed. Testing lab done, HTML started, and Stars due next Friday. Department has a lot of student
More informationITI Introduction to Computing II
(with contributions from R. Holte) School of Electrical Engineering and Computer Science University of Ottawa Version of January 9, 2019 Please don t print these lecture notes unless you really need to!
More informationSocket Programming. Daniel Zappala. CS 360 Internet Programming Brigham Young University
Socket Programming Daniel Zappala CS 360 Internet Programming Brigham Young University Sockets, Addresses, Ports Clients and Servers 3/33 clients request a service from a server using a protocol need an
More informationVisualizing Big Data on Maps: Emerging Tools and Techniques. Ilir Bejleri, Sanjay Ranka
Visualizing Big Data on Maps: Emerging Tools and Techniques Ilir Bejleri, Sanjay Ranka Topics Web GIS Visualization Big Data GIS Performance Maps in Data Visualization Platforms Next: Web GIS Visualization
More informationFrom BASIS DD to Barista Application in Five Easy Steps
Y The steps are: From BASIS DD to Barista Application in Five Easy Steps By Jim Douglas our current BASIS Data Dictionary is perfect raw material for your first Barista-brewed application. Barista facilitates
More informationEnabling ENVI. ArcGIS for Server
Enabling ENVI throughh ArcGIS for Server 1 Imagery: A Unique and Valuable Source of Data Imagery is not just a base map, but a layer of rich information that can address problems faced by GIS users. >
More informationCOMP9334: Capacity Planning of Computer Systems and Networks
COMP9334: Capacity Planning of Computer Systems and Networks Week 2: Operational analysis Lecturer: Prof. Sanjay Jha NETWORKS RESEARCH GROUP, CSE, UNSW Operational analysis Operational: Collect performance
More informationIntroduction to Portal for ArcGIS. Hao LEE November 12, 2015
Introduction to Portal for ArcGIS Hao LEE November 12, 2015 Agenda Web GIS pattern Product overview Installation and deployment Security and groups Configuration options Portal for ArcGIS + ArcGIS for
More informationIntroduction to functions
Introduction to functions Comp Sci 1570 Introduction to C++ Outline 1 2 Functions A function is a reusable sequence of s designed to do a particular job. In C++, a function is a group of s that is given
More informationFrom BASIS DD to Barista Application in Five Easy Steps
Y The steps are: From BASIS DD to Barista Application in Five Easy Steps By Jim Douglas our current BASIS Data Dictionary is perfect raw material for your first Barista-brewed application. Barista facilitates
More informationConcurrent HTTP Proxy Server. CS425 - Computer Networks Vaibhav Nagar(14785)
Concurrent HTTP Proxy Server CS425 - Computer Networks Vaibhav Nagar(14785) Email: vaibhavn@iitk.ac.in August 31, 2016 Elementary features of Proxy Server Proxy server supports the GET method to serve
More informationGeoprovisioning delivers geodata and its analysis for specific areas on request.
DRAFT 27 February 2009 Geoprovisioning Geoprovisioning delivers geodata and its analysis for specific areas on request. What are the components of a geoprovisioning service? The sample web site geoprovisioning.com
More informationIntroduction to Portal for ArcGIS
Introduction to Portal for ArcGIS Derek Law Product Management March 10 th, 2015 Esri Developer Summit 2015 Agenda Web GIS pattern Product overview Installation and deployment Security and groups Configuration
More informationINF Models of concurrency
INF4140 - Models of concurrency RPC and Rendezvous INF4140 Lecture 15. Nov. 2017 RPC and Rendezvous Outline More on asynchronous message passing interacting processes with different patterns of communication
More informationWeb GIS Deployment for Administrators. Vanessa Ramirez Solution Engineer, Natural Resources, Esri
Web GIS Deployment for Administrators Vanessa Ramirez Solution Engineer, Natural Resources, Esri Agenda Web GIS Concepts Web GIS Deployment Patterns Components of an On-Premises Web GIS Federation of Server
More informationSemantic Web SPARQL. Gerd Gröner, Matthias Thimm. July 16,
Semantic Web SPARQL Gerd Gröner, Matthias Thimm {groener,thimm}@uni-koblenz.de Institute for Web Science and Technologies (WeST) University of Koblenz-Landau July 16, 2013 Gerd Gröner, Matthias Thimm Semantic
More informationPortal for ArcGIS: An Introduction
Portal for ArcGIS: An Introduction Derek Law Esri Product Management Esri UC 2014 Technical Workshop Agenda Web GIS pattern Product overview Installation and deployment Security and groups Configuration
More informationPart I. System call overview. Secure Operating System Design and Implementation System Calls. Overview. Abstraction. Jon A. Solworth.
Secure Operating System Design and Implementation System Calls Jon A. Solworth Part I System call overview Dept. of Computer Science University of Illinois at Chicago February 1, 2011 Overview Abstraction
More informationSharing Objects. Pieter van den Hombergh. Fontys Hogeschool voor Techniek en Logistiek. February 15, 2017
Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek February 15, 2017 and /FHTenL February 15, 2017 is safe Idioms 1/34 and and is safe Idioms /FHTenL February 15, 2017 2/34 visibility
More informationDesign Patterns and Refactoring
Singleton Oliver Haase HTWG Konstanz 1 / 19 Description I Classification: object based creational pattern Puropse: ensure that a class can be instantiated exactly once provide global access point to single
More informationAnnouncements. John Jannotti (cs32) Design Patterns Feb 13, / 1
Announcements We ll code review Stars on Thursday. Volunteer your code by emailing me. Lab this week covers Ajax/Javascript. Interactive UIs. No lab (or lab hours) next week. Submit a group project idea
More informationComp 11 Lectures. Mike Shah. July 26, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures July 26, / 40
Comp 11 Lectures Mike Shah Tufts University July 26, 2017 Mike Shah (Tufts University) Comp 11 Lectures July 26, 2017 1 / 40 Please do not distribute or host these slides without prior permission. Mike
More informationExtending MISP with Python modules MISP - Malware Information Sharing Platform & Threat Sharing
Extending MISP with Python modules MISP - Malware Information Sharing Platform & Threat Sharing MISP Project @MISPProject TLP:WHITE MISP Training - @SWITCH - 20161206 Why we want to go more modular...
More informationON SITE SYSTEMS Chemical Safety Assistant
ON SITE SYSTEMS Chemical Safety Assistant CS ASSISTANT WEB USERS MANUAL On Site Systems 23 N. Gore Ave. Suite 200 St. Louis, MO 63119 Phone 314-963-9934 Fax 314-963-9281 Table of Contents INTRODUCTION
More informationIO-Link Data Reference Guide: K50 Pro Touch Button with IO-Link
IO-Link Data Reference Guide: K50 Pro Touch Button with IO-Link IO-Link Data Map This document refers to the following IODD file: Banner_Engineering-K50PTKQ-20180829-IODD1.1.xml. The IODD file and support
More informationST-Links. SpatialKit. Version 3.0.x. For ArcMap. ArcMap Extension for Directly Connecting to Spatial Databases. ST-Links Corporation.
ST-Links SpatialKit For ArcMap Version 3.0.x ArcMap Extension for Directly Connecting to Spatial Databases ST-Links Corporation www.st-links.com 2012 Contents Introduction... 3 Installation... 3 Database
More informationActors for Reactive Programming. Actors Origins
Actors Origins Hewitt, early 1970s (1973 paper) Around the same time as Smalltalk Concurrency plus Scheme Agha, early 1980s (1986 book) Erlang (Ericsson), 1990s Akka, 2010s Munindar P. Singh (NCSU) Service-Oriented
More informationLeveraging Web GIS: An Introduction to the ArcGIS portal
Leveraging Web GIS: An Introduction to the ArcGIS portal Derek Law Product Management DLaw@esri.com Agenda Web GIS pattern Product overview Installation and deployment Configuration options Security options
More informationChem Compute Science Gateway for Undergraduates. Mark J. Perri, M.S. Reeves, R.M. Whitnell
Chem Compute Science Gateway for Undergraduates Mark J. Perri, M.S. Reeves, R.M. Whitnell Chemcompute.org Computational Chemistry GAMESS (Quantum) TINKER (MD) About Sonoma State University One of 23 California
More informationGeodatabase Best Practices. Dave Crawford Erik Hoel
Geodatabase Best Practices Dave Crawford Erik Hoel Geodatabase best practices - outline Geodatabase creation Data ownership Data model Data configuration Geodatabase behaviors Data integrity and validation
More informationData Aggregation with InfraWorks and ArcGIS for Visualization, Analysis, and Planning
CI125230 Data Aggregation with InfraWorks and ArcGIS for Visualization, Analysis, and Planning Stephen Brockwell Brockwell IT Consulting Inc. Sean Kinahan Brockwell IT Consulting Inc. Learning Objectives
More informationWEB-BASED SPATIAL DECISION SUPPORT: TECHNICAL FOUNDATIONS AND APPLICATIONS
WEB-BASED SPATIAL DECISION SUPPORT: TECHNICAL FOUNDATIONS AND APPLICATIONS Claus Rinner University of Muenster, Germany Piotr Jankowski San Diego State University, USA Keywords: geographic information
More informationOperational Laws Raj Jain
Operational Laws 33-1 Overview What is an Operational Law? 1. Utilization Law 2. Forced Flow Law 3. Little s Law 4. General Response Time Law 5. Interactive Response Time Law 6. Bottleneck Analysis 33-2
More informationMaps performance tips On server: Maintain DB connections, prepared statements (per thread/request!)
Announcements Maps performance tips On server: Maintain DB connections, prepared statements (per thread/request!) Use Spark.before, Spark.after to open and close. Use ThreadLocal, or pass the connection
More informationAnalysis of Software Artifacts
Analysis of Software Artifacts System Performance I Shu-Ngai Yeung (with edits by Jeannette Wing) Department of Statistics Carnegie Mellon University Pittsburgh, PA 15213 2001 by Carnegie Mellon University
More informationReal Time Operating Systems
Real Time Operating ystems Luca Abeni luca.abeni@unitn.it Interacting Tasks Until now, only independent tasks... A job never blocks or suspends A task only blocks on job termination In real world, jobs
More informationUniversity of Colorado Denver Anschutz Medical Campus Online Chemical Inventory System User s Manual
University of Colorado Denver Anschutz Medical Campus Online Chemical Inventory System User s Manual Hazardous Materials Division 303-724-0345 chemical.inventory@ucdenver.edu May, 2017 Table of Contents
More informationReaxys Pipeline Pilot Components Installation and User Guide
1 1 Reaxys Pipeline Pilot components for Pipeline Pilot 9.5 Reaxys Pipeline Pilot Components Installation and User Guide Version 1.0 2 Introduction The Reaxys and Reaxys Medicinal Chemistry Application
More informationLeveraging the GIS Capability within FlexiCadastre
Managing Local Land Concerns, Maintaining Corporate Governance Leveraging the GIS Capability within FlexiCadastre Regional User Conference, North America May 6 th May 9 th, 2013 Cameron McKellar, Technical
More informationBlack-Box Testing Techniques III
Black-Box Testing Techniques III Software Testing and Verification Lecture 6 Prepared by Stephen M. Thebaut, Ph.D. University of Florida Another Cause-Effect Example: Symbol Table Storage Specification
More informationAbstract Specification of Crypto- Protocols and their Attack Models in MSR
Abstract Specification of Crypto- Protocols and their Attack Models in MSR Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries, Inc @ NRL Washington DC http://www.cs.stanford.edu/~iliano/ Software
More informationGo Tutorial. Ian Lance Taylor. Introduction. Why? Language. Go Tutorial. Ian Lance Taylor. GCC Summit, October 27, 2010
GCC Summit, October 27, 2010 Go Go is a new experimental general purpose programming language. Main developers are: Russ Cox Robert Griesemer Rob Pike Ken Thompson It was released as free software in November
More informationComputer Science Introductory Course MSc - Introduction to Java
Computer Science Introductory Course MSc - Introduction to Java Lecture 1: Diving into java Pablo Oliveira ENST Outline 1 Introduction 2 Primitive types 3 Operators 4 5 Control Flow
More informationSpatial Data Infrastructure Concepts and Components. Douglas Nebert U.S. Federal Geographic Data Committee Secretariat
Spatial Data Infrastructure Concepts and Components Douglas Nebert U.S. Federal Geographic Data Committee Secretariat August 2009 What is a Spatial Data Infrastructure (SDI)? The SDI provides a basis for
More informationgvsig a real tool for GIS technicians
gvsig a real tool for GIS technicians Jorge Gaspar Sanz Salinas jsanz@prodevelop.es International Geodetic Students Meeting 05/05/08 Valencia Agenda of the project OK, but what can gvsig do for me now?
More informationArcGIS Earth for Enterprises DARRON PUSTAM ARCGIS EARTH CHRIS ANDREWS 3D
ArcGIS Earth for Enterprises DARRON PUSTAM ARCGIS EARTH CHRIS ANDREWS 3D ArcGIS Earth is ArcGIS Earth is a lightweight globe desktop application that helps you explore any part of the world and investigate
More informationMaking interoperability persistent: A 3D geo database based on CityGML
Making interoperability persistent: A 3D geo database based on CityGML Alexandra Stadler, Claus Nagel, Gerhard König, Thomas H. Kolbe Technische Universität Berlin Chair of Geoinformation Science Motivation
More informationReasoning about Trace Properties of Higher-order Programs
Reasoning about Trace Properties of Higher-order Programs Limin Jia Joint work with Deepak Garg and Anupam Datta CyLab University Goal: Compositional security S 1 ψ 1 + ϕ S 2 ψ 2! Do S 1 + S 2 satisfy
More informationTECDIS and TELchart ECS Weather Overlay Guide
1 of 24 TECDIS and TELchart ECS provides a very advanced weather overlay feature, using top quality commercial maritime weather forecast data available as a subscription service from Jeppesen Marine. The
More informationTyped MSR: Syntax and Examples
Typed MSR: Syntax and Examples Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries, Inc @ NRL Washington DC http://www.cs.stanford.edu/~iliano/ MMM 01 St. Petersburg, Russia May 22 nd, 2001 Outline
More informationDistributed Architectures
Distributed Architectures Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-21 Roman Kern (KTI, TU Graz) Distributed Architectures 2015-01-21 1 / 64 Outline 1 Introduction 2 Independent
More informationCSE 311: Foundations of Computing. Lecture 10: Set Operations & Representation, Modular Arithmetic
CSE 311: Foundations of Computing Lecture 10: Set Operations & Representation, Modular Arithmetic Definitions A and B are equal if they have the same elements A = B x (x A x B) A is a subset of B if every
More informationUrban Planning Internet Geographic Information Systems Fall 2010
Urban Planning - 794 Internet Geographic Information Systems Fall 2010 Instructor: Professor Huxhold (hux@uwm.edu) Lecturer: Melissa Mann (mmann@uwm.edu) Manager: Kurt Meingast (kurtm@uwm.edu) Schedule:
More informationWorking with OGC WCS Services - WCS in ArcGIS. Zikang Zhou
Working with OGC WCS Services - WCS in ArcGIS Zikang Zhou zzhou@esri.com OGC WCS introduction The Open Geospatial Consortium, Inc. (OGC) Web Coverage Service (WCS) provides an open specification for sharing
More informationArcGIS Pro Q&A Session. NWGIS Conference, October 11, 2017 With John Sharrard, Esri GIS Solutions Engineer
ArcGIS Pro Q&A Session NWGIS Conference, October 11, 2017 With John Sharrard, Esri GIS Solutions Engineer jsharrard@esri.com ArcGIS Desktop The applications ArcGIS Pro ArcMap ArcCatalog ArcScene ArcGlobe
More informationChanges in Esri GIS, practical ways to be ready for the future
Changes in Esri GIS, practical ways to be ready for the future John Sharrard, Esri April 16, 2015 The only thing that is constant is change. Heraclitus, ca. 500 B.C. My story (of experiencing change) Changes
More informationLecture 11. Data Standards and Quality & New Developments in GIS
Lecture 11 Data Standards and Quality & New Developments in GIS Lecture 11: Outline I. Data Standards and Quality 1. Types of Spatial Data Standards 2. Data Accuracy II. New Developments/The Future of
More informationSFWR ENG 3S03: Software Testing
(Slide 1 of 69) Dr. Ridha Khedri Writing in Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on [HT03] Unit Testing in Java with
More informationChain of Responsibility
Department of Computer Science University of Pretoria 29 and 30 September 2014 Overview Identification 1 Identification 2 3 4 5 6 Name and Classification: Chain of Responsibility Intent: Avoid coupling
More informationOperating Systems. VII. Synchronization
Operating Systems VII. Synchronization Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline Synchronization issues 2/22 Fall 2017 Institut
More informationQueuing Networks. - Outline of queuing networks. - Mean Value Analisys (MVA) for open and closed queuing networks
Queuing Networks - Outline of queuing networks - Mean Value Analisys (MVA) for open and closed queuing networks 1 incoming requests Open queuing networks DISK CPU CD outgoing requests Closed queuing networks
More information*** SAMPLE ONLY! The actual NASUNI-FILER-MIB file can be accessed through the Filer address>/site_media/snmp/nasuni-filer-mib ***
*** SAMPLE ONLY! The actual NASUNI-FILER-MIB file can be accessed through the https:///site_media/snmp/nasuni-filer-mib *** NASUNI-FILER-MIB DEFINITIONS ::= BEGIN -- Nasuni Filer
More informationEvaluating Physical, Chemical, and Biological Impacts from the Savannah Harbor Expansion Project Cooperative Agreement Number W912HZ
Evaluating Physical, Chemical, and Biological Impacts from the Savannah Harbor Expansion Project Cooperative Agreement Number W912HZ-13-2-0013 Annual Report FY 2018 Submitted by Sergio Bernardes and Marguerite
More informationNetwork Analysis with ArcGIS Online. Deelesh Mandloi Dmitry Kudinov
Deelesh Mandloi Dmitry Kudinov Introductions Who are we? - Network Analyst Product Engineers Who are you? - Network Analyst users? - ArcGIS Online users? - Trying to figure out what is ArcGIS Online? Slides
More informationInverse Orchestra: An approach to find faster solution of matrix inversion through Cramer s rule
Inverse Orchestra: An approach to find faster solution of matrix inversion through Cramer s rule Shweta Agrawal, Rajkamal School of Computer Science & Information Technology, DAVV, Indore (M.P.), India
More informationUsing OGC standards to improve the common
Using OGC standards to improve the common operational picture Abstract A "Common Operational Picture", or a, is a single identical display of relevant operational information shared by many users. The
More information