Technology Architecture Grooming School
MIT - ASDA
TAGS – Technical Architecture Grooming School
TAPS (2 days) – Technical Architecture Principle school
TADS/TASA (5 days) - Technical Architecture Design School
APW – Architecture Principle Workshop
MTA – Master Technical Architecture
Role of an Architect
Idea of how something should be accomplished.
Defines how the pieces put together.
Role of each pieces.
How they work together.
Architecture Vs Software Design
“Architecture is a design but not all the design is architecture.”
Stability against forces.
Rooms and amenities
Look and feel
Discipline of Architecture
- Understand the problem.
- Define the structure for a solution.
- Decompose the problem into smaller manageable pieces.
- Resolve the details of the smaller pieces.
- Ensure that each pieces fit in an integrated manner to complete the overall solutions.
- Ensure that solution meets expectations, functional and technical requirements.
-Ultimately solve the problem and achieve the initial version.
Systems Development Engagement
Bigger the engagements, sharper the skills required for Technical Architects to solve complex problems.
Role and Relationships
Manages the analysis, design, build and integration of the solution components.
Technical Architects Responsibilities
- Define application and technical requirements.
- Define the structure of the application and technical arch.
- Ensure the structure meets the business requirements and performance goals
- Ensure the technical direction is consistent with the client’s log term direction.
- Design development operations and execution environments
- Maintain quality, development and change control processes
- Drive the design of application data and UI classes and components via the application architecture specification.
- Ensure training and performance support service introduction and deployment are adequately considered against the design
- Decide on hardware, networking systems software and security.
Build and Test
- Iteratively improve environment designs
- Maintain quality development and change control processes
- Conduct or administer code reviews, as appropriate
- Drive issue management and resolutions.
- Assist in deployment planning.
- Develop technology policies and procedures.
“Design patterns are guidelines of how you solve business problems.”
Characteristics of Successful Technical Architects
- A solid foundation of coding, testing and development skills.
- A broad skill set, in addition to deep skills in specific technology.
o They know what they don’t know
- Good understanding of architectural principles.
- Ability to network and sought out for their capabilities
- Manage team and projects effectively.
- maps the functional requirements to discrete software solutions it defines the technical services that are needed by application.
- refers to the blueprint or design of technical services that are required to support an application.
Technical architect is typically responsible for both technical architecture and application architecture.
Case Study - 1
Financial Services Client, to build a intranet based solution with following requirements
- Company Info and news
- Employee Tools
o Pay slips
o Vacation Policy
o Form 16 A
- News feeds (top news relevant to industry)
- Browser accessible
- Leverage existing infrastructure.
- Should be developed fully by partner.
- Application Architecture
- Non functional requirements
- Development environment
3. The Ilities
Architectural goals are often refereed to as the “-ilities”, since they end with the word “ility”
Measures the speed with which a single request can be executed.
– Reduced response time
– Internet traffic
- Benchmark early against peak loads and worst case configurations
- Can I get the individual response times I need ?
- 80:20 rule - do the important things fast, not everything.
- Does the required transactional volume fit on the platform?
- Typically need a local or remote reference data cache
i. Key trade off is performance versus ability to keep cache current.
ii. Portioning data and executing parallel job streams
- Performance is driven by bottlenecks.
- Target bottleneck by
i. Doing expensive things (like I/O) less frequently.
ii. Doing repetitive things more intelligently; use caching.
Performance Improvements: - Tuning the runtime for better heap management, memory management accelerators. - Concurrency through multithreading - Asynchronous usage patterns - Entity caching - Minimize individual database operations, batch up requests - Optimize log settings. Scalability Scalability is related to the ability of the application to respond to multiple separate interactions. Under these circumstances - Is the performance of the application downgraded? Some patterns for scalability - Connection pooling in JDBC - Object pooling - User Session / State caching - Sever affinity and sticky sessions - Clustering and load balancing of servers (web, application and database)
- Tuning the runtime for better heap management, memory management accelerators.
- Concurrency through multithreading
- Asynchronous usage patterns
- Entity caching
- Minimize individual database operations, batch up requests
- Optimize log settings.
Scalability is related to the ability of the application to respond to multiple separate interactions. Under these circumstances
- Is the performance of the application downgraded?
Some patterns for scalability
- Connection pooling in JDBC
- Object pooling
- User Session / State caching
- Sever affinity and sticky sessions
- Clustering and load balancing of servers (web, application and database)
-Different user levels, allowing access to different parts of the application.
- Layers of Security
> Authentication, authorization, access auditing
> Physical vs. electronic
> Systems administration
> Encryption services
> Fraud services
> balance risk/reward on investment
- Build security in from day one
> International issues
> Separation of duties
> A security policy
> Security Standards
> Administration Procedures
> Testing procedures
> Training programs
> Consequences of not getting the right security.
- What happens to working storage at a checkpoint? To files? To databases?
- Design for failure, allow processing to continue if at all possible and provide detailed and accurate diagnostics.
Do all of the components work together smoothly? Interoperability is ensuring that all the parts of the systems work together. Failure to address interoperability issues will reduce your ability to run, maintain and extend the architecture.
- What types of bridges are required to connect the technologies? Are they readily available?
- Have you verified all vender claims?
- Have you prototyped anything new or complex?
- Conformance to standards
- Plug and play
- Test under production like environment
Can the technical architecture change quickly to meet new business requirements>
- Use standard design methods, programming techniques and tools to simplify maintenance.
- Consider configuration management and application packaging early.
- Consider distribution of software updates.
4. Architectural Styles
The word architecture is both about designing something and about making, building or constructing something
Therefore architecture can be thought of in a theoretical and a practical basis
Architecture is about designing and building something from a set of basic components, and also about the interrelations among the components
Support a style of computing where processes on different machines communicate using messages.
Ø The “client” processes delegate business functions or other tasks to one or more server processes.
Ø The server processes respond to messages from clients.
Ø Business logic can reside on both client and server.
Ø Clients are typically PCs or workstations with a graphical user interface
Ø Servers are usually implemented on UNIX, NT or mainframe machines.
Ø For e.g. Desktop applications.
Integration Architecture and Patterns