%PDF-1.4
%
5 0 obj
<< /S /GoTo /D (chapter.1) >>
endobj
8 0 obj
(1 Introduction)
endobj
9 0 obj
<< /S /GoTo /D (section.1.1) >>
endobj
12 0 obj
(1.1 Chapter Summaries)
endobj
13 0 obj
<< /S /GoTo /D (chapter.2) >>
endobj
16 0 obj
(2 BACKGROUND)
endobj
17 0 obj
<< /S /GoTo /D (section.2.1) >>
endobj
20 0 obj
(2.1 Separation of Concerns)
endobj
21 0 obj
<< /S /GoTo /D (section.2.2) >>
endobj
24 0 obj
(2.2 Aspect-Oriented Software Development)
endobj
25 0 obj
<< /S /GoTo /D (subsection.2.2.1) >>
endobj
28 0 obj
(2.2.1 Aspect-Oriented Programming)
endobj
29 0 obj
<< /S /GoTo /D (subsection.2.2.2) >>
endobj
32 0 obj
(2.2.2 An Introduction to AspectJ)
endobj
33 0 obj
<< /S /GoTo /D (subsubsection.2.2.2.1) >>
endobj
36 0 obj
(2.2.2.1 Pointcuts)
endobj
37 0 obj
<< /S /GoTo /D (subsubsection.2.2.2.2) >>
endobj
40 0 obj
(2.2.2.2 Advice)
endobj
41 0 obj
<< /S /GoTo /D (subsubsection.2.2.2.3) >>
endobj
44 0 obj
(2.2.2.3 Inter-type declarations)
endobj
45 0 obj
<< /S /GoTo /D (subsubsection.2.2.2.4) >>
endobj
48 0 obj
(2.2.2.4 Aspect)
endobj
49 0 obj
<< /S /GoTo /D (subsubsection.2.2.2.5) >>
endobj
52 0 obj
(2.2.2.5 Aspect Weaving)
endobj
53 0 obj
<< /S /GoTo /D (subsubsection.2.2.2.6) >>
endobj
56 0 obj
(2.2.2.6 Parameter Bindings and Context Exposure in AspectJ)
endobj
57 0 obj
<< /S /GoTo /D (section.2.3) >>
endobj
60 0 obj
(2.3 Object Persistence)
endobj
61 0 obj
<< /S /GoTo /D (subsection.2.3.1) >>
endobj
64 0 obj
(2.3.1 Orthogonal Persistence)
endobj
65 0 obj
<< /S /GoTo /D (subsection.2.3.2) >>
endobj
68 0 obj
(2.3.2 Issues of Object Persistence)
endobj
69 0 obj
<< /S /GoTo /D (section.2.4) >>
endobj
72 0 obj
(2.4 Conventional Persistence Approaches)
endobj
73 0 obj
<< /S /GoTo /D (subsection.2.4.1) >>
endobj
76 0 obj
(2.4.1 Object Serialization)
endobj
77 0 obj
<< /S /GoTo /D (subsection.2.4.2) >>
endobj
80 0 obj
(2.4.2 Object-Relational Interfaces and Mapping)
endobj
81 0 obj
<< /S /GoTo /D (subsection.2.4.3) >>
endobj
84 0 obj
(2.4.3 Object Database Interface)
endobj
85 0 obj
<< /S /GoTo /D (subsection.2.4.4) >>
endobj
88 0 obj
(2.4.4 Persistence Frameworks)
endobj
89 0 obj
<< /S /GoTo /D (subsubsection.2.4.4.1) >>
endobj
92 0 obj
(2.4.4.1 Enterprise Java Beans)
endobj
93 0 obj
<< /S /GoTo /D (subsubsection.2.4.4.2) >>
endobj
96 0 obj
(2.4.4.2 Java Data Objects)
endobj
97 0 obj
<< /S /GoTo /D (subsubsection.2.4.4.3) >>
endobj
100 0 obj
(2.4.4.3 Hibernate)
endobj
101 0 obj
<< /S /GoTo /D (section.2.5) >>
endobj
104 0 obj
(2.5 Aspect-Oriented Programming for Object Persistence)
endobj
105 0 obj
<< /S /GoTo /D (subsection.2.5.1) >>
endobj
108 0 obj
(2.5.1 Distribution and Persistence in AOP \(DPA\))
endobj
109 0 obj
<< /S /GoTo /D (subsection.2.5.2) >>
endobj
112 0 obj
(2.5.2 Persistence as an Aspect \(PAA\))
endobj
113 0 obj
<< /S /GoTo /D (subsection.2.5.3) >>
endobj
116 0 obj
(2.5.3 Java Aspect Components \(JAC\))
endobj
117 0 obj
<< /S /GoTo /D (section.2.6) >>
endobj
120 0 obj
(2.6 Chapter Summary)
endobj
121 0 obj
<< /S /GoTo /D (chapter.3) >>
endobj
124 0 obj
(3 Problem Description)
endobj
125 0 obj
<< /S /GoTo /D (section.3.1) >>
endobj
128 0 obj
(3.1 The Object Model of the Motivating Examples )
endobj
129 0 obj
<< /S /GoTo /D (section.3.2) >>
endobj
132 0 obj
(3.2 Preparing Objects for Persistence)
endobj
133 0 obj
<< /S /GoTo /D (subsection.3.2.1) >>
endobj
136 0 obj
(3.2.1 Preparing Objects at Type-Level)
endobj
137 0 obj
<< /S /GoTo /D (subsubsection.3.2.1.1) >>
endobj
140 0 obj
(3.2.1.1 EJB Type-Level Preparation)
endobj
141 0 obj
<< /S /GoTo /D (subsubsection.3.2.1.2) >>
endobj
144 0 obj
(3.2.1.2 JDO Type-Level Preparation)
endobj
145 0 obj
<< /S /GoTo /D (subsubsection.3.2.1.3) >>
endobj
148 0 obj
(3.2.1.3 Hibernate Type-Level Preparation)
endobj
149 0 obj
<< /S /GoTo /D (subsubsection.3.2.1.4) >>
endobj
152 0 obj
(3.2.1.4 Summary of OO-Systems Type-Level Preparation)
endobj
153 0 obj
<< /S /GoTo /D (subsubsection.3.2.1.5) >>
endobj
156 0 obj
(3.2.1.5 Type-Level Preparation in PAA)
endobj
157 0 obj
<< /S /GoTo /D (subsubsection.3.2.1.6) >>
endobj
160 0 obj
(3.2.1.6 Type-Level Preparation in DPA)
endobj
161 0 obj
<< /S /GoTo /D (subsubsection.3.2.1.7) >>
endobj
164 0 obj
(3.2.1.7 Type-Level Preparation in JAC)
endobj
165 0 obj
<< /S /GoTo /D (subsubsection.3.2.1.8) >>
endobj
168 0 obj
(3.2.1.8 Summary of AO-Systems Type-Level Preparation)
endobj
169 0 obj
<< /S /GoTo /D (subsection.3.2.2) >>
endobj
172 0 obj
(3.2.2 Preparing Objects at Code-Level)
endobj
173 0 obj
<< /S /GoTo /D (subsubsection.3.2.2.1) >>
endobj
176 0 obj
(3.2.2.1 EJB Code-Level Preparation)
endobj
177 0 obj
<< /S /GoTo /D (subsubsection.3.2.2.2) >>
endobj
180 0 obj
(3.2.2.2 JDO Code-Level Preparation)
endobj
181 0 obj
<< /S /GoTo /D (subsubsection.3.2.2.3) >>
endobj
184 0 obj
(3.2.2.3 Hibernate Code-Level Preparation)
endobj
185 0 obj
<< /S /GoTo /D (subsubsection.3.2.2.4) >>
endobj
188 0 obj
(3.2.2.4 Summary of Conventional Systems Code-Level Preparation)
endobj
189 0 obj
<< /S /GoTo /D (subsubsection.3.2.2.5) >>
endobj
192 0 obj
(3.2.2.5 Code-Level Preparation in PAA)
endobj
193 0 obj
<< /S /GoTo /D (subsubsection.3.2.2.6) >>
endobj
196 0 obj
(3.2.2.6 Code-Level Preparation in DPA)
endobj
197 0 obj
<< /S /GoTo /D (subsubsection.3.2.2.7) >>
endobj
200 0 obj
(3.2.2.7 Code-Level Preparation in JAC)
endobj
201 0 obj
<< /S /GoTo /D (subsubsection.3.2.2.8) >>
endobj
204 0 obj
(3.2.2.8 Summary of AO-Systems Code-Level Preparation)
endobj
205 0 obj
<< /S /GoTo /D (subsection.3.2.3) >>
endobj
208 0 obj
(3.2.3 Initial Remarks)
endobj
209 0 obj
<< /S /GoTo /D (section.3.3) >>
endobj
212 0 obj
(3.3 Object Relationships for Persistence in Aspect-Orientation)
endobj
213 0 obj
<< /S /GoTo /D (subsection.3.3.1) >>
endobj
216 0 obj
(3.3.1 Example 1: Pure Persistence Problem Caused by Uniformity)
endobj
217 0 obj
<< /S /GoTo /D (subsection.3.3.2) >>
endobj
220 0 obj
(3.3.2 Example 2: Field-Based Locking Mechanism)
endobj
221 0 obj
<< /S /GoTo /D (subsection.3.3.3) >>
endobj
224 0 obj
(3.3.3 Example 3: Cascading Version Locking Mechanism)
endobj
225 0 obj
<< /S /GoTo /D (section.3.4) >>
endobj
228 0 obj
(3.4 Object Relationships for other Concerns in Aspect-Orientation)
endobj
229 0 obj
<< /S /GoTo /D (section.3.5) >>
endobj
232 0 obj
(3.5 Problem Statement)
endobj
233 0 obj
<< /S /GoTo /D (section.3.6) >>
endobj
236 0 obj
(3.6 Chapter Summary)
endobj
237 0 obj
<< /S /GoTo /D (chapter.4) >>
endobj
240 0 obj
(4 Path Expression Pointcuts)
endobj
241 0 obj
<< /S /GoTo /D (section.4.1) >>
endobj
244 0 obj
(4.1 Path Expressions)
endobj
245 0 obj
<< /S /GoTo /D (section.4.2) >>
endobj
248 0 obj
(4.2 Introduction to Path Expression Pointcuts)
endobj
249 0 obj
<< /S /GoTo /D (subsection.4.2.1) >>
endobj
252 0 obj
(4.2.1 Syntax)
endobj
253 0 obj
<< /S /GoTo /D (subsection.4.2.2) >>
endobj
256 0 obj
(4.2.2 Semantics)
endobj
257 0 obj
<< /S /GoTo /D (subsubsection.4.2.2.1) >>
endobj
260 0 obj
(4.2.2.1 Pattern Matching)
endobj
261 0 obj
<< /S /GoTo /D (subsubsection.4.2.2.2) >>
endobj
264 0 obj
(4.2.2.2 Parameter Bindings and Context Exposure in PEP)
endobj
265 0 obj
<< /S /GoTo /D (subsubsection.4.2.2.3) >>
endobj
268 0 obj
(4.2.2.3 PEP as an Expressive Pointcut)
endobj
269 0 obj
<< /S /GoTo /D (subsubsection.4.2.2.4) >>
endobj
272 0 obj
(4.2.2.4 Advice Execution Mechanism)
endobj
273 0 obj
<< /S /GoTo /D (subsubsection.4.2.2.5) >>
endobj
276 0 obj
(4.2.2.5 Ordering Multiple Advice Executions)
endobj
277 0 obj
<< /S /GoTo /D (section.4.3) >>
endobj
280 0 obj
(4.3 Discussion)
endobj
281 0 obj
<< /S /GoTo /D (subsection.4.3.1) >>
endobj
284 0 obj
(4.3.1 PEP Comprehension)
endobj
285 0 obj
<< /S /GoTo /D (subsection.4.3.2) >>
endobj
288 0 obj
(4.3.2 Typing Issues)
endobj
289 0 obj
<< /S /GoTo /D (section.4.4) >>
endobj
292 0 obj
(4.4 Chapter Summary)
endobj
293 0 obj
<< /S /GoTo /D (chapter.5) >>
endobj
296 0 obj
(5 Formal Semantics and Type System)
endobj
297 0 obj
<< /S /GoTo /D (section.5.1) >>
endobj
300 0 obj
(5.1 Denotational Semantics)
endobj
301 0 obj
<< /S /GoTo /D (section.5.2) >>
endobj
304 0 obj
(5.2 Formal Mathematical Base Model)
endobj
305 0 obj
<< /S /GoTo /D (subsection.5.2.1) >>
endobj
308 0 obj
(5.2.1 The Object Graph Model)
endobj
309 0 obj
<< /S /GoTo /D (subsection.5.2.2) >>
endobj
312 0 obj
(5.2.2 An Example of the Object Graph Model)
endobj
313 0 obj
<< /S /GoTo /D (section.5.3) >>
endobj
316 0 obj
(5.3 The Syntactic World)
endobj
317 0 obj
<< /S /GoTo /D (section.5.4) >>
endobj
320 0 obj
(5.4 The Semantic World)
endobj
321 0 obj
<< /S /GoTo /D (subsection.5.4.1) >>
endobj
324 0 obj
(5.4.1 The Semantic Domains)
endobj
325 0 obj
<< /S /GoTo /D (subsection.5.4.2) >>
endobj
328 0 obj
(5.4.2 Semantic Auxiliary Functions)
endobj
329 0 obj
<< /S /GoTo /D (subsection.5.4.3) >>
endobj
332 0 obj
(5.4.3 The Main Semantic Functions)
endobj
333 0 obj
<< /S /GoTo /D (subsection.5.4.4) >>
endobj
336 0 obj
(5.4.4 The Semantic Equations)
endobj
337 0 obj
<< /S /GoTo /D (section.5.5) >>
endobj
340 0 obj
(5.5 Example of the Semantics Usage)
endobj
341 0 obj
<< /S /GoTo /D (section.5.6) >>
endobj
344 0 obj
(5.6 PEP Semantics in a Complete Pointcut Language)
endobj
345 0 obj
<< /S /GoTo /D (subsection.5.6.1) >>
endobj
348 0 obj
(5.6.1 The Semantics of the Base Language)
endobj
349 0 obj
<< /S /GoTo /D (subsubsection.5.6.1.1) >>
endobj
352 0 obj
(5.6.1.1 Join Points)
endobj
353 0 obj
<< /S /GoTo /D (subsubsection.5.6.1.2) >>
endobj
356 0 obj
(5.6.1.2 Pointcuts)
endobj
357 0 obj
<< /S /GoTo /D (subsubsection.5.6.1.3) >>
endobj
360 0 obj
(5.6.1.3 Variable Bindings)
endobj
361 0 obj
<< /S /GoTo /D (subsubsection.5.6.1.4) >>
endobj
364 0 obj
(5.6.1.4 Semantic Equations)
endobj
365 0 obj
<< /S /GoTo /D (subsection.5.6.2) >>
endobj
368 0 obj
(5.6.2 Integrating PEP with Aspect SoundBox \(ASB\))
endobj
369 0 obj
<< /S /GoTo /D (subsubsection.5.6.2.1) >>
endobj
372 0 obj
(5.6.2.1 Example 1)
endobj
373 0 obj
<< /S /GoTo /D (subsubsection.5.6.2.2) >>
endobj
376 0 obj
(5.6.2.2 Example 2)
endobj
377 0 obj
<< /S /GoTo /D (section.5.7) >>
endobj
380 0 obj
(5.7 Typing Issues)
endobj
381 0 obj
<< /S /GoTo /D (subsection.5.7.1) >>
endobj
384 0 obj
(5.7.1 A Generic Type for Parameter Binding Lists)
endobj
385 0 obj
<< /S /GoTo /D (subsection.5.7.2) >>
endobj
388 0 obj
(5.7.2 A Generic Type for Path Expression Graphs)
endobj
389 0 obj
<< /S /GoTo /D (subsection.5.7.3) >>
endobj
392 0 obj
(5.7.3 A Type System for PEP)
endobj
393 0 obj
<< /S /GoTo /D (subsubsection.5.7.3.1) >>
endobj
396 0 obj
(5.7.3.1 PEP Static Typing)
endobj
397 0 obj
<< /S /GoTo /D (subsubsection.5.7.3.2) >>
endobj
400 0 obj
(5.7.3.2 Examples)
endobj
401 0 obj
<< /S /GoTo /D (section.5.8) >>
endobj
404 0 obj
(5.8 Chapter Summary)
endobj
405 0 obj
<< /S /GoTo /D (chapter.6) >>
endobj
408 0 obj
(6 Implementation)
endobj
409 0 obj
<< /S /GoTo /D (section.6.1) >>
endobj
412 0 obj
(6.1 Aspect Language with Path Expression Pointcut \(PePAL\))
endobj
413 0 obj
<< /S /GoTo /D (subsection.6.1.1) >>
endobj
416 0 obj
(6.1.1 Syntax)
endobj
417 0 obj
<< /S /GoTo /D (subsection.6.1.2) >>
endobj
420 0 obj
(6.1.2 Examples)
endobj
421 0 obj
<< /S /GoTo /D (section.6.2) >>
endobj
424 0 obj
(6.2 Design Issues)
endobj
425 0 obj
<< /S /GoTo /D (section.6.3) >>
endobj
428 0 obj
(6.3 Chapter Summary)
endobj
429 0 obj
<< /S /GoTo /D (chapter.7) >>
endobj
432 0 obj
(7 Motivating Examples Revisited)
endobj
433 0 obj
<< /S /GoTo /D (section.7.1) >>
endobj
436 0 obj
(7.1 Pure Persistence Problem: Persisting Updates)
endobj
437 0 obj
<< /S /GoTo /D (section.7.2) >>
endobj
440 0 obj
(7.2 Pessimistic Field-based Locking Policy)
endobj
441 0 obj
<< /S /GoTo /D (section.7.3) >>
endobj
444 0 obj
(7.3 Optimistic Version-based Locking Policy with Cascading)
endobj
445 0 obj
<< /S /GoTo /D (section.7.4) >>
endobj
448 0 obj
(7.4 Observer Design Pattern)
endobj
449 0 obj
<< /S /GoTo /D (section.7.5) >>
endobj
452 0 obj
(7.5 Chapter Summary)
endobj
453 0 obj
<< /S /GoTo /D (chapter.8) >>
endobj
456 0 obj
(8 Related Work)
endobj
457 0 obj
<< /S /GoTo /D (section.8.1) >>
endobj
460 0 obj
(8.1 Object Persistence)
endobj
461 0 obj
<< /S /GoTo /D (subsection.8.1.1) >>
endobj
464 0 obj
(8.1.1 Persistence as a Language Feature)
endobj
465 0 obj
<< /S /GoTo /D (subsection.8.1.2) >>
endobj
468 0 obj
(8.1.2 Object-Oriented Persistence Frameworks)
endobj
469 0 obj
<< /S /GoTo /D (section.8.2) >>
endobj
472 0 obj
(8.2 Aspect-Oriented Programming for Object Persistence)
endobj
473 0 obj
<< /S /GoTo /D (subsection.8.2.1) >>
endobj
476 0 obj
(8.2.1 A Case of AOP on Failure Recovery)
endobj
477 0 obj
<< /S /GoTo /D (subsection.8.2.2) >>
endobj
480 0 obj
(8.2.2 Distribution and Persistence in AOP \(DPA\))
endobj
481 0 obj
<< /S /GoTo /D (subsection.8.2.3) >>
endobj
484 0 obj
(8.2.3 Persistence as an Aspect \(PAA\))
endobj
485 0 obj
<< /S /GoTo /D (subsection.8.2.4) >>
endobj
488 0 obj
(8.2.4 Java Aspect Components \(JAC\))
endobj
489 0 obj
<< /S /GoTo /D (subsection.8.2.5) >>
endobj
492 0 obj
(8.2.5 Other Aspect-Oriented Solutions)
endobj
493 0 obj
<< /S /GoTo /D (section.8.3) >>
endobj
496 0 obj
(8.3 Non-Locality of Join Point Pproperties)
endobj
497 0 obj
<< /S /GoTo /D (section.8.4) >>
endobj
500 0 obj
(8.4 Expressiveness of the Pointcut Languages)
endobj
501 0 obj
<< /S /GoTo /D (section.8.5) >>
endobj
504 0 obj
(8.5 Path Expressions)
endobj
505 0 obj
<< /S /GoTo /D (section.8.6) >>
endobj
508 0 obj
(8.6 Path Expressions in Aspect-Oriented Programming)
endobj
509 0 obj
<< /S /GoTo /D (section.8.7) >>
endobj
512 0 obj
(8.7 Formal Semantics and Type System)
endobj
513 0 obj
<< /S /GoTo /D (chapter.9) >>
endobj
516 0 obj
(9 Discussion)
endobj
517 0 obj
<< /S /GoTo /D (section.9.1) >>
endobj
520 0 obj
(9.1 Design Choices and Limitations)
endobj
521 0 obj
<< /S /GoTo /D (chapter.10) >>
endobj
524 0 obj
(10 Discussion and Conclusion)
endobj
525 0 obj
<< /S /GoTo /D (section.10.1) >>
endobj
528 0 obj
(10.1 Discussion)
endobj
529 0 obj
<< /S /GoTo /D (section.10.2) >>
endobj
532 0 obj
(10.2 Future Work)
endobj
533 0 obj
<< /S /GoTo /D (section.10.3) >>
endobj
536 0 obj
(10.3 Summary of Contributions)
endobj
537 0 obj
<< /S /GoTo /D (section.10.4) >>
endobj
540 0 obj
(10.4 Conclusion Summary)
endobj
541 0 obj
<< /S /GoTo /D (chapter*.4) >>
endobj
544 0 obj
(Bibliography)
endobj
545 0 obj
<< /S /GoTo /D [546 0 R /Fit ] >>
endobj
549 0 obj <<
/Length 698
/Filter /FlateDecode
>>
stream
xuTKs0Wh`U/[4i
e&AqWd:C@2oO&C]-oK*RQRbV7%\[9;߸Ѫv4C\ِseF/
`UOa˾v~7ؽ
8_7
ˤAq:{wa*S{1ת![|ڹ0w~4:TǼ
B',PNGkŧ<U@3nAh{`Z#Q4i;85sQ1_SPJ1gPK\5Kmcr2n3ٮXy .?Dž?O.ebRL%t WxOfPgfWqzI'[Kh)d=`3]}u^L7}i6)y^azc'eS5#>*7Ppb6
endstream
endobj
546 0 obj <<
/Type /Page
/Contents 549 0 R
/Resources 548 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 555 0 R
>> endobj
547 0 obj <<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (ThesisFigs/Unilogo.pdf)
/PTEX.PageNumber 1
/PTEX.InfoDict 556 0 R
/BBox [3.750015 4.874786 204.000778 64.125015]
/Resources <<
/XObject <<
/Im0 557 0 R
>>/ProcSet [ /PDF /ImageC ]
>>
/Length 42
/Filter /FlateDecode
>>
stream
H*22032U0 B3c ag˥k` |
endstream
endobj
556 0 obj
<<
/ModDate (D:20071120102200+01'00')
/CreationDate (D:20071120102021+01'00')
/Creator (Adobe Acrobat 6.02)
/Producer (Adobe Acrobat 6.02 Image Conversion Plug-in)
>>
endobj
557 0 obj
<<
/Length 9193
/Filter /DCTDecode
/Width 275
/Height 84
/BitsPerComponent 8
/ColorSpace /DeviceRGB
/Type /XObject
/Name /X
/Subtype /Image
>>
stream
Adobe d
T
s !1AQa"q2B#R3b$r%C4Scs5D'6Tdt&
EFVU(eufv7GWgw8HXhx)9IYiy*:JZjz m !1AQa"q2#BRbr3$4CS%cs5DT
&6E'dtU7()euFVfvGWgw8HXhx9IYiy*:JZjz ? &ҿ8