{"id":63,"date":"2019-03-28T11:27:35","date_gmt":"2019-03-28T15:27:35","guid":{"rendered":"https:\/\/sites.bu.edu\/braude\/?page_id=63"},"modified":"2019-03-28T11:40:41","modified_gmt":"2019-03-28T15:40:41","slug":"met-cs-771-internet-based-application-development","status":"publish","type":"page","link":"https:\/\/sites.bu.edu\/braude\/courses\/met-cs-771-internet-based-application-development\/","title":{"rendered":"MET CS 771 Internet based Application Development"},"content":{"rendered":"<p><em>Last updated April 3, 2002:  Last few changes are often in red<\/em><\/p>\n<p>Linked alphabetical  index to this page:<\/p>\n<p><strong>1. <\/strong><strong>Background of the Instructor <\/strong><\/p>\n<p><strong>2. <\/strong><strong>Evaluation  of Students <\/strong><\/p>\n<p><strong>3. <\/strong><strong>Forums:  Past and Present <\/strong><\/p>\n<p><strong>4. <\/strong><strong>Homework Due Dates <\/strong><\/p>\n<p><strong>5. <\/strong><strong>How  to Contact Dr. Braude <\/strong><\/p>\n<p><strong>6. <\/strong><strong>Introduction to the  Course<\/strong><\/p>\n<p><strong>7. <\/strong><strong>Learning Objectives <\/strong><\/p>\n<p><strong>8. <\/strong><strong>Project Structure<\/strong><\/p>\n<p><strong>9. <\/strong><strong>Syllabus  and Class Dates <\/strong><\/p>\n<p><strong>10. <\/strong><strong>Textbooks  and Materials<\/strong><\/p>\n<p><strong>11. <\/strong><strong>Warning Concerning Plagiarism <\/strong><\/p>\n<p><strong>Background: <\/strong>The network, rather than  the individual computer, is rapidly becoming the application platform of  choice.\u00a0 Increasingly, applications  consist of software from multiple sources, executing on a variety of physical  platforms, and bound together by the Internet. This course is designed to  investigate the technology options for this network-based application  environment.<\/p>\n<p><strong>Description:<\/strong> Technology and development methods for internet-based  distributed applications, including the World Wide Web platform.\u00a0 Distributed application architectures,  language systems (e.g. C#, Java, JavaScript, XML).\u00a0 Distributed Java features  will be exploited.\u00a0 Distributed object standards (CORBA and .NET), and  net-focused development methodologies. Internet agents. Term papers  investigating current literature and an application project are required.  Laboratory course.<\/p>\n<p><strong>Prerequisites:<\/strong> (1) 665 (Advanced Object-Oriented Programming) or 565  (Java Programming), and (2) 673 (Software Engineering) or 679 (Architecture and  Design of Client-Server Systems) or equivalent experience<\/p>\n<p><strong>This course is partially a &#8220;seminar&#8221;:<\/strong> There will be a  significant number of independent papers and presentations by students designed  to promote their own learning and that of the class.<\/p>\n<hr size=\"2\" \/><strong>Learning Objectives<\/strong><\/p>\n<ul>\n<li>\n<ul>\n<li>Understand and obtain        practice with current internet-based application principles and        architectures<\/li>\n<li>Understand current and        impending internet-based application architectures<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr size=\"2\" \/><strong>Textbook and  Materials<\/strong><\/p>\n<ul>\n<li>\n<ul>\n<li>Recommended (you could        do without this book): Client\/Server Programming with Java and CORBA 2<sup>nd<\/sup> Ed (1998)<em> <\/em>by R. Orfali and D. Harkey (Wiley), second edition<\/li>\n<li>The instructor will provide        notes for most of the classes<\/li>\n<li>Previous class forums, which        are open for browsing<\/li>\n<li>Students will gather        learning materials for their focused topics<\/li>\n<li>Additional References:\n<ul>\n<li><em>Java Network Programming<\/em> 2<sup>nd<\/sup> Edition<em> <\/em>by Elliotte Rusty Harold<\/li>\n<li>Assorted OMG         publications (Framingham MA)<\/li>\n<li>Microsoft         COM specifications<\/li>\n<li>Sun&#8217;s Java         references<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr size=\"2\" \/><strong>Project Structure<\/strong><\/p>\n<p>Students will be required to research at least one contemporary  Internet-based Application Development (I.B.A.D.) topic, and implement an  application of I.B.A.D. technology combinations that executed across the  Internet. Typical topics involve combinations of: CORBA, COM, Servlets, Agents  (e.g., Aglets), JavaScript client- and server-side, RMI, Python, and selected  distributed Java packages.<\/p>\n<p>There will be two projects during the term.\u00a0 Exact project requirements  will be supplied.<\/p>\n<ul>\n<li>One project will probably       refer to current publications concerning architectures for Internet based       applications<\/li>\n<li>the second project will be       an implementation<\/li>\n<\/ul>\n<p>Examples of prior projects have been posted to prior forums.\u00a0 In addition, I will give an example of an  XML\/Applet\/Servlet\/RMI application that students are encouraged to take  seriously as a potential paper and project.<\/p>\n<p>Each project\/paper will consist of a preliminary and a final  phase.\u00a0 The final submission should include a copy of the preliminary  phase, showing the instructor&#8217;s comments and indicating how they are addressed  in the final submission.\u00a0 Every student should expect to give a  presentation, together with handouts, on every project.\u00a0 Time and class  size constraints are such that possibly not every presentation will take place.<\/p>\n<hr size=\"2\" \/><strong>Evaluation of Students<\/strong><\/p>\n<p>The semester grade will be computed from the two projects, each weighted  equally.<br \/>\nWithin each project, phase 1 will count for 1\/4, and phase 2 for 3\/4. In  addition, several short homework papers will be required on a pass\/fail  basis.\u00a0All submitted papers and projects must be posted to a class web  site within a week of regular submission, as explained with each homework.\u00a0 Students may decline to do so, but only if  they submit notice of this declination via e-mail to the instructor at the due  date.<\/p>\n<p>Students will be given a number of pass\/fail assignments throughout the  semester.\u00a0 A \u201cPass\u201d grade is an adequate  basis for any grade in the course, which depends on the paper and project:  However, a grade of A or A+ may be given for a pass\/fail homework when the  student has performed exceptionally and gone well beyond the requirements of  the problem.<\/p>\n<p>Late homework will not accepted unless there is a reason why it was  impossible to perform the work.\u00a0 In that case, the written reason should  be attached to the homework, which will be graded on a pass\/fail basis.<\/p>\n<hr size=\"2\" \/>\n<h2><strong> <\/strong><\/h2>\n<h2><strong>Warning  concerning plagiarism<\/strong><strong> <\/strong><\/h2>\n<p>The Metropolitan College has specific guidelines defining plagiarism, and  you are responsible for abiding by them.\u00a0  This section provides additional guidance.<\/p>\n<p>The College has serious penalties for plagiarism, including expulsion from  the degree program. Please be very careful to cite all references used so that  it is very clear which parts of your submissions are your own, and which parts  are quoted from someone else.\u00a0\u00a0 Simply  listing references at the end of your submission is not sufficient.<\/p>\n<p>e-mail, see or call me if you have any doubts. In any case, clearly acknowledge  all sources in the context they are used, including code, of course.<strong> <\/strong><\/p>\n<hr size=\"2\" \/><strong>Syllabus<\/strong><\/p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"0\" width=\"593\">\n<tbody>\n<tr>\n<td width=\"5%\"><strong><span style=\"text-decoration: underline;\">Wk.<\/span><\/strong><\/td>\n<td width=\"6%\"><strong><span style=\"text-decoration: underline;\">Date<\/span><\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Topic<\/span><\/strong><\/p>\n<p><em>Note: due to    the rapid changes in technology, these topics and their order are subject to    about 20% change<\/em><em> <\/em><\/td>\n<td width=\"8%\"><strong><span style=\"text-decoration: underline;\">Chapters    from Orfali &amp; Harkey<\/span><\/strong><\/td>\n<td width=\"13%\"><strong><span style=\"text-decoration: underline;\">Project:<\/span><\/strong><\/p>\n<p><strong>(approximate:    See \u201chomework dates due\u201d section for final dates)<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">1<\/td>\n<td width=\"6%\"><strong>1\/15<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Overview<\/span><\/strong><\/p>\n<p><strong><em>Introduction to Internet    Applications and CORBA<\/em><\/strong><br \/>\nExplain the distributed software environment    envisaged by<br \/>\nthe Object Management Group and others.    Introduce the ORB concept.<\/td>\n<td width=\"8%\">1; supple-ments<\/td>\n<td width=\"13%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">2<\/td>\n<td width=\"6%\"><strong>1\/22<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Middleware and CORBA<\/span><\/strong><\/p>\n<p><strong> <em>Introduction to the CORBA \/    Java relationship<\/em><\/strong><em><br \/>\n<\/em>Show how CORBA and Java complement each    other.\u00a0 Review Java features that    enhance this relationship.\u00a0 Jini.<\/p>\n<p><strong><em>Introduction to XML and SOAP<\/em><\/strong><\/td>\n<td width=\"8%\">2;<br \/>\nsupple-ments<\/td>\n<td width=\"13%\">Project 1-1 assigned<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">3<\/td>\n<td width=\"6%\"><strong>1\/29<\/strong><\/td>\n<td width=\"64%\"><strong><em>Object Request Brokers<\/em><\/strong><br \/>\nUnderstand the goals of distributed    application development, particularly those defined by the OMG (Object    Management Group). Describe the essentials of ORBs (Object Request    Brokers).\u00a0 Show the code for distributed applications written in Java    and using CORBA.<strong><em> Integrating Applets with ORBS<\/em><\/strong><br \/>\nShow how ORBS can be used from    applets.\u00a0\u00a0 Introduce Java Beans; illustrate their importance for    distributed application development.<\/td>\n<td width=\"8%\">5, 27<\/td>\n<td width=\"13%\">Discuss potential projects<br \/>\nProject 1-2 assigned<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">4<\/td>\n<td width=\"6%\"><strong>2\/5<\/strong><\/td>\n<td width=\"64%\"><strong><em>Dynamic CORBA usage<\/em><\/strong><br \/>\nShow how remote objects and methods can be    discovered, and methods built and applied at runtime.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0    <strong><em>Interpreted client-side languages: JavaScript<\/em><\/strong><br \/>\nIllustrate the positioning of JavaScript and    competitor languages.<\/td>\n<td width=\"8%\">7,8<\/td>\n<td width=\"13%\">Project 1-1 due\u00a0 assigned<br \/>\nStudent presentations<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">5<\/td>\n<td width=\"6%\"><strong>2\/12<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Components for the Internet <\/span><\/strong><\/p>\n<p><strong>Java Beans<\/strong><\/p>\n<p>Review the goals of components and    Beans.\u00a0 Emphasize Internet aspects.<\/td>\n<td width=\"8%\">27-32<\/td>\n<td width=\"13%\">Student presentations<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">6<\/td>\n<td width=\"6%\"><strong><span style=\"text-decoration: underline;\">2\/26<\/span><\/strong><\/td>\n<td width=\"64%\"><strong>C# and .NET<\/strong><\/p>\n<p>Review the goals of C# and contrast with    Java.\u00a0 Emphasize Internet aspects.<\/td>\n<td width=\"8%\">supple-ments<\/td>\n<td width=\"13%\">Student presentations<\/p>\n<p>Project 2-1 assigned<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">7<\/td>\n<td width=\"6%\"><strong><span style=\"text-decoration: underline;\">3\/11<\/span><\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Network programming<\/span>: <em>with Java<\/em><\/strong><br \/>\nReview Java&#8217;s integral relationship with the    Internet.\u00a0 Explain socket and stream programming<\/td>\n<td width=\"8%\">10; supple-ments<\/td>\n<td width=\"13%\">Project 1-2 due<\/p>\n<p>Student presentations<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">8<\/td>\n<td width=\"6%\"><strong>3\/18<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Protocols and Data Languages<\/span>: <em>HTTP<\/em><\/strong><em> <strong>, CGI    and XML II<\/strong><br \/>\n<\/em>Understand the way many applications are    done today, and the potential of XML<\/td>\n<td width=\"8%\">11; supple-ments<\/td>\n<td width=\"13%\">Discuss potential projects<br \/>\nStudent presentations Project 2-1 due\u00a0 Project 2-2 assigned<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">9<\/td>\n<td width=\"6%\"><strong>3\/25<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Miscellaneous, including JavaScript<\/span><\/strong>.<\/td>\n<td width=\"8%\"><\/td>\n<td width=\"13%\">Student presentations<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">10<\/td>\n<td width=\"6%\"><strong>4\/2<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Simple Remote Invocations<\/span>: <em>RMI <\/em><\/strong><br \/>\nDefine Remote method Invocation; Review the    RMI package; Show the use of RMI; Review trade-offs with competing methods,    including CORBA.<\/td>\n<td width=\"8%\">13; supple-ments<\/td>\n<td width=\"13%\">Student presentations<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">11<\/td>\n<td width=\"6%\"><strong>4\/9<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Microsoft Middleware<\/span>: <em>COM, ActiveX, Web Services <\/em><\/strong>Understand COM; Review Active-X; Use Active-X    controls for the Internet<\/td>\n<td width=\"8%\">15-16; supple-ments<\/td>\n<td width=\"13%\">Student presentations<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">12<\/td>\n<td width=\"6%\"><strong>4\/16<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Advanced Middleware<\/span>: <em>.NET, CORBA Services<\/em><\/strong><em><br \/>\n<\/em>Describe common services for distributed    applications, including the CORBA\u00a0 Interface Repository and Trader    service.\u00a0 Review the operation of CORBA classes such as the BOA and    Portable Object Adapter.\u00a0 Web    services.<\/p>\n<p><strong><em>Metadata in CORBA and Java<\/em><\/strong><em><br \/>\n<\/em>Describe introspection in CORBA.\u00a0    Compare it with Java&#8217;s introspection.\u00a0 Explain the application of    metadata.\u00a0 Review the mappings of IDL to Java.\u00a0 Define Sun&#8217;s    Java-to-IDL process.<\/td>\n<td width=\"8%\">17-18<\/p>\n<p>19-22<\/td>\n<td width=\"13%\">Student presentations<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">13<\/td>\n<td width=\"6%\"><strong>4\/23<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Internet Agents<\/span><\/strong><br \/>\nApplications of the course&#8217;s technologies to    the construction of bots, crawlers etc.<\/td>\n<td width=\"8%\">supple-ments<\/td>\n<td width=\"13%\">Student presentations<\/td>\n<\/tr>\n<tr>\n<td width=\"5%\">14<\/td>\n<td width=\"6%\"><strong>4\/30<\/strong><\/td>\n<td width=\"64%\"><strong><span style=\"text-decoration: underline;\">Student projects<\/span><\/strong><\/td>\n<td width=\"8%\"><\/td>\n<td width=\"13%\">Students present results<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong> <\/strong><\/p>\n<p><strong>Homework Due dates<\/strong><strong> <\/strong><\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"638\">\n<tbody>\n<tr>\n<td width=\"30%\" valign=\"top\"><strong>Number<\/strong><\/td>\n<td width=\"40%\" valign=\"top\"><strong>Name<\/strong><\/td>\n<td width=\"29%\" valign=\"top\"><strong>Due date<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">1<\/td>\n<td width=\"40%\" valign=\"top\">Motivation<\/td>\n<td width=\"29%\" valign=\"top\">1\/22<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">2<\/td>\n<td width=\"40%\" valign=\"top\">ORB\/Java<\/td>\n<td width=\"29%\" valign=\"top\">2\/12<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">Project 1 Phase 1<\/td>\n<td width=\"40%\" valign=\"top\"><\/td>\n<td width=\"29%\" valign=\"top\">2\/5<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">3<\/td>\n<td width=\"40%\" valign=\"top\">Preferably Dynamic CORBA (otherwise    Applet\/ORB)<\/td>\n<td width=\"29%\" valign=\"top\">2\/26<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">Project 1 Phase 2<\/td>\n<td width=\"40%\" valign=\"top\"><\/td>\n<td width=\"29%\" valign=\"top\">3\/12<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">4<\/td>\n<td width=\"40%\" valign=\"top\">BeanBox 11.2<\/td>\n<td width=\"29%\" valign=\"top\">2\/26<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">5<\/td>\n<td width=\"40%\" valign=\"top\">.NET Exercises<\/td>\n<td width=\"29%\" valign=\"top\">3\/19<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">6<\/td>\n<td width=\"40%\" valign=\"top\">Sockets etc.<\/td>\n<td width=\"29%\" valign=\"top\">3\/26<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">Project 2 Phase 1<\/td>\n<td width=\"40%\" valign=\"top\"><\/td>\n<td width=\"29%\" valign=\"top\">3\/26<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">7<\/td>\n<td width=\"40%\" valign=\"top\">Reverse<\/td>\n<td width=\"29%\" valign=\"top\">4\/2<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">8<\/td>\n<td width=\"40%\" valign=\"top\">RMI<\/td>\n<td width=\"29%\" valign=\"top\">4\/16<\/td>\n<\/tr>\n<tr>\n<td width=\"30%\" valign=\"top\">Project 2 Phase 2<\/td>\n<td width=\"40%\" valign=\"top\"><\/td>\n<td width=\"29%\" valign=\"top\">4\/30<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong> <\/strong><\/p>\n<p><strong>Forums &#8212; past and present<\/strong><\/p>\n<p><strong>Spring  1999<\/strong><\/p>\n<p><strong>Fall  1999<\/strong><\/p>\n<p><strong>Spring  2000<\/strong><\/p>\n<p><strong>Fall  2000<\/strong><\/p>\n<p><strong>Spring  2001<\/strong><\/p>\n<p><strong>Summer 2001<\/strong><\/p>\n<p><strong>Fall  2001<\/strong><\/p>\n<p><strong>Spring  2002 group e-mail: <\/strong><strong>771Sp02@yahoogroups.com<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last updated April 3, 2002: Last few changes are often in red Linked alphabetical index to this page: 1. Background of the Instructor 2. Evaluation of Students 3. Forums: Past and Present 4. Homework Due Dates 5. How to Contact Dr. Braude 6. Introduction to the Course 7. Learning Objectives 8. Project Structure 9. Syllabus [&hellip;]<\/p>\n","protected":false},"author":2828,"featured_media":0,"parent":22,"menu_order":8,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages\/63"}],"collection":[{"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/users\/2828"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/comments?post=63"}],"version-history":[{"count":1,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages\/63\/revisions"}],"predecessor-version":[{"id":64,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages\/63\/revisions\/64"}],"up":[{"embeddable":true,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages\/22"}],"wp:attachment":[{"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/media?parent=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}