120 likes | 298 Views
Distributed Systems and Architectures. CET306 Harry R. Erwin University of Sunderland. Roadmap. Survey of types of distributed systems and architectures RMI . . NET remoting . XML web services, focussing on the WCF . Client-server. N -tier. Grid and cloud computing.
E N D
Distributed Systems and Architectures CET306 Harry R. Erwin University of Sunderland
Roadmap • Survey of types of distributed systems and architectures • RMI. • .NET remoting. • XML web services, focussing on the WCF. • Client-server. • N-tier. • Grid and cloud computing. • Mobility. • First semester project out • Discussion of textbooks and readings
Texts • Clay Breshears (2009) The Art of Concurrency: A Thread Monkey's Guide to Writing Parallel Applications, O'Reilly Media, Pages: 304. • Wolfgang Kreutzer (1986) System Simulation: Programming Styles and Languages, Addison-Wesley. • Sedgewick and Wayne (2011) Algorithms, Fourth Edition, Addison-Wesley. • Barnaby, T., (2002) Distributed .NET Programming in C#, Apress. (Covers .NET remoting and discusses XML.) • Coulouris et al. (2005) Distributed Systems, Concepts and Design, 4th edition, Pearson. (More general than Barnaby.)
RMI • Remote Method Invocation. • Various approaches, including RPC, CORBA, and Java RMI. • Ideally system-independent. • Allows a program in process A on machine I to talk to a program in process B on machine II. • Based on remote procedure calls (RPC, 1984) • Most of the early RPC implementations were UNIX and C-based. • One of the key problems was the advertising of services in a global way. • Has been an important area of software development for at least 40 years.
.NET remoting • Supports invoking methods on and sharing data with objects running in other processes. • Example technologies: COM, DCOM, .NET remotingmodel. • .NET uses application domains running within a process. .NET remoting refers to the use of runtime services between application domains. • An application domain is a logical process. The AppDomain class implements the API. • Serialization is used to pass objects across application boundaries. • Proxies are used to represent remote objects efficiently. • Channels are used to handle the transfer over a network. • Use only with .NET clients. If you have to work with non-.NET clients, use RMI or XML web services (next)
XML web services, with focus on WCF • XML is a platform-independent way to mark up data. The basis of SOAP and WSDL. Historically based on HTML and SDML—markup languages. • SOAP—simple object access protocol, the preferred web service messaging protocol. • WSDL—web service description language, an XML-based grammar for SOAP messages • UDDI—universal description, discovery, and integration—an XML-based grammar for describing your web services. • Controlled by W3C.
Client-server • The earliest and most wide-spread distributed system architecture. Evolved from the mainframe/terminal architecture with the introduction of smart terminals and the internet. • Communication is between 32-bit ports at 64-bit IP addresses. • Based on TCP-IP, although the OSI 7-layer stack was competitive in US government applications for a while. • Depends on DNS.
N-tier • Also known as a multitier architecture. • Most common version is the 3-tier architecture with a separate database server. • Presentation or client tier • Application tier (business logic) • Data tier • Does encounter issues involving data flows. • A good distributed security architecture as the firewalls of the application and data tiers can be designed to overlap and exclude direct access to the data tier.
Grid computing • Conceptually a super-virtual computer distributed among a large number of loosely coupled standard computers with potentially different operating systems connected by networking rather than a bus. • Initially developed by the US intelligence community in the early 1990s using agent-based technology and distributed Java. • SETI-at-home is an example, although most grid systems are more strongly coupled than that. • Heavily used in large-scale scientific computing. • We have a grid system at Sunderland. Interested in trying it out?
Cloud computing • Computing as a service. • Resources, information, storage, and software provided to the users as a utility over a network. • Resources have to be scalable and virtual. • Accessed from mobile phones, desktop machines, and web browsers. • Has been proposed for fifty years. • Security, privacy, and availability major issues.
Mobile Computing • The basic idea is the computer is transported in its normal usage. Hence lightness, battery performance, convenience, and wireless connectivity are important. • Three aspects: • Mobile communication • Mobile hardware • Mobile software • The smartphone identifies many of the technical drivers. • Security and privacy major design concerns.
Conclusions • Discussion of the project. • Discussion of the textbooks.