This course provides students with the knowledge to understand the myriad technologies used today to glue together enterprise systems.
Given the highly distributed nature of the modern digital business, this course takes a detailed look at some of the design techniques being employed by IT architects and designers to ensure that their systems are fault-tolerant and deliver at the required level of availability. It examines the ideas of scalability, extensibility, maintainability, performance, and costs, as well as a numerous number of other NFRs (non functional requirements)/QoS (Quality of Service) attributes. These QoS attributes are woven into the fabric of the course material so that they are designed into your systems and not an after thought. Many common standards like ISO seven layer model, RM-ODP, TOGAF® are over viewed in the course allowing students to understand how some of the technologies introduced fit into the wider world. The course also spends time examining technologies such as Oracle JEE and Microsoft’s .NET, considers the implication of SOA and Web Services, the nature of Distributed Object Systems including Message Oriented Middleware and their importance to the whole discussion of integrating enterprises systems.
This is an ideal course for decision makers as well as technical implementers, who need to know what is Distributed Object Systems (DOS) technology in the modern digital business.
Why learn Technical Architecture skills with us?
Many of our trainers are TOGAF® 9 Certified and have many years experience as either Enterprise Architects, Solution, Technical or Systems Architects. Our courseware is augmented by comprehensive examples and many anecdotal examples. We pride ourselves on a simple mantra, “If you understand the why then the how becomes easier, think like an engineer and ask questions.”
|Pre-requisites:||A number of years working in the IT industry. You do not need to be a developer. A basic understanding of how to use the windows command shell would be beneficial but is not an impediment.|
|Delegates will learn:||The basics of RPC, distributed systems from the ground up, simple networking principles such as sockets and TCP/UDP, multi-tasking and multi-threading, web standards such as HTTP and DNS, basic Message Oriented Middleware, the Enterprise Service Bus, architectural analysis methods such as Zachmann, TOGAF®™, RM-ODP, XML and translating XML into other documents, JSON, the JEE architecture, and Microsoft’s .NET architecture, security basics, web services, naming services, the concepts of workflow, tiered architectures (2, 3, and N+), application servers, where to deploy business logic in an N+ tiered architecture and why, how to ensure that your 2-tier systems can scale to an N+ tiered system. The course will offer some guidance on how to bring these technologies together and where architects and designers should focus their efforts.|
|Customization:||This course is suitable for customization to meet your needs|
|Case Study||There is an extensive case study that is operated from within the Amazon Cloud Stack, it consists of working public and private IPs, using a naming server to register services, finding those services using a simple client-server model, extending the model to a multi-layer architecture so that the services can be located from anywhere in the world, exposing the service on the web without changing any of the service logic, working with clients and servers written in different languages and with different vendor technology.
The case study illustrates all the principles taught throughout the 5 ays.
|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.|
|MOMs||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.|