principles of object-oriented software development web applications
Post on 19-Dec-2015
232 views
TRANSCRIPT
![Page 1: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/1.jpg)
Principles of Object-Oriented Software Development
Web Applications
![Page 2: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/2.jpg)
Web Applications
Introduction
Objects and the Web Programming the Web -- a search for APIs The DejaVU Experience -- Jamming (on) the Web Software architectures revisited
Summary Q/A Literature
![Page 3: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/3.jpg)
Web Applications
• objects and the Web
• web application development -- tools and environments
• DejaVU - web applications with hush
• software architectures for the Web
Additional keywords and phrases:Web Objects, XML, Java, CORBA, multimedia, software architecture
![Page 4: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/4.jpg)
Objects and the Web
Subsections:
Trends and technologies The Object Web -- CORBA/Java versus Microsoft
![Page 5: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/5.jpg)
Client/Server pair
![Page 6: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/6.jpg)
Trends and technologies
Transport and Services
Web Corba Services HTML IDL Transport HTTP ORB/IIOP
Alternatives
ANSAWeb -- CORBA-based Web infrastructure WebBroker -- HTTP as a transport protocol for ORBs orblets -- Java applets with ORB
![Page 7: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/7.jpg)
Java applet with ORB
![Page 8: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/8.jpg)
Processing Steps
![Page 9: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/9.jpg)
1.get the HTML page, 2.load the applet, 3.start the applet, 4.connect to a CORBA server from the applet, 5.get access to the remote objects, 6.connect optionally to a database, and 7.send output either in HTML format or directly to the applet.
![Page 10: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/10.jpg)
The Object Web
CORBA/Java versus Microsoft
![Page 11: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/11.jpg)
Client-Server/CGI
![Page 12: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/12.jpg)
The Netscape way
Java/CORBA Web
Content Store
![Page 13: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/13.jpg)
Netscape Enterprise Server
![Page 14: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/14.jpg)
The Microsoft way
DNA
![Page 15: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/15.jpg)
Business Logic
![Page 16: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/16.jpg)
Microsoft DNA
![Page 17: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/17.jpg)
Programming the Web
a search for APIs
Subsections:
Models of computation Intelligent agents
![Page 18: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/18.jpg)
Models of computation
![Page 19: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/19.jpg)
Complaints lack of referential integrity undetected failures no control over Quality of Service
Observations dynamic quality of services complex interaction
Requirements uniformity, openness, flexibility, orthogonality, layered, platform-independent
Behavior reliable, configurable, monitoring, notification, triggering, thread-safe
Answers object-oriented, components, virtual APIs, callbacks, plug-ins
Requirements for APIs
![Page 20: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/20.jpg)
Actions
define a distributed model of computation that suits the Web. define canonical (language-independent?) object models for … resources, application domains ...
Perspectives servers - extensions browsers - clients, viewers, configuration agents - e.g. payment
Interests distributed objects plug-in components formalization of requirements and solutions
Dimensions of APIs
![Page 21: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/21.jpg)
The Document Object Model
Hierarchical structure of DOM
![Page 22: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/22.jpg)
Intelligent agents
Web Agent Support Program
![Page 23: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/23.jpg)
Web Agent Support Program
• intelligent navigation and information retrieval, information and document maintenance,
• user interfaces for Web-aware applications, dynamic documents with user-defined applets,
• declarative descriptions of agent-behavior based on user-preferences,
• declarative modeling of coordinated and cooperative behavior of software agents, and programming single and multi-agent systems.
![Page 24: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/24.jpg)
• modeling the behavior of cooperating agents
• generic means for realizing actual agents in a Web-aware context
• architectural support for programming agent-based systems
Research goals
![Page 25: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/25.jpg)
Framework components
• a methodology for developing agent-based applications, as well as
• a logical foundation for modeling agent behavior; and in addition
• guidelines for realizing actual agent applications, and
• software components that can be used as building blocks, including
• a language for programming agent behavior.
Web-aware agents
![Page 26: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/26.jpg)
The DejaVU Experience
Jamming (on) the Web
![Page 27: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/27.jpg)
The DejaVU Experience
Applications and the Web [Applications]
Bringing music to the Web [Music]
Chatting on the Web [Chatting]
Animating the Web -- an SGML-based approach [Animate]
Jamming (on) the Web [Jamming]
![Page 28: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/28.jpg)
Jamming (on) the Web
The score in a plugin
![Page 29: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/29.jpg)
<SCORE> <TITLE>Corrente</TITLE> <COMPOSER>Antonio Vivaldi</COMPOSER> <STAFF> <MEASURE Sig="3,4" Key=F Clef=Gclef> <NOTE Pos="1,3" Stem=down>d6 4 0 <REST Pos="3,6">C6 8 0 <NOTE Pos="4,6" Stem=up>a5 8 0 <NOTETUPLE Stem=down> <NOTE Pos="5,6">f5 8 0</NOTE> <NOTE Pos="6,6">a5 8 0</NOTE> </NOTETUPLE> </MEASURE> ... </STAFF> </SCORE>
![Page 30: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/30.jpg)
SCORE { margin-left : 30; margin-right : 30; margin-top : 80; margin-bottom : 20; page-height : 1000; page-width : 920; } TITLE { title-align : Center; title-font : -*-Times-Bold-R-Normal--*-240-*; } COMPOSER { composer-align : Center; composer-font : -*-Times-*-R-Normal--*-180-*; }
An associated style sheet
![Page 31: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/31.jpg)
• registering and unregistering MIDI devices,
• routing MIDI data between clients and MIDI devices, and administration and security checks.
The MIDI server
![Page 32: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/32.jpg)
The jam server
![Page 33: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/33.jpg)
Web components
![Page 34: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/34.jpg)
• viewer -- a widget for the inline display of several MIME types, such as HTML, VRML and Amuse score formats.
• web -- an extension of the MIMEviewer with a history of followed links and caching facility.
• netclient -- the interface to the World Wide Web, supporting several Internet protocols
![Page 35: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/35.jpg)
Software architectures revisited
It is a brave architect who, intoday's environment, does notdevelop, or at least consider, anobject-oriented design.
[Practice] p. 10
![Page 36: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/36.jpg)
Architectural software styles
• component types -- process, event, repository
• runtime relations -- topology
• semantic constraints -- immutability
• communication and coordination -- connectors
class of architectures
![Page 37: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/37.jpg)
The architecture of the Web
![Page 38: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/38.jpg)
Architectural issues
• managing growth, maintaining installed base
• enhanced functionality -- synchronized multimedia
• improved technological infrastructure -- HTTP-NG
![Page 39: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/39.jpg)
Plugin architectures Client NPP/Callbacks Browser NPN/Calls Instantiation and Destruction Version Info Stream Notification Stream Creation and Destruction Reading and Writing Streams StreamAsFile LiveConnect
![Page 40: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/40.jpg)
Summary
![Page 41: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/41.jpg)
Objects and the Web
• trends and technologies -- client/server + extensions
• ObjectWeb -- CORBA/Java vs Microsoft
1
![Page 42: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/42.jpg)
Programming the Web a search for APIs
• Models of computation
• Intelligent agents
2
![Page 43: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/43.jpg)
The DejaVU Experience Jamming (on) the Web
• Animating the Web -- an SGML-based approach
• Bringing music to the Web -- data formats + client-side plugin
• Jamming (on) the Web -- additional communication servers
3
![Page 44: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/44.jpg)
Architecture revisited
• OO -- simple call and return
• CORBA -- independent components
• WWW -- data centered
• events -- independent components
• logic -- virtual machine architecture
4
![Page 45: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/45.jpg)
Questions1. Describe the architecture of the Web. Explain the relevance of objects for the Web. 2. Sketch the Microsoft approach to the ObjectWeb. Discuss its pros and cons. 3. In what ways can Java and CORBA be deployed in Web applications? 4. Indicate how the computation model underlying the Web deviates from the computation models underlying, respectively, object systems and client/server systems. 5. What requirements can you think of for libraries or frameworks for developing Web applications? 6. Discuss the Document Object Model. 7. What are the requirements for a framework supporting intelligent agents? 8. Explain the issues that arise in extending the Web with additional media functionality. What solutions can you think of? Can you give an example?
![Page 46: Principles of Object-Oriented Software Development Web Applications](https://reader035.vdocuments.site/reader035/viewer/2022062320/56649d365503460f94a0e46d/html5/thumbnails/46.jpg)
Further reading
For information concerning the Web, have a look at http://www.w3c.org which give a detailed account on the history of the Web and many other issues. For an exposition of the issues and technologies that play a role in the battle for the ObjectWeb, consult [OWSurvival]. A good introduction to agents and its associated technology is given in [Survey]. For architectural issues, again, I recommend [Practice].