Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering

Size: px
Start display at page:

Download "Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering"

Transcription

1 Mobile Systems M Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering Mobile Systems M course (8 ECTS) II Term Academic Year 2016/ Design Principles for Mobile Middleware and Applications Instructor: Paolo Bellavista paolo.bellavista@unibo.it 1

2 Mobile Systems and Services Evolution 1st generation ( ) Text messages (SMS) and limited forms of mobile access to data; maximum bandwidth around tens of Kbps 2nd generation ( ) Limited Web browsers, WAP, imode and MMS; maximum bandwidth up to 144Kbps 3rd generation ( ) Mobile platforms, so-called middleware services; terminals with Symbian Series 60, J2ME, Android, ios,...; maximum bandwidth up to several Mbps 4th generation ( ) Adaptive services, adaptive user interfaces, adaptive protocols; context awareness; continuous connectivity; maximum bandwidth up to hundreds of Mbps 2

3 Mobile Systems and Services Evolution Stores and Web pages Social sites, media portals revenue On-demand and streaming video Advanced browsers SMS ringtones, logos WAP Ringtones Java portals Full music and video streaming Full music streaming Music downloads Music clips Monophonic Polyphonic Master tones time 3

4 Mobile Middleware Managing many aspects (in particular mobility), not strictly application-specific, is a complex problem. For instance, mobility of: Nodes Networks Transport connections Session Objects (passive, active) Services Users Several solutions are needed, at multiple levels (link, network, transportation, application) and cross-layer Mobile middleware solutions to indicate all support solutions typically positioned from OSI level 4 to upper 4

5 Middleware Pop and largely employed term, sometimes also in a partially imprecise way A possible definition: A set of service elements above the operating system and the communications stack An alternative definition: Software that provides a programming model above the basic building blocks of processes and message passing (Colouris, Dollimore, Kindberg, 2001) We define it as support software stack, typically cross-layer and application-agnostic, which targets issues and challenges at OSI levels >= 4 5

6 Why the Need of Middleware? Development of distributed apps as complex and time-consuming process Any developer has to code from scratch his/her protocols for naming services, transactions,...? How to manage the unavoidable heterogeneity of execution ens? Need of middleware To reduce development time and to favour rapid prototyping To simplify application development and thus reducing the costs To support heterogeneous envs., by partially masking differences at hardware/os/app levels diverse applications divergence transport layer (TCP/IP) convergence diverse physical layers hourglass model 6

7 Who Benefits from Mobile Middleware? Final Users Even if the middleware goal is not to directly interact with final users, support to services and applications visible to users. Thus, middleware with mechanisms and APIs suitable for managing different types of failures and runtime errors, in addition to supporting enhanced usage experience Device Manufacturers Middleware to offer advanced and extended features that can interface, at lowest layers, with device drivers Internet Service Providers Middleware for network monitoring, management, and admin Providers of middleware platforms Development of middleware platforms that are integrated with different OSs Application Service Providers Middleware to facilitate development and deployment of applications in a rapid, scalable, and low-cost way 7

8 Objectives and Key Elements Accessibility and Reachability Resources have to be always available and accessible for final users independently of current location (of both resources and users). Nowadays full support to this? Do we really want complete transparency? Adaptiveness Mobile services and their usage occur in environments affected by runtime modifications; they must adapt themselves dynamically to the working deployment environment Appropriate level of confidence (trust) An adequate trust level has to be obtained among the interacting entities, so that operations are performed according to common agreements and expectations. Contracts? How to achieve decentralized trust? Universality Possibility of universal access to data such as in the case of the Web over the traditional Internet 8

9 Mobile Middleware Middleware is traditionally designed, implemented, and optimized for fixed network hosts Large bandwidth, low latency, reliable communications Persistent storage, good computing capabilities, no constraint associated with energy consumption No mobility Mobile systems call for novel middleware solutions Existing middleware is not suitable for resource-limited devices and sometimes exhibits limited scalability Mobile middleware goals: fault-tolerance, adaptiveness, heterogeneity support, scalability, resource sharing 9

10 Mobile Middleware Mobile middleware Context dynamically changes Need of decoupling in space and in time Asynchronous events, spaces for data sharing Basic approach in many cases of wireless computing Adoption of proxies In addition, provisioning of some level/degree of visibility of running conditions to lower layers (sometimes reflective middleware) Transparency to location in RPC/RMI In mobile envs, partial visibility of location change, modifications in the QoS levels currently available,... 10

11 Internet Principles End-to-End Principle In its origin expression, referred to the opportunity to maintain state and intelligence only on network borders (edges) Internet connects these edges without keeping state, in order to achieve maximum efficiency and simplicity Today in real scenarios: firewalls, Network Address Traversal, caches for Web content. These are relevant modifications to this general principle Towards Trust-to-Trust principle (application logics always run on trusted nodes?) Robustness Principle Be conservative in what you do, be liberal in what you accept from others (attributed to Jon Postel, RFC 793 TCP) Internet stack developers should be careful in respecting what specified in existing RFCs when they implement their functions, but be ready to process less rigidly and to accept non-compliant input from others (even non-compliant with existing RFCs) 11

12 Web Principles Web principles follow the guidelines of the ones at the basis of the underlying TCP/IP stack Simplicity, modularity, decentralization, and robustness In particular, about access, data representation, and data transformation for Web resources: Principle of application of least powerful language to implement any feature (maximum accessibility and URL mechanism) Cental and recognized proble is state maintenance for stateful interactions. For instance, Representational State Transfer (REST- see later), based on URIs, HTTP, XML Client-server, stateless, cacheable, layered Uniform interface to transfer state between client and resource (limited set of well defined operations, possibly using code on demand) 12

13 SOA Principles Service Oriented Architecture (SOA) as the sw architecture where features and functions are structured around business processes and implemented via interoperable loosely-coupled services. Strongly based on message-oriented communications Re-usability, granularity, modularity, possibility of dynamic composition, component-based organization, interoperability Compliance with standards Identification and classification in terms of categories of services, provisioning and delivery, monitoring and tracking 13

14 Specific Principles for Mobile: Device Perspective (see NoTA) Example of Network on Terminal Architecture (NoTA): architecture proposed by Nokia to internally structure mobile devices; general validity of principles below System-level loose coupling. Loose coupling pushed to the extreme of hw components that are the constituents of the device Interconnect-centric. Central component is responsible for the interconnection of other components and services (common bus), based on message passing mechanisms Based on (and oriented to) services, features implemented via services with well defined interfaces. Together with loose-coupling, this favors adaptiveness Message & data driven. Message passing as preferred mechanism in applications. Data-driven communications in the sense of forwarding requests based also on current system conditions and data included in the requests themselves. Towards decoupling Implementation-wise heterogeneous. Integration of sub-systems from different manufacturers and vendors; once interface specs and request formats are known, components are inter-changeable 14

15 The NoTA Example Based on services also for the internal integration within a single device Possibility to compose sub-systems 15

16 Specific Principles for Mobile: Perspective Session Maintenance (SIP) Session Initiation Protocol (SIP), as basic mechanism for converging Next Generation Networks (NGNs). Have you already used the term in other courses, haven t you? Massive usage of proxies, e.g., for routing Call state maintained at endpoints Endpoint fate sharing, i.e., application failure when their endpoints fail Exploitation of a dialog model, NOT call-oriented model Architecture based on logical components (they play logical roles, not necessarily associated with physical components) Generality over efficiency Clear and clean separation between signalling plane and media distribution plane 16

17 The SIP Example Protocol that exchanges typically verbose messages and is based on proxies to maintain session state Dialog model, not call oriented Together with Diameter, it realizes the basis for IP Multimedia Subsystem (IMS) architecture 17

18 Specific Principles for Mobile: Cross-Layering Different types of interaction for different ways of crosslayering in a protocol stack Upward info flow, with info propagated from lower to higher layers, in opposite to classical principles for layered architectures Downward info flow, with info propagated from higher to lower layers, typically to configure lower-layer parameters and settings Back-and-forth info flow, with info propagated in both directions Merging of adjacent layers, allows the combination of different adjacent layers into a single super-layer Coupling with no addition of new interfaces. Two or more layers are coupled at design time in a finalized way, with no possibility of maintaining independency/abstraction from lower layer Vertical calibration between layers. Usually to achieve layersjoint optimization of the configuration of parameters (joint tuning) and to obtain better overall performance 18

19 Cross-Layering Principle Designed for X Layer X Upward information flow Downward information flow Back and forth flow Merging of adjacent layers Design coupling Vertical coupling 19

20 Architectural Patterns Several architectural patterns of general applicability and usage, not only in distributed systems: Level-based. Multi-layer sw architecture with different responsibilities rigidly allocated to different layers Client-Server. Most frequent pattern in distributed computing: clients use resources and services offered by server Peer-to-peer. Any node can dynamically play the role of either client or server; functionality could be more or less symmetric Pipeline (or pipe&filter). Pipeline as chain of processing elements aligned in such a way that output of one is offered as input for the successive one in the chain Multi-tier. Client-server architecture where applications are run by a multiplicity of different software agents Blackboard. A common knowledge base (blackboard) is updated iteratively by different knowledge sources, starting from including problem specification and then evolving to solution results Publish/Subscribe. 1) Event channel and 2) Notifier (abstracting from location/distribution of broker) 20

21 Architectural Patterns for Mobile Computing Not only usable in mobile applications, but particularly useful in these scenarios: Model-View-Control (MVC), as either architectural or design pattern, see Web applications Broker, to introduce and favor decoupling between clients and servers Microkernel. Crucial reduced system features (microkernel), cleanly separated from more complex and extended functionality, which may be plugged-in via given interfaces Active Object. It simplifies the support to asynchronous processing via encapsulation of requests and responses at service completion 21

22 Model-View-Control Application plit in three parts, with separated responsibilities and well-specified interaction modes Method invocations and events For example, used in Symbian OS 22

23 Broker Broker component that implements decoupling between clients and servers Servers register at brokers, by offering their services to clients via interfaces registered at the broker Clients access server functionality by sending service requests to the broker Broker duties include: to determine/localize the suitable server to perform request forwarding to servera to transmit results and exceptions back to clients Typical example: CORBA Object Request Broker 23

24 MicroKernel Pattern typically applied in scenarios with complex sw systems that play the role of platforms for other applications Desired features are extensibility, adaptivity, and interoperability Central idea is small extensible core that can be expanded through components that can be plugged-in dynamically External Server Calls Microkernel Microkernel Microkernel calls Internal Server Calls Adapter Calls Client 24

25 Support for asynchronous processing Active Object Works through encapsulation and management of asynchronous service requests and of responses when the service is completed Client is notified of operation completion and capable of performing other operations, even with the same server, in an asynchronous way Active Object runs in the same thread of main application, to reduce overhead of context switching between threads Active Object has to manage events in a non-preemptive way (one event processed at a time; rapid processing) Decide resumed object CActiveScheduler ActiveObject Status AsynchronousServiceProvider CActive Status flags 25

26 Patterns for Mobile Computing Three pattern categories for mobile middleware and applications: For distribution (how to distribute and access resources in runtime execution environment) remote facade, data transfer object, remote proxy, observer For resource management and synchronization session token, caching, eager acquisition, lazy acquisition, synchronization, rendezvous, state transfer For communication connection factory, client-initiated connection 26

27 Distribution: Remote Facade Mobile Device Addresses Directions and maps Last hop wireless network Remote Facade Addresses Coordinates Coordinates Routes Route Segment Direction Route Segment Highlighted map Fast fixed-network Map Web Services Coarse-grained interface towards single or multiple fine-grained objects Interface provided via remote gateway Accepts incoming requests that are compliant with facade interface Successive interactions are fine-grained between remote facade (gateway) and object interfaces Application adopting the pattern does NOT need to know which specific remote servers or functions are used to implement the requested operations 27

28 Distribution: Data Transfer Object (DTO) Data Transfer Object (DTO) pattern to offer a serializable container to transfer multiple data elements among distributed processes Primary goal is to reduce the number of remote method calls Single DTO contains all the data that have to be transferred because of interest for an overall application Usually implemented as a simple serializable object that includes a set of fields with the corresponding getter & setter methods 28

29 Distribution: Remote Proxy Proxy (or gateway) interposed between device and network By the way, it is clear the difference between proxy and gateway, isn t it? Client Web Browser encoded request wireless encoded response Gateway Encoders Decoders Protocol Gateways request response Server HTTP Server CGI,.. All messages/packets (or a selected subset of them) pass through the proxy, which can evaluate them (also their content) and perform operations on them Proxies also to perform computationally intensive operations in place of client device Proxy works as an adapter, by also enabling server-side interaction with no need of implementing terminal-specific protocols and solutions Typically need for discovery solutions to identify proxies at runtime 29

30 Distribution: Observer Supports definition of one-to-many dependencies between objects All objects that are considered dependent are notified at the occurrence of modifications of the state of objects under observation Decoupling via subject and observer Support to group-oriented communications, but limited scalability Adopted in Java and Jini event models Subject Update observers Observer ConcreteSubject Attach/detach observer Subject getstate ConcreteObserver 30

31 Resource Management: Session Token Makes simpler and more lightweight the duties and requirements for server-side state management Token emitted by server and sent to client (it includes data referring to the active session of the client with that server) Token includes session identifier (sometimes also related security info and time-to-live in order to avoid replay attacks) When client presents again the token to server, the server can correctly associate the client to its proper session (stato, ) By the way, in which technologies have you already seen the application of such a solution pattern? 31

32 Resource Management: Caching Suggests temporary storage of resources in local memory after their employment, instead of their immediate destruction or de-allocation First, local check in resource cache, whenever a new request for resource/service is received If cache hit, immediate delivery to requesting application If cache miss, request is propagated and new entry created in cache Examples of file systems, such as Coda and Aura, for pervasive computing ResourceProvider ResourceUser Access ResourceCache ResourceProvider provides Resource Resource Access 32

33 Resource Management: Eager Acquisition If needed resources are known by an application from the beginning, possibility to exploit this info to operate prefetching of required resources Result is that resources are already available locally when actual need will occur; no necessity of remote requests Examples of resources such as memory, network connections, file handlers, threads, and sessions ResourceProvider ResourceUser ProviderProxy Resource 33

34 Resource Management: Lazy Acquisition To optimize system resource usage, this pattern suggest to postpone resource acquisition till the end (latest possible time) Resource Proxy is responsible for intercepting all user requests for resources Resource Proxy does NOT acquire resources, transparently, until the user does not access them explicitly ResourceProvider ResourceUser ResourceProxy Resource 34

35 Synchronization To efficiently manage multiple instances of data for a set of devices, this pattern suggests to realize and use a synchronization engine Sync engine keeps track of modifications made on employed data, by exchanging modification metadata transparently (coordination of different engines) and by updating data when appropriate, e.g., connectivity is available Sync engine responsible for conflict detection and resolution during sync process Possibility to access stale data and conflicts Terminal Synchronization engine Host Synchronization engine Now, small :-) lecturing time about sync and SyncML Data Data 35

36 Synchronization and SyncML: Traveling Salesman Scenario Mobile Device Local DB Company Central DB Mobile Device Local DB Itinerary covering clients to visit Mobile Device Local DB Also possibility of temp disconnection Customer A Customer B Customer C 36

37 Two Primary Types of Possible Synchronization 37 Synchronization at process level Synchronization at data level time Process A changes Data item 1 Process B System A Process changes System B Process changes sync Data Item 1 Data Item 1 time Process A Data item 1 changes sync detection sync Process B Main? System changes Data Item 1 Data item 1

38 Sometimes it is possible to merge data during synchronization System A System B System A System B Order with 50 items Order with 25 items Order: 50 Order: 25 Stock Product A: 100 Stock Product A: 100 Stock Product A: 50 Stock Product A: 75 Disconnected operations Main? System Apply changes in sync phase Main? System Stock: 100 Stock: 25 Insert order, reduce stock Insert order, reduce stock No conflicts in this case; always true? 38

39 Synchronization: Basic Models and Elements Until an efficient implementation of the ideal concept of cloud computing will not be available, seamlessly and with low cost, relevance of disconnected operations and synchronization in a second step/phase Apart from joking, costs (in terms of money, energy, ) + connectivity bandwidth + discontinuous connectivity push towards disconnected operations and replicas/copies management Freedom degrees in synchronization: When to launch sync operations Manuas vs automated trigger See also similar problems in more traditional distributed replication How to synchronize (sync styles) Pessimistic single modifiable copy; synchronization as replication of the single modified instance Optimistic multiple copies may be modified; in a second step, trying to reconcile already performed modifications With which costs? 39

40 Synchronization: Basic Models and Elements Often used basic mechanism: versioning Different possible solutions; in general, open issue on how to do versioning to improve sync process according to optimistic approach Usually simple versioning mechanisms staisfy the following properties: If version B comes from a change in A, then version B is greater than version A If two copies have been concurrently modified in different locations, then version numbers are NOT comparable Linear sequence of versions at each single location; anyway possibility to detect concurrent modifications Two phases (in addition to update propagation): Change detection (clean or dirty copies, also with conservative approach) Reconciliation (need to consider syntax and semantics of data) Log with modification operations reconciliation as processing of overall log that starts from the last common version before change State comparison it operates directly on changed data 40

41 Synchronization In realistic cases, always synchronization as a process between ONLY two nodes that keep data copies Centralized architecture with one node playing the role of master for each data instance Tree-based architecture (sync between node and its single parent) More general architecture as cyclic connected graph (greater flexibility but more complex management: e.g., which previous versions to consider for state comparison?) Rarely used in nowadays sync systems Reconciliation algorithms may benefit from knowledge of the nature (e.g., structure) of shared data Growing reconciliation capabilities while passing from opaque info, to known structure, to unique id also for data parts, to known semantics, and finally to application-specific solutions 41

42 A couple of notable examples File systems (e.g., Coda, just to mention one of the oldest): Do you know the technical difference and distinction between Networked File System (NFS) and Distributed File System (DFS), don t you? Typically DFS work on consistency for folder tree, not at the level of data content for each file (delegated to an external synchronizer plug-in); oftem request to explicit intervention by user Similarly to consistency management for an XML tree Do you know the ancestor tools diff and patch in Unix? Or more refined and sophisticated examples of tools, such as rsync? 42

43 A couple of notable examples Concurrent Versions Systems (CVSs) for collaborative work, usually for sw development: First trivial versions with centralized server that releases a lock to a single participant at a time; NO need for reconciliation Now generally optimistic approach and centralized architecture: 3-way merge algorithm; conflict detection and possible request for user intervention Even first non-centralized approaches, with exploitation of change sets (each of them atomic and with unique id): synchronization a ordered and completed application of all change sets 43

44 Middleware for Synchronization Of growing relevance for mobile systems and services, middlewarelayer support for application sync Synchronization APIs available to developers Operations for update detection and reconciliation as typically local operations On the contrary, needed actions of update propagation as operations that call for novel protocols and support of intermittent connectivity Often based on messaging or pub/sub systems Example of (partial) solution for synchronization, relatively widespread and adopted: SyncML 44

45 SyncML Open Mobile Alliance (OMA) adopted Synchronization Markup Language (SyncML) as the sync language to increase interoperability and to contrast growing number of proprietary protocols SyncML is NOT a compete sync solution: only sync protocol (update propagation), NO specifications about change detection and reconciliation Based on log-oriented approach (idea to track any insert, delete,... operations on data objects that are considered atomic entities in SyncML) Centralized architecture; message exchange Sync is started by client Server receives modifications, applies them to its main replica, determines possible conflicts, and returns back to client another SyncML file with further modifications to apply Usage of several protocols at lower layers (HTTP, OBEX, ) to transfer SyncML messages 45

46 SyncML Sync server typically knows application semantics (external to SyncML specification) for reconciliation; usage of version numbers Used in several existing applications OMA includes Ericsson, Nokia, IBM, Motorola, 46

47 SyncML in Finer Details Designed to be efficient over wireless networks: data and command encoding is optimized (WAP Binary XML - WBXML) in a binary format Robust to connection losses during message exchange Several solutions for message transfer: HTTP, Bluetooth OBEX, IrDA, SMTP, and WAP Wireless Session Protocol Support to any type of data, from vcard to , from relational data to HTML/XML documents and binary data Standard specification defines: SyncML representation protocol for messsage format SyncML synchronization protocol for sync operations between two entities (client and server in SyncML terminology) 47

48 SyncML Synchronization Protocol Client and server have to maintain modification logs (non-standardized format); if log is lost, slow sync Initial negotiation to determine device capabilities (e.g., supported data formats, ) Exploitation of sync anchors (strings) to identify sync events. Client-side, last anchor call represents last event before sync with server; next the current one. Comparison with server to verify that faults/failures have not generated synch anchor loss; in the case, slow sync Unique identifiers for data to keep synchronized. Usage of client-side Locally Unique IDs (LUIDs) and server-side GUIDs; mapping table is maintained server side Mode to notify client that conflict has been solved (state codes to describe conflict type and how it has been solved). For example: <Status> <MsgRef> 1 </MsgRef> <CmdRef> 2 </CmdRef> <SourceRef> 2121 </SourceRef> <Data> 208 </Data> <! conflict solved through data merge - -> </Status> 48

49 <SyncML> <SyncHdr> <VerDTD>1.0</VerDTD> <VerProto>SyncML/1.0</VerProto> <SessionID>1</SessionID> <MsgID>2</MsgID> Example of SyncML Message: Client Sends Changes <Target><LocURI> </Target> <Source><LocURI>IMEI: </LocURI></Source> </SyncHdr> <SyncBody> <Status> <MsgRef>1</MsgRef><CmdRef>0</CmdRef> <Cmd>SyncHdr</Cmd> <TargetRef>IMEI: </TargetRef> <SourceRef> </SourceRef> <Data>212</Data> <!--Statuscode = OK, successful authentication for session--> </Status> 49

50 Example of SyncML Message: Client Sends Changes <Status> <MsgRef>1</MsgRef><CmdRef>1</CmdRef> <Cmd>Alert</Cmd> <TargetRef>./dev-contacts</TargetRef> <SourceRef>./contacts/james_bond</SourceRef> <Data>200</Data> <! Status code for success--> <Item> <Data> <Anchor xmlns='syncml:metinf'><next> t093223z </Next></Anchor> </Data> </Item> </Status> <Sync> <CmdID>1</CmdID> <Target><LocURI>./contacts/james_bond</LocURI></Target> <Source><LocURI>./dev-contacts</LocURI></Source> <Meta> <Mem xmlns='syncml:metinf'> <FreeMem>8100</FreeMem> <! Free memory on client calendar app--> 50

51 Example of SyncML Message: Clients Sends Changes <FreeId>81</FreeId> <! Number of free records in calendar--> </Mem> </Meta> <Replace> <CmdID>2</CmdID> <Meta><Type xmlns='syncml:metinf'>text/x-vcard</type> </Meta> <Item> </SyncBody> </SyncML> <Source><LocURI>1012</LocURI></Source> <Data> vcard data go here </Data> </Item> </Replace> </Sync> 51

52 Further Info and Useful Links There are existing servers, also open source, that support SyncML, e.g., Sync4j and its implementation as extension module for Java Enterprise application servers (see Funambol community ) Further information and useful links : SyncML - x.html JSR230 Data Sync API

53 Synchronization: Rendezvous Rendezvous as frequently used pattern in network infrastructure elements (but not only) to realize management of mobile devices In general, rendezvous as a pattern to allow two or more entities to coordinate their activities Typically implemented in distributed systems via rendezvous points Entities that are logically centralized (indirection points) Accept messages/packets and keep state, thus being able to respond, e.g., on where a mobile device is currently located Examples: DNS, Mobile IP, HIP,... Client A Update data Rendezvous Lookup data Client B Access client A Either through Rendezvous or directly 53

54 Resource Management & Synchro: State Transfer Client Old AP New AP Rendezvous Correspondent node Old AP is the current point of attachment Attach to a new AP Teardown old attachment Update location As you already know, different types of handoff are possible Forward message Lookup client Send message Handoffs may need state transfer between APs Exploitaton of indirection point (rendezvous) to ensure reachability 54

55 Examples of Rendezvous & State Transfer: Mobile Correspondent IP, Wireless CORBA, Mobile Web Server host Home agent Foreign agent Home link Web server Mobile host Browser Care-of-Address (CoA) Foreign link Home domain Home Location Agent Operator firewall 3 Gateway 2 1 DNS Terminal Bridge GIOP Terminal tunnel domain Internet Access Bridge Access Bridge Visited domain Access Bridge Host Access Bridge 55

56 Communication: Connection Factory Suggests decoupling application and underlying communication system via introduction of a component used to instantiate, access, and terminate connections The factory design pattern is widely used; in this case, it is employed to enable the efficient management and re-use of connections Largely used in the Java world in general. APIs for Java ME communications adopt this pattern 56

57 Communication: Client-initiated Connection for Push Model Client Edge Proxy Server Lookup service Initiate connection Update client status Lookup client In many cases it is impossible to reach a mobile client due to firewall/nat along the communication path Forward message Send message Associate message with connection These issues motivate the usage of client-initiated connections to a server with public IP address that then can operate message push towards client by using existing connection Examples: MS DirectPush, AJAX 57

58 Communication: Multiplexed Connection Connection 1 Connection N Connection 1 Connection N Multiplexer Single connection Demultiplexer Inefficient to create many connections that may compete for network/system resource consumption Multiplexed Connection uses a single logical connection and multiplexes it to support multiple connections at a higher abstraction level Allows differentiated priorities to multiplexed messages Example: Stream Control Transfer Protocol (SCTP) 58

Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering

Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering Mobile Systems M Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering Mobile Systems M course (8 ECTS) II Term Academic Year 2016/2017 05 Design Principles

More information

Mobile Middleware. Principles and Patterns

Mobile Middleware. Principles and Patterns Mobile Middleware Principles and Patterns Contents Overview Principles Patterns Mobile patterns Examples Principles A principle signifies strong belief in a certain state or property of a subject. Principles

More information

Contents. Mobile Middleware Course. Introduction and Overview Sasu Tarkoma. Lecture Outline. Course Book. Mobile Evolution.

Contents. Mobile Middleware Course. Introduction and Overview Sasu Tarkoma. Lecture Outline. Course Book. Mobile Evolution. Contents Mobile Middleware Course Introduction and Overview Sasu Tarkoma Lecture outline Motivation Mobile middleware overview Examples Summary Lecture Outline Course Book 16.3. 16-18 Introduction and

More information

Mobile Middleware Course. Introduction and Overview Sasu Tarkoma

Mobile Middleware Course. Introduction and Overview Sasu Tarkoma Mobile Middleware Course Introduction and Overview Sasu Tarkoma Contents Course outline Motivation Mobile middleware overview Course Overview 4 credit course Three components Lectures Assignment Literature

More information

SyncML Sync Protocol, version 1.0

SyncML Sync Protocol, version 1.0 1 of 60 Pages, version 1.0 Abstract This specification defines synchronization protocol between a SyncML client and server in form of message sequence charts. It specifies how to use the SyncML Representation

More information

Vortex Whitepaper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems

Vortex Whitepaper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems Vortex Whitepaper Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems www.adlinktech.com 2017 Table of Contents 1. Introduction........ P 3 2. Iot and

More information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process

More information

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006 Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006 John Hohwald Slide 1 Definitions and Terminology What is SOA? SOA is an architectural style whose goal is to achieve loose coupling

More information

SyncML Overview. Noel Poore, Psion Computers PLC

SyncML Overview. Noel Poore, Psion Computers PLC SyncML Overview Noel Poore, Psion Computers PLC Data synchronization is a field of growing importance. As the number of mobile devices increases rapidly in the next few years, more and more data is going

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

CAS 703 Software Design

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

More information

Mobile Middleware Course. Mobile Platforms and Middleware. Sasu Tarkoma

Mobile Middleware Course. Mobile Platforms and Middleware. Sasu Tarkoma Mobile Middleware Course Mobile Platforms and Middleware Sasu Tarkoma Role of Software and Algorithms Software has an increasingly important role in mobile devices Increase in device capabilities Interaction

More information

Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering

Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering Mobile Systems M Alma Mater Studiorum University of Bologna CdS Laurea Magistrale (MSc) in Computer Science Engineering Mobile Systems M course (8 ECTS) II Term Academic Year 2016/2017 08 Application Domains

More information

Content Synchronization

Content Synchronization Content Synchronization T-110.5120 Next generation wireless networks Helsinki University of Technology Jin ZhiHua (77168L) Chia PernHui (77146H 46H) Introduction Overview Why do we need sync? What Sync

More information

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

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

More information

(9A05803) WEB SERVICES (ELECTIVE - III)

(9A05803) WEB SERVICES (ELECTIVE - III) 1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available

More information

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol My Articles: Home Networking Wearable Computing IIOP Meet My Friend Intelligent Agents We are

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

Synchronization. Kari Pihkala HUT, Telecommunications Software and Multimedia Laboratory. Abstract

Synchronization. Kari Pihkala HUT, Telecommunications Software and Multimedia Laboratory. Abstract Synchronization Kari Pihkala HUT, Telecommunications Software and Multimedia Laboratory Kari.Pihkala@hut.fi Abstract This paper discusses various synchronization methods for mobile devices. It gives an

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

Overview SENTINET 3.1

Overview SENTINET 3.1 Overview SENTINET 3.1 Overview 1 Contents Introduction... 2 Customer Benefits... 3 Development and Test... 3 Production and Operations... 4 Architecture... 5 Technology Stack... 7 Features Summary... 7

More information

1.264 Lecture 16. Legacy Middleware

1.264 Lecture 16. Legacy Middleware 1.264 Lecture 16 Legacy Middleware What is legacy middleware? Client (user interface, local application) Client (user interface, local application) How do we connect clients and servers? Middleware Network

More information

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

3C05 - Advanced Software Engineering Thursday, April 29, 2004

3C05 - Advanced Software Engineering Thursday, April 29, 2004 Distributed Software Architecture Using Middleware Avtar Raikmo Overview Middleware What is middleware? Why do we need middleware? Types of middleware Distributed Software Architecture Business Object

More information

COMMUNICATION PROTOCOLS

COMMUNICATION PROTOCOLS COMMUNICATION PROTOCOLS Index Chapter 1. Introduction Chapter 2. Software components message exchange JMS and Tibco Rendezvous Chapter 3. Communication over the Internet Simple Object Access Protocol (SOAP)

More information

Architectural Patterns

Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SAPM Spring 2012:

More information

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2 Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC

Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC The Business Objective Automated Business Collaboration Facilitating exchange of information

More information

Distribution and Integration Technologies

Distribution and Integration Technologies Distribution and Integration Technologies Distributed Architectures Patterns and Styles 1 Distributed applications infrastructure ISP intranet wireless backbone desktop computer: server: laptops: tablets:

More information

Services Oriented Architecture and the Enterprise Services Bus

Services Oriented Architecture and the Enterprise Services Bus IBM Software Group Services Oriented Architecture and the Enterprise Services Bus The next step to an on demand business Geoff Hambrick Distinguished Engineer, ISSW Enablement Team ghambric@us.ibm.com

More information

Distribution and web services

Distribution and web services Chair of Software Engineering Carlo A. Furia, Bertrand Meyer Distribution and web services From concurrent to distributed systems Node configuration Multiprocessor Multicomputer Distributed system CPU

More information

Network protocols and. network systems INTRODUCTION CHAPTER

Network protocols and. network systems INTRODUCTION CHAPTER CHAPTER Network protocols and 2 network systems INTRODUCTION The technical area of telecommunications and networking is a mature area of engineering that has experienced significant contributions for more

More information

Outline. CS5984 Mobile Computing HTTP. HTTP (especially 1.0) Problems 1/2. Dr. Ayman Abdel-Hamid, CS5984. Wireless Web.

Outline. CS5984 Mobile Computing HTTP. HTTP (especially 1.0) Problems 1/2. Dr. Ayman Abdel-Hamid, CS5984. Wireless Web. CS5984 Mobile Computing Dr. Ayman Abdel-Hamid Computer Science Department Virginia Tech Outline HTTP HTTP 1.0 problems Approaches to help wireless access HTTP 1.1 enhancements System Architecture for Web

More information

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examination Architecture of Distributed Systems (2IMN10 / 2II45), on Monday November 2, 2015, from 13.30 to 16.30 hours. Indicate on

More information

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts

More information

OPTIMIZING MOBILITY MANAGEMENT IN FUTURE IPv6 MOBILE NETWORKS

OPTIMIZING MOBILITY MANAGEMENT IN FUTURE IPv6 MOBILE NETWORKS OPTIMIZING MOBILITY MANAGEMENT IN FUTURE IPv6 MOBILE NETWORKS Sandro Grech Nokia Networks (Networks Systems Research) Supervisor: Prof. Raimo Kantola 1 SANDRO GRECH - OPTIMIZING MOBILITY MANAGEMENT IN

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

one.world Towards a System Architecture for Pervasive Computing

one.world Towards a System Architecture for Pervasive Computing Towards a System Architecture for Pervasive Computing Robert Grimm, Janet Davis, Ben Hendrickson, Eric Lemar, Tom Anderson, Brian Bershad, Gaetano Borriello, David Wetherall University of Washington Vision

More information

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Announcements.  me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris Announcements Email me your survey: See the Announcements page Today Conceptual overview of distributed systems System models Reading Today: Chapter 2 of Coulouris Next topic: client-side processing (HTML,

More information

System models for distributed systems

System models for distributed systems System models for distributed systems INF5040/9040 autumn 2010 lecturer: Frank Eliassen INF5040 H2010, Frank Eliassen 1 System models Purpose illustrate/describe common properties and design choices for

More information

Embedding Identity in Mobile Environments

Embedding Identity in Mobile Environments Mobiarch 2007 - Kyoto, August 27 th, 2007 Embedding Identity in Mobile Environments Alfredo Matos Susana Sargento Rui L. Aguiar 2005, it -

More information

isync SyncML Guide

isync SyncML Guide isync SyncML Guide 2006-07-14 Apple Computer, Inc. 2006 Apple Computer, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form

More information

Chapter 2 System Models

Chapter 2 System Models CSF661 Distributed Systems 分散式系統 Chapter 2 System Models 吳俊興國立高雄大學資訊工程學系 Chapter 2 System Models 2.1 Introduction 2.2 Physical models 2.3 Architectural models 2.4 Fundamental models 2.5 Summary 2 A physical

More information

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems Distributed Systems Outline Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems What Is A Distributed System? A collection of independent computers that appears

More information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design

More information

WWW, REST, and Web Services

WWW, REST, and Web Services WWW, REST, and Web Services Instructor: Yongjie Zheng Aprile 18, 2017 CS 5553: Software Architecture and Design World Wide Web (WWW) What is the Web? What challenges does the Web have to address? 2 What

More information

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Software Paradigms (Lesson 10) Selected Topics in Software Architecture Software Paradigms (Lesson 10) Selected Topics in Software Architecture Table of Contents 1 World-Wide-Web... 2 1.1 Basic Architectural Solution... 2 1.2 Designing WWW Applications... 7 2 CORBA... 11 2.1

More information

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 1 Introduction Modified by: Dr. Ramzi Saifan Definition of a Distributed System (1) A distributed

More information

1 Executive Overview The Benefits and Objectives of BPDM

1 Executive Overview The Benefits and Objectives of BPDM 1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will

More information

Design of Next Generation Internet Based on Application-Oriented Networking

Design of Next Generation Internet Based on Application-Oriented Networking Design of Next Generation Internet Based on Application-Oriented Networking Yu Cheng Department of Electrical and Computer Engineering Illinois Institute of Technology Chicago, Illinois, USA cheng@iit.edu

More information

UNIVERSITY OF CAGLIARI

UNIVERSITY OF CAGLIARI UNIVERSITY OF CAGLIARI DIEE - Department of Electrical and Electronic Engineering Infrastrutture ed Applicazioni Avanzate nell Internet SDN: Control Plane ACK: content taken from Foundations of Modern

More information

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion

More information

Lesson 14 SOA with REST (Part I)

Lesson 14 SOA with REST (Part I) Lesson 14 SOA with REST (Part I) Service Oriented Architectures Security Module 3 - Resource-oriented services Unit 1 REST Ernesto Damiani Università di Milano Web Sites (1992) WS-* Web Services (2000)

More information

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

More information

02267: Software Development of Web Services

02267: Software Development of Web Services 02267: Software Development of Web Services Week 1 Hubert Baumeister huba@dtu.dk Department of Applied Mathematics and Computer Science Technical University of Denmark Fall 2013 Contents Course Introduction

More information

IEEE C /08

IEEE C /08 2003-01-10 IEEE C802.20-03/08 Project Title IEEE 802.20 Working Group on Mobile Broadband Wireless Access A Vision of an IP-based Cellular Network Date Submitted

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

IP Mobility vs. Session Mobility

IP Mobility vs. Session Mobility IP Mobility vs. Session Mobility Securing wireless communication is a formidable task, something that many companies are rapidly learning the hard way. IP level solutions become extremely cumbersome when

More information

Service Mesh and Microservices Networking

Service Mesh and Microservices Networking Service Mesh and Microservices Networking WHITEPAPER Service mesh and microservice networking As organizations adopt cloud infrastructure, there is a concurrent change in application architectures towards

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Other matters: review of the Bakery Algorithm: why can t we simply keep track of the last ticket taken and the next ticvket to be called? Ref: [Coulouris&al Ch 1, 2]

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

System Models for Distributed Systems

System Models for Distributed Systems System Models for Distributed Systems INF5040/9040 Autumn 2015 Lecturer: Amir Taherkordi (ifi/uio) August 31, 2015 Outline 1. Introduction 2. Physical Models 4. Fundamental Models 2 INF5040 1 System Models

More information

Mobile Platforms and Application Development. Prof. Sasu Tarkoma

Mobile Platforms and Application Development. Prof. Sasu Tarkoma Mobile Platforms and Application Development Prof. Sasu Tarkoma Introduction Mobile software is a growing area Ten billion downloads from Apple AppStore Development processes, tools, APIs are crucial for

More information

Mobile Application Ecosystems

Mobile Application Ecosystems Mobile Application Ecosystems Mika Mannermaa November 14, 2005 T-110.5120 Next Generation Wireless Networks Helsinki University of Technology Delivering Quality Content into the Hands of Mobile Consumers

More information

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics Web Services Lecture I Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics 2014.02.28 2014.02.28 Valdas Rapševičius. Java Technologies 1 Outline Introduction to SOA SOA Concepts:

More information

Module 1 - Distributed System Architectures & Models

Module 1 - Distributed System Architectures & Models Module 1 - Distributed System Architectures & Models System Architecture Defines the structure of the system components identified functions of each component defined interrelationships and interactions

More information

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery Java Message Service (JMS) is a standardized messaging interface that has become a pervasive part of the IT landscape

More information

Overlay and P2P Networks. Introduction and unstructured networks. Prof. Sasu Tarkoma

Overlay and P2P Networks. Introduction and unstructured networks. Prof. Sasu Tarkoma Overlay and P2P Networks Introduction and unstructured networks Prof. Sasu Tarkoma 14.1.2013 Contents Overlay networks and intro to networking Unstructured networks Overlay Networks An overlay network

More information

Need For Protocol Architecture

Need For Protocol Architecture Chapter 2 CS420/520 Axel Krings Page 1 Need For Protocol Architecture E.g. File transfer Source must activate communications path or inform network of destination Source must check destination is prepared

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

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016 Internet Technology 06. Exam 1 Review Paul Krzyzanowski Rutgers University Spring 2016 March 2, 2016 2016 Paul Krzyzanowski 1 Question 1 Defend or contradict this statement: for maximum efficiency, at

More information

Introduction to Distributed Systems. INF5040/9040 Autumn 2018 Lecturer: Eli Gjørven (ifi/uio)

Introduction to Distributed Systems. INF5040/9040 Autumn 2018 Lecturer: Eli Gjørven (ifi/uio) Introduction to Distributed Systems INF5040/9040 Autumn 2018 Lecturer: Eli Gjørven (ifi/uio) August 28, 2018 Outline Definition of a distributed system Goals of a distributed system Implications of distributed

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Web Service Definition The term "Web Services" can be confusing.

More information

Lecture 9: MIMD Architectures

Lecture 9: MIMD Architectures Lecture 9: MIMD Architectures Introduction and classification Symmetric multiprocessors NUMA architecture Clusters Zebo Peng, IDA, LiTH 1 Introduction A set of general purpose processors is connected together.

More information

Semantic SOA - Realization of the Adaptive Services Grid

Semantic SOA - Realization of the Adaptive Services Grid Semantic SOA - Realization of the Adaptive Services Grid results of the final year bachelor project Outline review of midterm results engineering methodology service development build-up of ASG software

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition. Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 01: Version: February 21, 2011 1 / 26 Contents Chapter 01: 02: Architectures

More information

WAP/ WML : Wireless Protocol wireless protocol

WAP/ WML : Wireless Protocol wireless protocol Device Connectivity Device Connectivity Pervasive computing devices do not develop their full potential unless they are connected to applications and services through the Internet. Device connectivity

More information

Universal Communication Component on Symbian Series60 Platform

Universal Communication Component on Symbian Series60 Platform Universal Communication Component on Symbian Series60 Platform Róbert Kereskényi, Bertalan Forstner, Hassan Charaf Department of Automation and Applied Informatics Budapest University of Technology and

More information

CSE 5306 Distributed Systems. Course Introduction

CSE 5306 Distributed Systems. Course Introduction CSE 5306 Distributed Systems Course Introduction 1 Instructor and TA Dr. Donggang Liu @ CSE Web: http://ranger.uta.edu/~dliu Email: dliu@uta.edu Phone: 817-2720741 Office: ERB 555 Office hours: Tus/Ths

More information

Using JBI for Service-Oriented Integration (SOI)

Using JBI for Service-Oriented Integration (SOI) Using JBI for -Oriented Integration (SOI) Ron Ten-Hove, Sun Microsystems January 27, 2006 2006, Sun Microsystems Inc. Introduction How do you use a service-oriented architecture (SOA)? This is an important

More information

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Software Architecture Lecture 5 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Object-Oriented Style Components are objects Data and associated

More information

Distributed Computing Environment (DCE)

Distributed Computing Environment (DCE) Distributed Computing Environment (DCE) Distributed Computing means computing that involves the cooperation of two or more machines communicating over a network as depicted in Fig-1. The machines participating

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Service-Oriented Programming (SOP) SOP A programming paradigm that

More information

Distributed Systems Principles and Paradigms. Chapter 01: Introduction

Distributed Systems Principles and Paradigms. Chapter 01: Introduction Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 01: Introduction Version: October 25, 2009 2 / 26 Contents Chapter

More information

Framework of Vertical Multi-homing in IPv6-based NGN

Framework of Vertical Multi-homing in IPv6-based NGN ITU-T Recommendation Y.ipv6-vmh Framework of Vertical Multi-homing in IPv6-based NGN Summary This Recommendation describes a framework of vertical multi-homing in IPv6-based NGN. This Recommendation identifies

More information

Today: Distributed Objects. Distributed Objects

Today: Distributed Objects. Distributed Objects Today: Distributed Objects Case study: EJBs (Enterprise Java Beans) Case study: CORBA Lecture 23, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy.

More information

CA464 Distributed Programming

CA464 Distributed Programming 1 / 25 CA464 Distributed Programming Lecturer: Martin Crane Office: L2.51 Phone: 8974 Email: martin.crane@computing.dcu.ie WWW: http://www.computing.dcu.ie/ mcrane Course Page: "/CA464NewUpdate Textbook

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 01 (version September 5, 2007) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

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

Distributed Systems. Prof. Dr. Schahram Dustdar Distributed Systems Group Vienna University of Technology. dsg.tuwien.ac.

Distributed Systems. Prof. Dr. Schahram Dustdar Distributed Systems Group Vienna University of Technology. dsg.tuwien.ac. Distributed Systems Prof. Dr. Schahram Dustdar Distributed Systems Group Vienna University of Technology dustdar@dsg.tuwien.ac.at dsg.tuwien.ac.at Outline 1. History 2. What is a distributed system? 3.

More information

DISTRIBUTED SYSTEMS. Second Edition. Andrew S. Tanenbaum Maarten Van Steen. Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON.

DISTRIBUTED SYSTEMS. Second Edition. Andrew S. Tanenbaum Maarten Van Steen. Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON. DISTRIBUTED SYSTEMS 121r itac itple TAYAdiets Second Edition Andrew S. Tanenbaum Maarten Van Steen Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON Prentice Hall Upper Saddle River, NJ 07458 CONTENTS

More information

CCNA Exploration Network Fundamentals. Chapter 03 Application Functionality and Protocols

CCNA Exploration Network Fundamentals. Chapter 03 Application Functionality and Protocols CCNA Exploration Network Fundamentals Chapter 03 Application Functionality and Protocols Updated: 27/04/2008 1 3.1 Applications: The Interface Between Human and Networks Applications provide the means

More information

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader... Table of Contents Foreword..................... xv About This Book... xvii About The Authors............... xxiii Guide To The Reader.............. xxvii Part I Some Concepts.................. 1 1 On Patterns

More information

Data Synchronization in Mobile Computing Systems Lesson 08 SyncML Language Features

Data Synchronization in Mobile Computing Systems Lesson 08 SyncML Language Features Data Synchronization in Mobile Computing Systems Lesson 08 SyncML Language Features Oxford University Press 2007. All rights reserved. 1 A mobile computing system Consists of (i) mobile device, (ii) personal

More information

IceWarp Unified Communications. SyncML Guide. Version 10.4

IceWarp Unified Communications. SyncML Guide. Version 10.4 IceWarp Unified Communications SyncML Guide Version 10.4 Printed on 16 April, 2012 Contents SyncML 1 Feature Overview... 3 Client Device Support... 5 IceWarp Server and SyncML - Basic Concept... 7 Standard

More information

Analysis of Effectiveness of Open Service Architecture for Fixed and Mobile Convergence

Analysis of Effectiveness of Open Service Architecture for Fixed and Mobile Convergence Analysis of Effectiveness of Open Service Architecture for Fixed and Mobile Convergence Kyung-Hyu Lee* Jeung-Heon Hahn* Electronics and Telecommunications Research Institute* Email: {khyulee, stevehahn

More information