You are being asked to implement (code) the following 3-tier system:
a) Client: The client consists of 4 web pages. On the first web page, the user may select a file from the local file system. The file will be a binary file with a .bin extension and size about 1MB or more. That file will actually be in a common Microsoft Office format (Word/Excel/Powerpoint/etc) but you will not be able to tell from the extension. Once the file is selected, it will be submitted by HTTP post as a raw binary string (very long one indeed) to a new web page. You may use the help of a client COM component to achieve the conversion from file to binary string (of course you will need to build this component).
When the file is received by the second web page, it will be passed to a server side COM+ component. Detailed description of the COM+ component functionality will follow later but this component will store the file in a database. When the second web page processing is completed, the user will be directed to a third page. The third page will have a combo box populated with document names and types from the database (all the documents that were saved using web page 2). When a user selects a document by name from the combo box the application will retrieve the document from the database using a client COM component (you may want to save this document to a local temp file after you reconstruct it from the database). The web page will then open a new web page (the fourth one) to display the document. OLE Menu negotiation will take place and the Microsoft Office document will be displayed inside the IE window with its native menus available.
Note: All client COM components have to be implemented in VC++
b) Middle Tier. The middle tier consists of a single COM+ component that will be used in web page number two. The COM+ component will receive as input a very long binary string that is constructed from a Microsoft Office document file. The COM+ component will have to discover what type of file was used to construct the string (Word? Excel? etc.) and then save the binary string in an image type column in a database table. The database table will also include a name for the document (your choice of name) and the type of the document.
Note: All mid-tier COM+ components have to be implemented in VC++. They need to support transactions and will be deployed using the Windows 2000 component services.
c) Database Tier. This tier simply consists of the database storing the table with the image column.
Note: This will be a SQL server 2000 database.
Questions:
1) Describe what would be the optimal physical deployment of the 3-tiers described above. Be as specific and detailed in your description as possible. You need to justify your answer thoroughly. The objective is to achieve minimum response time to the client. Network usage optimization will be important in achieving this goal.
2) Is there any technique that you can use to optimize the usage and increase the scalability of the client tier?
3) Describe how you will optimize the database in terms of both logical and physical implementation. Justify your answer.