359d 16/1/07 eric wohlstadter what is middleware? what is aspect-oriented programming? introductions...

22
359D 16/1/07 Eric Wohlstadter What is Middleware? What is Aspect-Oriented Programming? Introductions Course Format Discussions Assignments

Post on 19-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

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

Problems with Distribution

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

AA

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

AA

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

1. What is the problem addressed by this paper?2. What is the approach to solve this problem?3. How do the authors validate

(prove/show/argue) that their approach solves the problem?

4. 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 Pagehttp://www.cs.ubc.ca/~wohlstad/539D.html