Question 140


You are developing a video transcoding service. This service is used by customers to upload video files, convert video to other formats, and view the converted files. This service is used by customers all over the world.
  • The user-facing portion of the application is an ASP.NET MVC application.
  • It provides an interface for administrators to upload video and schedule transcoding.
  • It also enables administrators and users to download the transcoded videos.
  • When videos are uploaded, they are populated with metadata used to identify the video.
  • The video metadata is gathered by only one system when the video upload is complete.
  • Customers require support for Microsoft Internet Explorer 7 and later.
  • The application contains a header that is visible on every page.
  • If the logged-on user is an administrator, then the header will contain links to administrative functions. This information is read from a cookie that is set on the server.
  • The administrative links must not be present if an error condition is present.
User Experience:
  • The front-end web application enables a user to view a list of videos.
  • The main view of the application is the web page that displays the list of videos.
  • HTML elements other than the list of videos are changed with every request requiring the page to reload.
Compatibility:
  • Some customers use browsers that do not support the HTTP DELETE verb.
  • These browsers send a POST request with an HTTP header of X-Delete when the intended action is to delete.
Transcoding:
  • The video transcoding occurs on a set of Windows Azure worker roles.
  • The transcoding is performed by a third-party command line tool named transcode.exe. When the tool is installed, an Environment variable named transcode contains the path to the utility.
  • A variable named license contains the license key. The license for the transcoding utility requires that it be unregistered when it is not in use.
  • The transcoding utility requires a significant amount of resources. A maximum of 10 instances of the utility can be running at any one time. If an instance of the role cannot process an additional video, it must not prevent any other roles from processing that video.
  • The utility logs errors to a Logs directory under the utilities path.
  • A local Azure directory resource named perf is used to capture performance data.
Development:
  • Developers must use Microsoft Remote Desktop Protocol (RDP) to view errors generated by the transcode.exe utility.
  • An x509 certificate has been created and distributed to the developers for this purpose.
  • Developers must be able to use only RDP and not any other administrative functions.
Application Struction
TranscodeWorkerRole.cs | ThumbnailGenerator.cs | VideoController.cs | DeleteHandler.cs | VidoeAdminAttrbutes.cs | AdminVerifierFactory.cs | ImageConverter.cs
TranscodeWorkerRole.cs
ThumbnailGenerator.cs
VideoController.cs
DeleteHandler.cs
VideoAdminAttribute.cs
AdminVerifierFactory.cs
ImageConverter.cs

Background

You are developing a video transcoding service. This service is used by customers to upload video files, convert video to other formats, and view the converted files. This service is used by customers all over the world.

Business Requirements

  • The user-facing portion of the application is an ASP.NET MVC application.
  • It provides an interface for administrators to upload video and schedule transcoding.
  • It also enables administrators and users to download the transcoded videos.
  • When videos are uploaded, they are populated with metadata used to identify the video.
  • The video metadata is gathered by only one system when the video upload is complete.
  • Customers require support for Microsoft Internet Explorer 7 and later.
  • The application contains a header that is visible on every page.
  • If the logged-on user is an administrator, then the header will contain links to administrative functions. This information is read from a cookie that is set on the server.
  • The administrative links must not be present if an error condition is present.

Technical Requirements

User Experience:
  • The front-end web application enables a user to view a list of videos.
  • The main view of the application is the web page that displays the list of videos.
  • HTML elements other than the list of videos are changed with every request requiring the page to reload.
Compatibility:
  • Some customers use browsers that do not support the HTTP DELETE verb.
  • These browsers send a POST request with an HTTP header of X-Delete when the intended action is to delete.
Transcoding:
  • The video transcoding occurs on a set of Windows Azure worker roles.
  • The transcoding is performed by a third-party command line tool named transcode.exe. When the tool is installed, an Environment variable named transcode contains the path to the utility.
  • A variable named license contains the license key. The license for the transcoding utility requires that it be unregistered when it is not in use.
  • The transcoding utility requires a significant amount of resources. A maximum of 10 instances of the utility can be running at any one time. If an instance of the role cannot process an additional video, it must not prevent any other roles from processing that video.
  • The utility logs errors to a Logs directory under the utilities path.
  • A local Azure directory resource named perf is used to capture performance data.
Development:
  • Developers must use Microsoft Remote Desktop Protocol (RDP) to view errors generated by the transcode.exe utility.
  • An x509 certificate has been created and distributed to the developers for this purpose.
  • Developers must be able to use only RDP and not any other administrative functions.
Application Struction
TranscodeWorkerRole.cs | ThumbnailGenerator.cs | VideoController.cs | DeleteHandler.cs | VidoeAdminAttrbutes.cs | VideoVerifierFactory.cs | ImageConverter.cs
TranscodeWorkerRole.cs
ThumbnailGenerator.cs
VideoController.cs
DeleteHandler.cs
VideoAdminAttribute.cs
VideoVerifierFactory.cs
ImageConverter.cs

Skills Measured 5.4 Exam Question

Multiple Choice

You need to ensure that developers can connect to a Windows Azure role by using RDP. What should you do?

  • A. Export a certificate without a private key. Upload the .cer file to the Management Certificates section on the Azure Management Portal.
  • B. Export a certificate with a private key. Upload the .pfx file to the Management Certificates section on the Azure Management Portal.
  • C. Export a certificate without a private key. Upload the .cer file to the Certificates section under the TranscodeWorkerRole hosted service on the Azure Management Portal.
  • D. Export a certificate with a private key. Upload the .pfx file to the Certificates section under the TranscodeWorkerRole hosted service on the Azure Management Portal.

Answer:

D
Explanation:

Security Keys

.cer - Windows uses .cer extension for an X.509 certificate. These can be in "binary" (ASN.1 DER), or it can be encoded with Base-64 and have a header and footer applied (PEM); Windows will recognize either. To verify the integrity of a certificate, you have to check its signature using the issuer's public key which is another certificate. Generally, you only exchange your certificate (.cer) and the certificates of any intermediate issuers (i.e., the certificates of all of your CAs, except the root CA) with other parties.

.pfx - Windows uses .pfx for a PKCS #12 file. This file can contain a variety of cryptographic information, including certificates, certificate chains, root authority certificates, and private keys. Its contents can be cryptographically protected (with passwords) to keep private keys private and preserve the integrity of the root certificates.
pfx certificates

Azure Roles

There are three types of roles in Windows Azure:

Web Role – A service component that is customized for web application programming as supported by Internet Information Services (IIS) 7 and ASP.NET. The web role is intended to serve as the front-end to your cloud service.

Worker Role - A service component that is useful for generalized development, and may perform background processing for a web role. A worker role is frequently used for long-running tasks that are non-interactive, but you can host any type of workload.

VM - Virtual Machine role that has retired
Enable Azure roles for RDP