📄 apa.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD><SCRIPT LANGUAGE="JavaScript"><!--function popUp(pPage) { var fullURL = document.location; var textURL = fullURL.toString(); var URLlen = textURL.length; var lenMinusPage = textURL.lastIndexOf("/"); lenMinusPage += 1; var fullPath = textURL.substring(0,lenMinusPage); popUpWin = window.open('','popWin','resizable=yes,scrollbars=no,width=525,height=394'); figDoc= popUpWin.document; zhtm= '<HTML><HEAD><TITLE>' + pPage + '</TITLE>'; zhtm += '</HEAD>'; zhtm += '<BODY bgcolor="#FFFFFF">'; zhtm += '<IMG SRC="' + fullPath + pPage + '">'; zhtm += '<P><B>' + pPage + '</B>'; zhtm += '</BODY></HTML>'; window.popUpWin.document.write(zhtm); window.popUpWin.document.close(); // Johnny Jackson 4/28/98 }//--> </SCRIPT> <META NAME="Author" Content="Bryan Flores"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1"> <TITLE>Teach Yourself CORBA In 14 Days -- Appendix A --Answers to Quizzes and Exercises</TITLE></HEAD><BODY TEXT="#000000" BGCOLOR="#FFFFFF"><CENTER><H1><IMG SRC="../button/sams.gif" WIDTH="171" HEIGHT="66" ALIGN="BOTTOM" BORDER="0"><BR><FONT COLOR="#000077">Teach Yourself CORBA In 14 Days</FONT></H1></CENTER><CENTER><P><A HREF="../ch14/ch14.htm"><IMG SRC="../button/previous.gif" WIDTH="128" HEIGHT="28"ALIGN="BOTTOM" ALT="Previous chapter" BORDER="0"></A><A HREF="../apb/apb.htm"><IMGSRC="../button/next.gif" WIDTH="128" HEIGHT="28" ALIGN="BOTTOM" ALT="Next chapter"BORDER="0"></A><A HREF="../index.htm"><IMG SRC="../button/contents.gif" WIDTH="128"HEIGHT="28" ALIGN="BOTTOM" ALT="Contents" BORDER="0"></A> <HR></CENTER><CENTER><H1><FONT COLOR="#000077">Appendix A<BR>Answers to Quizzes and Exercises</FONT></H1></CENTER><UL> <LI><A HREF="#Heading1">Day 1: Getting Familiar with CORBA</A> <UL> <LI><A HREF="#Heading2">Quiz</A> </UL> <LI><A HREF="#Heading3">Day 2: Understanding the CORBA Architecture</A> <UL> <LI><A HREF="#Heading4">Quiz</A> </UL> <LI><A HREF="#Heading5">Day 3: Mastering the Interface Definition Language (IDL)</A> <UL> <LI><A HREF="#Heading6">Quiz</A> <LI><A HREF="#Heading7">Exercises</A> </UL> <LI><A HREF="#Heading8">Day 4: Building a CORBA Application</A> <UL> <LI><A HREF="#Heading9">Quiz</A> <LI><A HREF="#Heading10">Exercises</A> </UL> <LI><A HREF="#Heading11">Day 5: Designing the System: A Crash Course in Object-Oriented Analysis and Design</A> <UL> <LI><A HREF="#Heading12">Quiz</A> <LI><A HREF="#Heading13">Exercise</A> </UL> <LI><A HREF="#Heading14">Day 6: Implementing Basic Application Capabilities</A> <UL> <LI><A HREF="#Heading15">Quiz</A> <LI><A HREF="#Heading16">Exercise</A> </UL> <LI><A HREF="#Heading17">Day 7: Using Exceptions to Perform Error Checking</A> <UL> <LI><A HREF="#Heading18">Quiz</A> <LI><A HREF="#Heading19">Exercises</A> </UL> <LI><A HREF="#Heading20">Day 8: Adding Automated Teller Machine (ATM) Capability</A> <UL> <LI><A HREF="#Heading21">Quiz</A> <LI><A HREF="#Heading22">Exercise</A> </UL> <LI><A HREF="#Heading23">Day 9: Using Callbacks to Add Push Capability</A> <UL> <LI><A HREF="#Heading24">Quiz</A> <LI><A HREF="#Heading25">Exercises</A> </UL> <LI><A HREF="#Heading26">Day 10: Learning About CORBA Design Issues</A> <UL> <LI><A HREF="#Heading27">Quiz</A> </UL> <LI><A HREF="#Heading28">Day 11: Using the Dynamic Invocation Interface (DII)</A> <UL> <LI><A HREF="#Heading29">Quiz</A> </UL> <LI><A HREF="#Heading30">Day 12: Exploring CORBAservices and CORBAfacilities</A> <UL> <LI><A HREF="#Heading31">Quiz</A> <LI><A HREF="#Heading32">Exercises</A> </UL> <LI><A HREF="#Heading33">Day 13: Developing for the Internet Using CORBA and Java</A> <UL> <LI><A HREF="#Heading34">Quiz</A> </UL> <LI><A HREF="#Heading35">Day 14: Web-Enabling the Bank Example with Java</A> <UL> <LI><A HREF="#Heading36">Quiz</A> <LI><A HREF="#Heading37">Exercise</A> </UL></UL><P><HR SIZE="4"><CENTER><H1></H1></CENTER><H2><A NAME="Heading1"></A><FONT COLOR="#000077">Day 1: Getting Familiar with CORBA</FONT></H2><H2><FONT COLOR="#000077"></FONT></H2><H3><A NAME="Heading2"></A><FONT COLOR="#000077">Quiz</FONT></H3><DL> <DD><B>1. What does IIOP stand for, and what is its significance?<BR> </B>IIOP (Internet Inter-ORB Protocol) is a protocol that allows ORBs from various CORBA vendors to interoperate with each other, using the TCP/IP protocols. Implementation of IIOP is a requirement for CORBA 2 compliance.<BR> <B><BR> 2. What is the relationship between CORBA, OMA, and OMG?<BR> </B>The Object Management Group (OMG) is the organization that controls the OMA and CORBA standards. The Object Management Architecture (OMA) consists of Object Request Broker (ORB) functionality, CORBAservices, CORBAfacilities, domain interfaces, and application objects. Finally, the Common Object Request Broker Architecture (CORBA) is the standard implementation for the ORB functionality of the OMA.<BR> <B><BR> 3. What is a client stub?<BR> </B>A client stub is a piece of code, usually generated by an IDL compiler, that allows a client application to interface to CORBA server objects. The interface presented by the client stub is exactly the same as the interface of the server, giving the client the illusion that method calls are performed locally.<BR> <B><BR> 4. What is an object reference? An IOR?<BR> </B>An object reference is a pointer to a CORBA object. A client makes all method calls to a CORBA object through a reference to that object. An IOR, or interoperable object reference, is the CORBA/IIOP terminology for an object reference.</DL><H2><A NAME="Heading3"></A><FONT COLOR="#000077">Day 2: Understanding the CORBA Architecture</FONT></H2><H3><A NAME="Heading4"></A><FONT COLOR="#000077">Quiz</FONT></H3><DL> <DD><B>1. What is marshaling?<BR> </B>Marshaling is the process of converting method parameters to a format that can be transmitted across the network. (Unmarshaling is simply the reverse of marshaling.)<BR> <B><BR> 2. What are the responsibilities of an ORB?<BR> </B>An ORB locates an object implementation given an object reference, prepares a server to receive requests, and marshals and unmarshals parameters in a method call.<BR> <B><BR> 3. Where do server skeletons and client stubs come from?<BR> </B>Server skeletons and client stubs are generated by the IDL compiler.<BR> <B><BR> 4. Which server activation policy describes a server that is started and stopped manually?<BR> </B>This is the persistent server policy.<BR> <B><BR> 5. How does the use of IDL enhance language independence of CORBA objects?<BR> </B>IDL provides a language-independent mechanism for describing the interfaces of CORBA objects. The language-independent constructs of IDL can then be mapped to language-specific constructs using an IDL compiler for a particular language.</DL><H2><A NAME="Heading5"></A><FONT COLOR="#000077">Day 3: Mastering the Interface DefinitionLanguage (IDL)</FONT></H2><H3><A NAME="Heading6"></A><FONT COLOR="#000077">Quiz</FONT></H3><DL> <DD><B>1. Define a type (using <TT>typedef</TT>), called <TT>temperatureSequence</TT>, that is a <TT>sequence</TT> of <TT>sequence</TT>s of <TT>float</TT>s (yes, this is legal).</B><BR> The IDL definition would look like this:<BR> <FONT COLOR="#0066FF"><TT><BR> typedef sequence<sequence<float>> temperatureSequence;</TT></FONT></DL><PRE></PRE><DL> <DD><B>2. Why might a type like the one described in the preceding question be useful?<BR> </B>Imagine a temperature-measuring system that periodically samples the current temperature. The temperature readings gathered through a single day could potentially be stored in a <TT>sequence<float></TT>. Now imagine that at the end of each day, the set of temperature data produced for that day is stored in another <TT>sequence</TT>. This <TT>sequence</TT> type would be a <TT>sequence<sequence<float>></TT>, which is precisely the answer to question 1.<BR> <B><BR> 3. Why are exceptions useful?<BR> </B>Exceptions are useful for at least two reasons. First, consider a method that returns a <TT>boolean</TT>. If exceptions were not available, the method would have to reserve certain return values to signal error conditions. Of course, doing this eliminates one possible valid return value. In the case of a <TT>boolean</TT> return value, there are only two possible return values, so giving up one of them to signal an error condition is not practical. Second, when used in languages that directly support exceptions, they can greatly simplify error handling. Rather than check the return value of each method call for an error condition result, a developer can create a more generic error handling mechanism, resulting in cleaner code. Additionally, because unhandled exceptions are passed up the call stack, a hierarchy of exception handlers can be created.<BR> <B><BR> 4. Why is the <TT>module</TT> construct useful?<BR> </B>The <TT>module</TT> construct is useful because it facilitates the partitioning of a system. A well-partitioned system is easier to define and implement than a monolithic system because the divide-and-conquer approach creates independent or semi-independent components of manageable size. A monolithic design, by comparison, does little to create manageable components of the system.<BR> <B><BR> 5. Name some practical uses for the <TT>octet</TT> data type.<BR> </B>The <TT>octet</TT> data type is useful for any type of data that should not undergo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -