###BeginCaseStudy###
Case Study: 1
Scenario 1
Background
You are developing a flight information consolidation service. The service retrieves flight
information from a number of sources and combines them into a single data set. The
consolidated flight information is stored in a SQL Server database. Customers can query
and retrieve the data by using a REST API provided by the service. The service also offers
access to historical flight information. The historical flight information can be filtered and
queried in an ad hoc manner. The service runs on a Windows Azure Web Role. SSL is not
used.
Business Requirements
• A new data source for historical flight information is being developed by a contractor
located on another continent.
• If a time zone is not specified, then it should be interpreted as Coordinated Universal
Time (UTC).
• When you upgrade a service from a staging deployment to a production deployment,
the time that the service is unavailable must be minimized.
• The default port must be used for HTTP.
Technical Requirements
The existing sources of flight information and the mechanism of exchange are listed below.
• Blue Yonder Airlines provides flight information in an XML file.
• Consolidated Messenger provides flight information in a Microsoft Access database
that is uploaded every 12 hours to the service using SFTP. The company uses port 22 for
SFTP.
• Margie’s Travel provides and consumes flight information using serialized ADO.NET
DataSets. Data is periodically synced between the service and Margie’s Travel.
• Trey Research provides data from multiple sources serialized in proprietary binary
formats. The data must be read by using .NET assemblies provided by Trey Research. The
assemblies use a common set of dependencies. The current version of the Trey Research
assemblies is 1.2.0.0. All assemblies provided by Trey Research are signed with a key pair
contained in a file named Trey.snk, which Trey Research also supplies.
• The application specification requires that any third-party assemblies must have
strong names.
Application Structure
###EndCaseStudy###
Transformed historical flight information provided by the RemoteDataStream() method must
be written to the response stream as a series of XML elements named Flight within a root
element named Flights. Each Flight element has a child element named FlightName that
contains the flight name that starts with the two-letter airline prefix. You need to implement
the StreamHistoricalFlights() method so that it minimizes the amount of memory allocated.
Which code segment should you use as the body of the StreamHistoricalFlights() method in
the HistoricalDataLoader.es file?
Explanation:
http://msdn.microsoft.com/en-us/library/system.xml.linq.xstreamingelement.aspx
&
http://msdn.microsoft.com/en-us/library/bb551307.aspx