Application Design & Architecture
Application Design & Architecture
Architecture Definition
Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. This definition is intended to encompass a variety of uses of the term architecture by recognizing their underlying common elements. Principal among these is the need to understand and control those elements of system design that capture the systems utility, cost, and risk. In some cases, these elements are the physical components of the system and their relationships. In other cases, these elements are not physical, but instead, logical components. In still other cases, these elements are enduring principles or patterns that create enduring organizational structures. The definition is intended to encompass these distinct, but related uses, while encouraging more rigorous definition of what constitutes the fundamental organization of a system within particular domains.
* Reference: ANSI / IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive Systems
Functional Requirements Time to Market Technology Enabled Solutions to create competitive edge in business marketplace Ability to respond to changes in business marketplace effectively
Quality Attributes
Define & Implement Standards Leverage existing organizational assets Cost Effective solutions Vendor Management (Product & Software vendors)
Success Factors
Technology as an enabler for Business Meeting Business Requirements & Objectives Timeliness and Effectiveness of the solution Repeatable & Reusable Components Quality of Service
Build
Buy
Architecture Evolution
As separation of the business rules and the dynamic sequencing of the process steps becomes common, it will enable the late binding of business applications and their orchestrating processes. This late binding allows for the most-agile dynamically linked applications with instantly controlled outcomes, thus enabling management to make changes instantly, if desired.. from Gartner, February 2005
Approach Alternatives
Enterprise Architecture Approach Application Driven (Object Oriented) Data Driven Distributed Systems Component Driven Service Oriented
Security: applications should ensure data and access security Ownership: clear and explicit ownership of enterprise data Leverage assets: leverage existing services and capabilities Accessibility: be aware of to needs of all users (location & disabilities) Real-time: Minimize latency of data updates Standards: promote consistency using standards
Services Matrix
K ey Systems I nventory
List of Initiatives
Architectural Review Process
I ntegration I nventory
Systems on a Page
Prioritization Model
Architectural Principles
Future State
Technology Standards
Business Strategy
IT GovernanceProcess
Business Architecture
Blue Print for the Business - The Enterprise Business Architecture defines the formal link between the enterprise business strategy and the results predicted from supporting strategic initiatives. The Business Architecture is necessary as a means of demonstrating the business value of subsequent Technical Architecture work to key stakeholders, and the return on investment to those stakeholders from supporting and participating in the subsequent work. Allows the business to grow by design rather than by seat-ofpants Some available models: BPM Use Case Model Class Model
Application Architecture
An Enterprises Application architecture needs to span across all business units of an organization deliver appropriate solutions as technology and business requirements evolve and new business processes emerge over time. Key questions to answer Application Strategy "What To Deliver?" Technology Strategy "What To Deliver It On?" Design Strategy "How To Build It? (in the most costeffective and flexible way) Goal of an Enterprise Architecture is Integration of diverse business applications to provide Data (information) integration Process integration: linking business processes across applications. Vendor independence Common facade
Data Architecture
Data architecture defines how data is stored, managed, and used in a system. It establishes common guidelines for data operations that make it possible to predict, model, gauge, and control the flow of data in the system. Some Key Questions: how data is persistently stored how components and processes reference and manipulate this data how external/legacy systems access the data interfaces to data managed by external/legacy systems implementation of common data operations
Technology Architecture
A Technology Architecture blueprints information technology to be utilized organization's overall business strategy.
It should provide metrics to assess the value of IT investments prioritize IT initiatives channel IT spending to increase the return on investment while maintaining an acceptable risk-reward balance. This architecture will comprise of: Logical architecture of all IT systems Physical architecture of all IT systems
MICROSOFT
Windows XP Editions Windows Server 2003 Microsoft ODBC Microsoft .NET Windows 2000 Links Microsoft Certifications - Links Windows CE Links Microsoft Cluster Services Microsoft Component Object Model Windows on Linux Tools Windows NT Utilities (COM) Windows Programming Microsoft Office Software Microsoft Technologies for Designing Windows XP Links E-Commerce Web Sites Windows Vista Microsoft Solutions for Mobile App. Development ActiveX SQL Server Visual C++ COM Visual Basic (VB) Links DOM Visual Basic (VB) .NET ASP Visual Studio .NET Microsoft Internet Information Server (IIS)
SUN
Application and Integration Services Application Development Desktop Multimedia, Web Browsers Enterprise Computing
Solaris Enterprise System Sun Java Enterprise System Sun Java System Suites
Hardware Drivers High Performance Computing Shared Visualization Identity Management Java and Technologies Operating Systems Solaris, Sun Cobalt Patches and Updates Systems Administration
ORACLE
BI and Data Warehousing Embedded Java Developer Linux PHP Developer PL/SQL Service-Oriented Architecture XML