Design Strategy - Distributed Systems System Architectures CSIS3600 Systems Analysis and Design Key Ideas • The purpose of the analysis phase is to figure out what the business needs. The purpose of the design phase is to figure out how to provide it. • The steps in both analysis and design phases are highly interrelated and may require much “going back and forth” PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Key Definitions • The system architecture design consists of plans for the hardware, software, communications, security , and global support for the new application • The designers must decide if processing will occur in the server (server-based), at the personal computer (clientbased), or in some combination of these (client-server based). PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Key Definitions • The network model shows major components of the system, where they are located and how they will be connected to one another. • The hardware and software specifications describe these components in detail and aid those responsible for purchase and acquisition of these products. PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Functions of the Application System • • • • Data storage Data access logic Application logic Presentation logic PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Stand Alone Common technologies employed: Microsoft Access Foxpro Excel, even Java…. Shared Resources (file server) Common technologies employed: – File server (Windows) – Novell – Microsoft Access Server Based or Centralized Computing Common technologies employed: – Small system Microsoft Access, Larger system – AS400 applications – Hierarchical Database systems – Mainframes Server-Based Computing PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Typical Software Development Environment for Large Centralized Computing • An editor and compiler (used to be heavily COBOL, now C, Java, etc.) • Transaction monitor to manage on-line transactions (CICS or Tuxedo) • File management system (VSAM) or database management system (DB2) Alternative Clients • In client based architectures, clients do most of the work (except data storage) and present the results • Terminals • Microcomputer (personal computer) • Special purpose terminals (ATMs, kiosks, Palm Pilots, and many others) PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Client Server (two tier) • Client/server is a combination of a client or frontend portion that interacts with the user and a server or back-end portion that interacts with the shared resource. Server provides database system and shared access functions and resources such as database, printers, modems, high powered processors, etc. • Some business logic may reside here usually as SQL stored procedures • Client provides the user interface and often the application/business logic Client-Based Computing PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Client-Server-Based Computing (2 Tiers) PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Client/Server continued • The environment is typically heterogeneous and multivendor. • The hardware platform and operating system of client and server are not usually the same. • Client and server processes communicate through a well-defined set of standard application program interfaces (API's) and remote procedure calls (RPC's). Client/Server continued Common technologies employed: • RDBMS (Oracle, Sybase, Informix, Microsoft SQL Server) • Client – Visual Basic, Powerbuilder, C++, Delphi • API – Application Programming Interface to the database server and other shared resources and applications and Remote Procedure Calls to pass messages between client and server Typical Software Development Environment for two tier Client/Server • Rapid application development for quickly building the GUI that will be replicated and executed on all of the client PCs • Automatic generation of template code for the GUI and associated system events (such as mouse clicks, keystrokes, etc.). A programmer only has to add business logic code. (Delphi, Powerbuilder, Visual Basic) • Programming language that is compiled for replication and execution on the client PCs (Visual Basic, C++) C/S development environment continued • Connectivity for various relational database engines and interoperability with those engines. – Interoperability is achieved by including SQL database commands that will be sent to the database engine for execution on the server or stored procedures on the database server which can be ‘called’ from the client application (appropriate driver usually an ODBC driver) • Report writing environment to simplify the creation of new end-user reports off a database (Crystal Reports, Business Objects, ReportSmith, etc.) Client-Server Attributes • Typical Pros – Compatible with web-based system design – Scaleable – Work with multiple vendors/products – No central point of failure • Typical Cons/Limits – Complexity – New programming languages and techniques (stress for personnel) – More complex to update PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Client Server (n tier) Typical 3 tier architecture: – Data Management – Presentation – Business logic and data analysis Client-Server -- Three Tiers PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Client Server (n tier) Common technologies employed: – RDBMS (Oracle, Sybase, Informix, Microsoft SQL Server) – Client – Visual Basic, C++, Powerbuilder, Delphi – Business logic – C++, Java, etc. – Middleware – ODBC Distributed Objects Computing • Connectivity allows applications to transparently communicate with other programs or processes, regardless of their location. • Middleware between clients and servers • Update middleware when changing client code • May reduce efficiency of the application • CORBA • DCOM • And now with .Net SOAP PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Typical Software Development Environment for n-tier Client/Server • Support for heterogeneous computing platforms including Windows, Macs, Unix and legacy mainframes and minicomputers • Automatic generation of template code for the GUI. A programmer only has to add business logic code. (Delphi, Powerbuilder, Visual Basic) • Code generation and programming for both client and server. Most tools in this genre support pure object-oriented languages such as C++ and now Java Typical Software Development for n-tier Client/Server continued • Tools to help analysts and programmers partition application components between the clients and servers. • Tools to help developers deploy and manage the finished application to clients and server including security management tools • Sophisticated software version control and application management software N-Tiered Client-Server Attributes • Typical Pros – Separates processing to better balance load – More scaleable • Typical Cons/Limits – Greater load on the network – More difficult to program and test PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Internet Architecture • Similar to n-tier client server • Employs the idea of services and service layers Client-Server -- Four Tiers PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Internet Architecture Common technologies employed: • HTTP • HTML • CGI • ASP, JSP, • Java (Java applets, Java Beans) Typical Software Development Environment for Internet Architecture • HTML language used to construct WWW pages and links. • Computer Gateway Interface – standard for publishing graphical WWW components constructs and links (Perl). • XML – meta language that separates data from presentation Development environment for Internet Architecture continued • Java – general purpose programming language for creating platform independent programs and applets that can execute across the WWW. • Active Server Pages - Active Server Pages are a language-independent framework designed by Microsoft for efficient coding of server-side scripts that are designed to be executed by a Web server in response to a user's request for a URL. Java Server Pages are the Java equivalent of ASP. Realities of Infrastructure Design • Most often the infrastructure will be in place • Coordination of infrastructure components is very complex • The application developer will need to coordinate with infrastructure specialists PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Selecting a Computing Architecture Server-Based Client-based Client-server Cost of infrastructure Very high Medium Low Cost of development Medium Low High Ease of development Low High Low-medium Interface capabilities Low High High Control and security High Low Medium Scalability Low Medium High PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. The Network Model • No standard format • Conveys complexity of the system and how components fit together • Components are – Clients – Equipment – Connection to external systems or networks PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Top-Level Network Model PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Hardware and Software Specification • Used if new hardware or software must be purchased • Actual acquisition of hardware and software usually left to a purchasing department -especially in larger firms PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Steps in Hardware and Software Specification • Note hardware in low-level network model to create list of needed hardware • Describe equipment in as much detail as possible • Consider whether increased processing and traffic will absorb unused hardware capacity • Note all software running on each hardware component PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Global Requirements • Multilingual requirements – Concurrent multilingual systems – Discrete multilingual systems • • • • Local versus centralized control Unstated norms (e.g. dates, currency) 24-7 Support Communications infrastructure PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Security Identifying Threats to the System • A threat is any potential adverse occurrence that can do harm to the application or its data • Threats come from internal as well as external sources • Categories of threats – Disruptions, destruction and disaster – Unauthorized access PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Most Common Threats PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Assessing the Risk of Each Threat PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Creating Controls • A control is something that mitigates or stops a threat • Controls include – – – – redundancy fault tolerant servers disaster recovery plans anti-virus software PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Additional Controls Include • A security policy • Passwords and encryption • Firewalls PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Summary • The three fundamental computing architectures are server-based, client-based, and client-server based. • The network model shows technical components of the system and their geographic location throughout the organization. • Hardware and software must be specified for acquisition in the project • The systems analyst needs to also account for global issues and security measures. PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved.