220 likes | 334 Views
359D 16/1/07 Eric Wohlstadter. What is Middleware? What is Aspect-Oriented Programming? Introductions Course Format Discussions Assignments. What is Middleware?. Mediates heterogeneities (differences) Defines standard protocols for distributed computing
E N D
359D 16/1/07 Eric Wohlstadter • What is Middleware? • What is Aspect-Oriented Programming? • Introductions • Course Format • Discussions • Assignments
What is Middleware? • Mediates heterogeneities (differences) • Defines standard protocols for distributed computing • Abstracts details of using protocols • Programmers use abstractions • Objects, Web Services, Broadcast channels • Abstractions implement protocols • Provided as off-the-shelf software • Not traditionally integrated in the operating system or a virtual machine
Common Middleware Platforms • Object-oriented • CORBA, Java RMI • Container-based • J2EE, .NET • Aspect-Oriented • Spring Framework • Message-oriented • TIBCO, JMS • Web Services • REST, SOAP • Web Frameworks • Struts, PHP, AJAX
Middleware • Conclusion • Middleware is about creating a run-time environment that mediates interactions between programming abstractions • We will come back to the details in a few weeks • First we will focus on AOP
AOP – Conceptual Level • Give programmers the power to implement the environment in which objects interact • Behavior of objects depends on their “context” • Override the behavior of method calls based on the context where the call takes place • Context • Implemented using “pointcuts” • Method call behavior • Implemented using “advice”
OO vs. AOP • Use OO to give different classes different behaviors • Use AOP to give interactions different behaviors A A B B
OO vs. AOP • Use OO to give different classes different behaviors • Use AOP to give interactions different behaviors • Example • All interactions between A and B are access control mediated A A B B
Examples of Contexts • Calling or Callee class • Calling or Callee method • Methods active on the call stack • Argument or Return types of methods Write a query that captures a context of interest using a “pointcut”!
AOP • Go to AOP pdf
AOP and Middleware • So, AOP provides support for focusing on interactions • Helps us to create new middleware features • See how AOP is used to address distributed programming concerns • RPC, Security, Fault-tolerance, Management • AOP used this way by companies such as IBM, Siemens, Spring • Compare to traditional middleware • J2EE, .NET, CORBA, Web Services
International Conference on AOSD • Sixth Aspect-Oriented Software Development Conference • Sheraton Wall Centre (on Burrard) • Variety of tutorials, workshops, demos and presentations • Several middleware related • March 12-16 • No class that week • Check out www.aosd.net/2007
Introduce Yourself • Name • Degree objective/Year • Research Interest or Career Objective
Course Format • Usually two research papers per class • Some lectures and tutorials • Paper review for one of the two papers • Each paper will be presented by students by informal slide presentations • Class discussion is important (10% of mark) • Throughout the term students are required to complete a research project • No exams
Research Project • Related to a topic in Middleware and/or AOP • Individually or group of two students • Recommendation • writingThesis(student) → ¬inGroup(student) • ¬writingThesis(student) → inGroup(student) • >= 2 page proposal (Feb 8th) • >= 4 page paper and implementation • 10-15 minute (+10 mins per person) class presentation at the end of the term
Research Project Scope • Implement original (software) feature or feature described in a research paper • possible A • Implement useful feature or describe an original feature without implementing • possible B • Review existing research literature or technical description of existing systems • possible C
Paper Reviews • Between 3/4 and 1 page. • Reviews will be marked out of 10 points • Reviews will be marked and returned in three batches • Review should be in paragraph form (not bulleted list) • Recommend you address these four questions (next slide)
Questions • What is the problem addressed by this paper? • What is the approach to solve this problem? • How do the authors validate (prove/show/argue) that their approach solves the problem? • What is one part of the approach or validation that you think can be improved or extended?
Paper Presentations • Two students will present a paper each class • Recommend use of slides • You may use slides which may be available on the web • You may copy figures from document to use in slides • You must reference all outside materials used • 15 minutes • Summarize paper and address the 4 questions
Attendance • Attendance is required • Participation in discussion is 10% of mark • You will not be able to submit paper reviews for classes which you did not attend • Exceptions will be made for students with documented medical excuses or academic related travel obligations
Grading • Project proposal 10% • Implementation and Report 30% • Project Presentation 30% • Paper reviews 20% • Class participation 10%
Conclusion • Questions? • Thursday • Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. ECOOP 2001. • AspectJ in class tutorial • Bring your laptops with latest Eclipse installed • Course Web Page http://www.cs.ubc.ca/~wohlstad/539D.html