|A Typical Enterprise Environment||From small businesses to large enterprises there are some common technological patterns that can be observed. We open the course by introducing the world of the enterprise, the past and current attempts that have been made to integrate the many disparate systems within these enterprises.|
|Distributed Systems||What is a distributed system, what function does it serve, and what are the core distributed system principles. How to think and design distributed systems, thinking logically and physically. Client/Server and Peer/Peer architectures.|
|Middleware Concepts||The complexities of connecting distributed systems, RPC basics, middleware defined, TCP, UDP and IP, Sockets, Multi-processing vs. Multi-threading, Communication modes and styles, middleware technologies - CORBA, Java RMI, .Net Remoting, MS WCF, SOAP, Web Services, MOMs and DDS.|
|The need for Architecture||Justify the need for an architecture, what is its function, what concerns does it address and how do those concerns get addressed.|
|ORPC style middleware||Introduction to O/RPC, and the key concept of interfaces. An introduction to the patterns Adaptors, Proxies, NV Listing and Factories to help design and build scalable, extensible and maintainable distributed systems. What is and how is a software bus designed and implemented.|
|SOAP, ReST and Web Services|
The motivation behind SOAP, the narrower and leaner implementation of SOAP with ReST, ReST as it was envisioned by Roy Thomas Fielding in his research paper "Architectural Styles and the Design of Network-based Software Architectures" the de-facto way in which ReST is being used, what is web service (ignoring the technology), web services at work.
Message Oriented Middleware has become a de facto technology standard for many organisations in their bid to build robust EAI systems. So we ask the question what is a Message Oriented Middleware and how different is it to an O/RPC middleware. MOM connected patterns, interaction patterns, and message flows. Advice of channel design and message type designs. MOM patterns likes Channel Adapter for ETL, and pipes and filters for increasing processing performance.
|ESB||Enterprise Service Bus. Details the core components required to build a robust and scalable message bus that is more than a MOM or a CORBA like piece of middleware.|
|XML||This chapter looks at what is XML and why it has become so pervasive within the IT industry, and how to process XML documents using DOM, XML streaming and XSLT.|
|QoS Requirements||Define what is a Quality of Service, identify the source of a QoS, specify how a QoS affects the system. Examine the concepts of high availability and fault tolerance, and how to design fault tolerant systems using distributed consensus models like Raft. Take a brief tour of ATAM (Architectural Trade-off Analysis Method)|
|Persistence strategies||Discover different strategies for persisting objects using relational, object relational and object oriented databases. The chapter also looks at basic relational theory such as tables, data integrity and transactions, OODBMS, NoSQL DBs, Data Centre resiliency, and Data Replication. With examples of two NoSQL DBs, AWS DynamoDB and ArangoDB.|
|Architecture and Architectural patterns||What is architecture and is it really that different from design? The four architecture perspectives, technology, application, data and business.|
|Common Distributed System Patterns||Gain an understanding of what is a pattern, architectural patterns and common technical architecture patterns. Common patterns that will be considered are interfaces, adaptor, proxy, NV Listing, broker, software bus and enterprise software bus, 2-tier architectures, 3-tier architectures, N+ tier architectures, resources pooling, ETLs, data warehouses and marts, data mining, real-time message delivery, workflow systems, content management systems and enterprise enabled search.|
|Common Distributed System Solutions|
A side by side comparison of how JEE, .NET and the Open Source community have delivered solutions to the Common Distributed System Patterns.
Brief introduction to the many JEE technologies that are available to an systems implementer such as; JDBC, EJBs, J2EE Connectors, RMI, JNDI, JAXP, Web Containers, Java Server Faces, JMS, JTA, JavaMail, and the Management and Security technologies. The J2EE Blueprints.
Brief introduction to the many Microsoft .NET technologies that are available to an systems implementer such as; ODBC and ADO.NET, LINQ, WPF, WCF, Winforms and ASP.NET. The Microsoft Enterprise Library.
|Virtualization and Distributed Systems||Virtualization basics, styles and modes, Type I and Type II VS, desktop virtualization, server virtualization, what can be virtualized, why virtualize, the VM bus.|
|Containers (Docker) and Distributed Systems||Since 2008/9 when the concept of Agile Infrastructure was debuted to the world, there has been explosion in the growth techniques and technologies to aide infratstructure and operations teams develop solutions for their clients in a faster and more productive manner. Docker containers take virtualization in new direction, simplifying the development, testng and deployment environments. In this hands on module we show why containers are not another approach the virtualization and the pros and cons of working with containers.|
|Cloud Computing and Distributed Systems ||What is cloud computing, types of cloud models - IaaS, PaaS, SaaS and XaaS, private, public and hybrid cloud models, cloud bursting. With examples from Amazon AWS. The 12 factor application.|
|SOA||Thinking about capabilities, the OASIS SOA-RAF model for SOA and how it defines capabilities as a way of defining SOA services.|
|Microservices||Microservices, aren't these just web services renamed? Or maybe there is some correlation between microservices, SOA and containers? We examine the technical requirement for a microservice landscape and the technology stack required to build them.|
|Security Basics||Whose doing the attacks? Thinking like a intruder. The kill-chain. The way in which we need to defend ourselves on the WWW, thinking about the STRIDE model, what is Confidentiality, Integrity, Authentication, Authorisation, Auditing, Non-repudiation and Availability of services, Symmetric and Asymmetric encryption, Identity and how can identity be distributed securely, digests and digital signatures, digital certificates online transactional behaviour, SSL, and VPNs.|
|Architectural Analysis||Learn the basics of RM-ODP, Zachman and TOGAF®. |
Establish the need for a development method, what methods are available, describe workflows and the four key phases of an iterative and incremental development process, and define iterative process outputs.
Examine the primary issues that need to be considered in a DOS, such as; capacity, extensibility, security etc. Prepare plans for these “qualities”, and define a logical architecture. Students will learn how to create basic, business, application, data and technology architecture blueprints that can be used for planning.