CS 501: Software Engineering Fall 2000AdministrationComments on Requirements ReportSequence Diagram: NotationSequence Diagram: BranchingExample: Distributed DatabaseDistributed Data and ReplicationPowerPoint PresentationSlide 9Stateless Protocol v. StatefulSlide 11FirewallThe Domain Name SystemDiscussion of the First AttemptSlide 15Real Time SystemExample: Web ServerEmbedded SystemsExample: Autonomous Land VehicleOther ApplicationsTechniquesMulti-ThreadingReal Time ExecutiveTimingHardware v. SoftwareExample: Dartmouth Time Shared SystemSoftware ConsiderationsExample: CD ControllerContinuous OperationRouters and Other Network ComputingCS 501: Software EngineeringFall 2000Lecture 15System Architecture IIDistributed and Real Time SystemsAdministrationAssignment 2: Requirements• Grades -- presentation, report, individual• Comments at presentation• Comments from teaching assistantAssignment 3: DesignComments on Requirements ReportAudience• Client and design team• Will be updated over timeContent• Level of detail -- will be used to validate the implementation• Requirements, not design• Precise, but not legalisticSequence Diagram: NotationBookBorrowerlibMem: LibraryMembertheCopy:CopytheBook:Bookborrow(theCopy)okToBorrowborrowborrowdotted line shows object lifetimerectangle shows focus of controlSequence Diagram: BranchingBookBorrowerlibMem: LibraryMembertheCopy:CopytheBook:Book1:borrow(theCopy)2:okToBorrow[ok]3:borrow4:borrowbranch [not ok]3:noborrowExample: Distributed Databasetwo copies of the same dataDistributed Data and ReplicationDistributed DataData is held on several computer systems. A transaction may need to assemble data from several sources.ReplicationSeveral copies of the data are held in different locations. Mirror: Complete data set is replicated Cache: Dynamic set of data is replicated (e.g., most recently used)With replicated data, the biggest problem is consistency.Example: Broadcast SearchUser interfaceserverUserDatabasesExample: UseNetStateless Protocol v. StatefulStateless protocol Example: http Open connectionSend message Return replyClose connectionState in http must be sent with every message (e.g., as parameter string or in a cookie)Stateless Protocol v. StatefulStateful (session) protocolExample: Z39.50Open connectionBegin sessionInteractive sessionEnd sessionClose connectionServer remembers the results of previous transactions (e.g., authentication, partial results) until session is closed.FirewallPublic networkPrivate networkFirewallA firewall is a computer at the junction of two network segments that:• Inspects every packet that attempts to cross the boundary• Rejects any packet that does not satisfy certain criteria, e.g.,an incoming request to open a TCP connectionan unknown packet typeThe Domain Name System.edu servercornell.edu servercs.cornell.edu serverFirst attempt to resolve www.cs.cornell.edu123Discussion of the First AttemptProblems?The Domain Name System.edu servercornell.edu servercs.cornell.edu serverBetter method 31almaden.ibm.comcornell.eduece.cmu.eduibm.comacm.org.edu2Localcachelocal DNS serverReal Time SystemA real time system is a software system whose correct functioning depends upon the results produced and the time at which they are produced.• A soft real time system is degraded if the results are not produced within required time constraints• A hard real time system fails if the results are not produced within required time constraintsExample: Web Serverhttp messagedaemonspawned processesTCP port 80The daemon listens at port 80.When a message arrives it:spawns a processes to handle the messagereturns to listening at port 80Embedded SystemsSoftware and hardware are combined to provide an integrated unit, usually dedicated to a specific task:• Digital telephone• Automobile engine control• GPS • Scientific instrumentsThe software may be embedded in the device in a manner that can not be altered after manufacture.Example: Autonomous Land VehicleSensorsGPSSonarLaserSignal processingModel Control signalsSteerThrottleControlsOther ApplicationsResponse critical• Network router• Telephone switch• Seat bag controllerShared systems• Multi-user data processing• Time sharingTechniques• Special purpose hardware• Multi-threading and multi-tasking• Parallel processing => digital signal processing• Interrupts=> levels and prioritiesMulti-ThreadingSeveral similar threads operating concurrently:• Re-entrant code -- separation of pure code from data for each thread• Testing -- single thread and multi threadMay be real time (e.g., telephone switch) or non-time criticalReal Time ExecutiveSchedules and dispatches tasks in a real time system• Real time clock• Interrupt handler• Scheduler• Resource manager• DispatcherMust be extremely reliableTimingTiming mechanisms• Synchronous (clocked) -- periodic stimuli• Asynchronous -- wait for next signalExample: Communications protocols may be synchronous or asynchronousHardware v. SoftwareDesign of embedded systems requires close understanding of hardware characteristics• Special purpose hardware requires special tools and expertise.• Some functions may be implemented in either hardware of software (e.g., floating point unit)• Design requires separation of functionsDistinction between hardware and software may be blurred.Example: Dartmouth Time Shared SystemCommunications processorCommunications processorCentralprocessorCentralprocessorCentralprocessorI/OMulitplexormaster processorSoftware ConsiderationsResource considerations may dictate software design and implementation:• Low level language (e.g., C) where programmer has close link to machine • Inter-process communication may be too slow (e.g., C fork).• May implement special buffering, etc., to control timingsExample: CD ControllerInput blockOutput block1234567Circular bufferContinuous OperationMany systems must operate continuously• Software update while operating• Hardware monitoring and repair• Alternative power supplies, networks, etc.• Remote operationThese functions must be designed into the fundamental architecture.Routers and Other Network Computing• Interoperation with third party devices• Support for several versions of protocols• Restart after total failure•
View Full Document