Overview
Client/server, 3-tier and n-tier distributed systems open up new opportunities and ways to design systems and develop applications. They form the infrastructure for enterprise-wide core business, database, workflow and web applications. This course examines the process from architecture through to design of distributed enterprise systems and looks at many of the architecture and design choices that need to be made. The use of the three major component technologies in building flexible distributed computing architectures are also studied.
An object-oriented modelling approach is often used to describe business requirements, identify components, their interactions and placement in a multi-tier environment. The course examines an OO model, the infrastructure necessary to support distributed applications and the trade-offs in cost, performance and scalability.
Relational Database Management Systems (RDBMSs) still provide the core technology for implementing many distributed enterprise systems.
Throughout the course, architectural choices and considerations for distributed systems are presented.
Please note, due to the nature of the topics examined this is a heavily theory based course.
Course Details
Enterprise Systems
- Enterprise systems
- Architectures
- Overview of inetgration technologies
Multi-tier Architectures
- Gartner model of Client/server
- Microsoft architectures
- CORBA model
- J2EE model
Introduction to .NET
- The need for .NET
- new .NET programming languages and the CLR
- Win forms and Web forms
- ASP.NET
- .NET Security.
Security
- Issues and solutions
- Encryption
- Authentication
- Certification
- Transactional Security
- SSL
- PCT
- SET
Inter Process Communications
- Networked IPC
- Synchronous/asynchronous IPC
- RPC
- Messaging and transactional messaging
- Other IPC methods
Message Oriented Middleware
- Comparison with RPC
- Architectures
- JMS as provider
- Types of payload
- Typical uses
- Performance criteria
Extensible Markup Language
- XML basics
- Data exchange
- XML grammars
Database Technology
- Types of database
- SQL database servers
- Limits to procedures and triggers
- Distributed data; Database middleware
- Design considerations
Data Replication
- Benefits and issues
- Types of replication
- Synchronisation
- Lag
- Refreshing data
Transaction Processing
- Types of transactions
- OLTP systems
- Rollback and undo
- Design considerations
- Distributed transactions
- Transaction Managers
Object Analysis and Design
- OO methods
- The UML
- Use Cases
- Scenarios and sequence diagrams
- System design
- Deployment diagram
Performance, Scaleability and Testing
- Measuring performance
- Risk reduction; benchmarking
- Stepwise and modular testing
- Early integration testing
- Automated tools
Components and the Middle Tier
- Definition
- Using components
- Elements of the Component solution
- Middle tier considerations
- Application servers
- State
- Pooling
CORBA and EJB
- CORBA overview - Interfaces, services, facilities
- EJB overview
- EJB roles; Packaging
- Transaction support; Session vs. Entity
- Interoperability
- Sample Implementations
Introduction to .NET
- The need for .NET
- New .NET programming languages and the CLR
- Win forms and Web forms
- ASP.NET
- .NET Security
Web Service Protocols
- SOAP messages
- WSDL structure
- Overview of UDDI
- Publishing an XML Web Service
Service Oriented Architectures
- Goals of an SOA
- What are Services
- Requirements of an SOA
- Typical architectures
Integration options
- Heterogeneous environments
- The Web as integrator
- Using Web Services
- MOM for EAI
- Orchestration
- Other techniques
- Design considerations
Evaluating Architectures
- Methodologies
- Choosing evaluation criteria
- Documenting architectures
Prerequisites
You will need a knowledge of client/server concepts and technology.
Knowledge of object-oriented technology, OO modelling, ER modelling and a programming language would be an advantage, but are not essential.
Experienced IT professionals, such as system analysts, technical architects, integrators, application designers and senior developers wishing to gain a broad and pragmatic understanding of the principles and technologies used to building robust distributed enterprise architectures. Those delegates wishing to simply gain an overview of Distributed Systems may be better served by attending our Understanding Corporate Computing course.