Presentation is loading. Please wait.

Presentation is loading. Please wait.

.NET Mobile Application Development Introduction to Mobile and Distributed Applications.

Similar presentations


Presentation on theme: ".NET Mobile Application Development Introduction to Mobile and Distributed Applications."— Presentation transcript:

1 .NET Mobile Application Development Introduction to Mobile and Distributed Applications

2 Introduction  In this course we will consider the development of mobile applications, with examples based on the Microsoft.NET Framework  Mobile applications are often clients in distributed systems and we approach the course from this perspective  We will consider >distributed systems and their characteristics >mobile devices and their characteristics >software technologies for mobile and distributed computing >designing mobile applications >security in mobile and distributed applications

3 Distributed Applications  A distributed application is >an application that spreads its execution over more than one computer >individual distributed components interact via the network  Two key criteria for distributed applications >Performance ­can service thousands of simultaneous user >Scalability  Reasons for using distributed architectures >integrating existing legacy systems >providing synchronisation and communication between multiple clients (e.g. multiplayer gaming system) >support the use of thin clients >resource sharing, reliability and fault tolerance ­can be scaled-up to cope with more users or requests

4 Characteristics of Distributed Applications  Execution spread over more than one computer  Components are networked  Different failure modes. >failures are often partial – i.e. only one of the required components may fail whilst others continue operating. This is different to non-distributed applications >failure may not be due to failure of components but failure of the network connection  Application appears as single coherent whole >user is not aware of the various networked machines (transparency)  Concurrency is the norm in networked systems >servers interact with multiple clients >multiple clients may access a resource simultaneously >clients use multi-threading to maintain responsiveness

5 Real-World Challenges  Distributed applications have to contend with a variety of >connectivity characteristics ­bandwidth differences ­intermittent connectivity (mobile devices) >usage patterns >hardware, operating systems and network platforms  Applications must also >provide security of data and resources, particularly with mobile devices that are easily lost or stolen >ensure user privacy >be resilient to attack

6 Distributed Architectures  Client/Server >Most common distributed architecture >Servers provide services; Clients make requests of servers to use services  Peer-Peer >All components play similar role; no distinction between client and server  Multi-tier >Standard layered design pattern applied to distributed applications  Mobile code >Distributed components downloaded on demand

7 Other Architectural Components  Thin clients >user interface is executed on a computer local >all application logic executed on remote compute server  Caches >store of recently used data and objects located closer to the user >used to overcome network latencies  Proxies >‘Stand-ins’ for components on remote machines

8 Distributed Technologies  A variety of technologies exist for building distributed applications  Most important technologies are >Remote Procedure Call (RPC) ­allows a client to call a procedure running on a server ­not available on mobile devices >XML Web Services ­components hosted by Web servers allow simple RPC via XML ­available to mobile and desktop platforms >Messaging ­lightweight asynchronous communication over variety of mechanisms (e-mail, SMS, etc)

9 Distributed Environments  Several key distributed application development technologies exist >CORBA >Java / Java Micro-edition (J2SE/J2ME) >.NET /.NET Compact Framework  Both Java and.NET support >development on both desktop and mobile platforms >remote object interaction >XML Web services >messaging  We will use.NET and the.NET Compact Framework as our example throughout this course

10 Mobile Devices  Mobile devices are >small, personal, intermittently networked devices >increasingly popular >becoming more important as clients in distributed systems  Mobile devices present particular challenges to distributed application designers due to their >limited power and resources >intermittent connectivity >security

11 Designing Distributed Applications  Designing good distributed applications requires adherence to several design principles >Principle of Locality ­related parts of application should be located in close proximity ­data should be kept close to where it is used >Principle of Sharing ­resources shared to minimize load >Principle of Parallelism ­deploying load across multiple servers/devices to achieve appropriate performance and enable scaling

12 Security  User privacy and security of data and resources is of paramount importance.  Three key aspects >Confidentiality >Integrity >Availability  Security is particularly important for mobile devices, which are easily lost or stolen >A secured corporate network can easily be compromised by the loss or theft of a single mobile device

13  In this session we have >introduced the field of mobile and distributed applications development >highlighted the areas we will study in the rest of the course  In the next session we will consider >Mobile devices >Mobile devices as clients in distributed applications >Particular challenges of mobile devices Summary


Download ppt ".NET Mobile Application Development Introduction to Mobile and Distributed Applications."

Similar presentations


Ads by Google