Soule | Autonomics Development: A Domain-Specific Aspect Language Approach | E-Book | www2.sack.de
E-Book

E-Book, Englisch, 134 Seiten

Reihe: Autonomic Systems

Soule Autonomics Development: A Domain-Specific Aspect Language Approach


1. Auflage 2010
ISBN: 978-3-0346-0540-3
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark

E-Book, Englisch, 134 Seiten

Reihe: Autonomic Systems

ISBN: 978-3-0346-0540-3
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark



Distributed applications are difficult to write as programmers need to adhere to specific distributed systems programming conventions and frameworks, which makes distributed systems development complex and error prone and ties the resultant application to the distributed system because the application's code is tangled with the crosscutting concern distribution. This book introduces the concept of a domain-specific aspect language called a Distribution Definition Language that generalises the distribution and distribution recovery concerns by describing the classes and methods of an existing application to be made remote, the distributed system to use to make them remote and the recovery mechanism to use in the event of an error. A software tool in the form of the RemoteJ compiler/generator that uses information contained in the Distribution Definition Language to generate the recovery and distributed system specific code and apply it to the application using bytecode manipulation and generation techniques is introduced. By allowing distribution and autonomic features, such as recovery, to be modularised and applied to existing applications this approach greatly simplifies distributed systems and autonomics development. This book is of particular interest to researchers and students of distributed systems, autonomics, domain-specific aspect languages and aspect-orientation.

Soule Autonomics Development: A Domain-Specific Aspect Language Approach jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


1;Contents;6
2;Preface;10
3;1 Introduction;12
3.1;1.1 Research Goal;14
3.2;1.2 Overview of Approach;15
3.3;1.3 Limitations;15
3.4;1.4 Hypothesis Statement;16
3.5;1.5 Contribution;16
3.6;1.6 Publications Overview;16
3.7;1.7 Book Structure;17
4;2 Distributed Systems Development;18
4.1;2.1 Introduction;18
4.2;2.2 Sockets-Based Programming;19
4.2.1;2.2.1 BSD Socket Interface;20
4.2.2;2.2.2 Socket Example;21
4.2.3;2.2.3 Summary;24
4.3;2.3 Remote Procedure Calls;24
4.3.1;2.3.1 Stubs and Skeletons;25
4.3.2;2.3.2 Interface Definition Language;26
4.3.3;2.3.3 Data Representation;27
4.3.4;2.3.4 Calls Semantics;27
4.3.5;2.3.5 Binding;29
4.3.6;2.3.6 Open Network Computing (ONC) Example;29
4.3.7;2.3.7 Summary;32
4.4;2.4 CORBA;32
4.4.1;2.4.1 CORBA Event Service;34
4.4.2;2.4.2 CORBA Example IDL;34
4.4.3;2.4.3 CORBA Example Implementation;36
4.4.4;2.4.4 Summary;36
4.5;2.5 Java Remote Method Invocation (RMI);36
4.5.1;2.5.1 RMI Example;41
4.5.2;2.5.2 Summary;43
4.6;2.6 Message-Oriented Middleware;44
4.6.1;2.6.1 Message Queues;45
4.6.2;2.6.2 Publish/Subscribe;47
4.6.3;2.6.3 Durable Topics;49
4.7;2.7 Chapter Summary;49
5;3 An Aspect-Oriented Approach;51
5.1;3.1 Introduction;51
5.2;3.2 Crosscutting Concerns and Aspects;51
5.3;3.3 AOP Semantics;52
5.4;3.4 Static and Dynamic Weaving;53
5.5;3.5 Language-Based Implementations;54
5.5.1;3.5.1 AspectJ;54
5.6;3.6 Framework-Based Implementations;57
5.6.1;3.6.1 The JBoss AOP Framework;58
5.7;3.7 AOP and Autonomics;61
5.7.1;3.7.1 The TOSKANA Toolkit;63
5.7.2;3.7.2 The QuO Toolkit;65
5.7.3;3.7.3 Reflection and AOP;66
5.8;3.8 AOP and the Distribution Concern;67
5.8.1;3.8.1 Domain-Specific Aspect Language Implementations;68
5.8.2;3.8.2 AspectJ Implementations;72
5.8.3;3.8.3 J-Orchestra;73
5.8.4;3.8.4 Other Systems;73
5.8.5;3.8.5 Our Approach;74
5.9;3.9 Chapter Summary;74
6;4 The Distribution Definition Language;77
6.1;4.1 Introduction;77
6.2;4.2 Motivation and Design Principles;77
6.2.1;4.2.1 Issues with Distributed Systems Development;77
6.2.2;4.2.2 Autonomic Computing;78
6.2.3;4.2.3 Separation of Concerns;79
6.2.4;4.2.4 Simplicity;79
6.3;4.3 The Distribution Definition Language;79
6.3.1;4.3.1 Comments;80
6.3.2;4.3.2 Keywords;80
6.3.3;4.3.3 Import Statements;80
6.3.4;4.3.4 Service Statement;80
6.3.5;4.3.5 Service Recovery Statements;81
6.3.6;4.3.6 Protocol Statements;82
6.3.7;4.3.7 Options Statements;82
6.3.8;4.3.8 Pointcut Statements;82
6.4;4.4 Influences;83
6.5;4.5 Current Limitations;84
6.5.1;4.5.1 Callbacks;84
6.5.2;4.5.2 Object Passing;84
6.5.3;4.5.3 Concurrency;85
6.6;4.6 Chapter Summary;85
7;5 The RemoteJ Compiler/GeneratorImplementation;86
7.1;5.1 Introduction;86
7.2;5.2 Compiler/Generator Overview;86
7.2.1;5.2.1 Bytecode Rewriting;88
7.3;5.3 Recovery Implementation;89
7.4;5.4 RMI Protocol Implementation;93
7.4.1;5.4.1 RMI Protocol Implementation Overview;93
7.4.2;5.4.2 RMI Interface Generation Phase;95
7.4.3;5.4.3 RMI Server Generation Phase;96
7.4.4;5.4.4 RMI Client Generation Phase;96
7.4.5;5.4.5 RMI Server Bootstrap;96
7.5;5.5 JMS Protocol Implementation;97
7.5.1;5.5.1 JMS Protocol Implementation Overview;97
7.5.2;5.5.2 JMS Client Generation;98
7.5.3;5.5.3 JMS Server Generation;100
7.6;5.6 REST Protocol Implementation;100
7.6.1;5.6.1 REST Protocol Implementation Overview;101
7.7;5.7 Implementation Issues;102
7.8;5.8 Chapter Summary;103
8;6 Evaluation;105
8.1;6.1 Introduction;105
8.2;6.2 Adding a Protocol – a Case Study;106
8.2.1;6.2.1 The Event-Driven Model;106
8.2.2;6.2.2 Adding the Protocols;107
8.2.3;6.2.3 Testing and Evaluation;108
8.2.4;6.2.4 Summary;109
8.3;6.3 Evaluating Distributed Application Development in RemoteJ;110
8.3.1;6.3.1 Bank Example;111
8.3.2;6.3.2 Remote Desktop Example;113
8.3.3;6.3.3 Other Applications;115
8.3.4;6.3.4 Summary;115
8.4;6.4 Recovery Evaluation;117
8.4.1;6.4.1 Automatic Recovery;117
8.4.2;6.4.2 User-Defined Recovery Routines;120
8.4.3;6.4.3 Summary;123
8.5;6.5 Chapter Summary;123
9;7 Conclusions and Future Work;124
9.1;7.1 Introduction;124
9.2;7.2 Challenges and Design Decisions;125
9.2.1;7.2.1 Compiler/Generator;125
9.2.2;7.2.2 Language Features;125
9.2.3;7.2.3 Protocol Implementations;126
9.3;7.3 Future Work;126
9.3.1;7.3.1 Parameters and Return Values;126
9.3.2;7.3.2 Callback Support;127
9.3.3;7.3.3 Recovery;127
9.3.4;7.3.4 Autonomic Features;128
9.4;7.4 Conclusion;129
10;Appendix A: RemoteJ Syntax;130
11;References;132



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.