NET Technologies 2006
Total Page:16
File Type:pdf, Size:1020Kb
.NET Technologies 2006 University of West Bohemia Campus Bory May 29 – June 1, 2006 Full papers proceedings Edited by Jens Knoop, Vienna University of Technology, Austria Vaclav Skala, University of West Bohemia, Czech Republic .NET Technologies – FULL papers conference proceedings Editor-in-Chief: Vaclav Skala University of West Bohemia, Univerzitni 8, Box 314 306 14 Plzen Czech Republic [email protected] Managing Editor: Vaclav Skala Author Service Department & Distribution: Vaclav Skala - UNION Agency Na Mazinach 9 322 00 Plzen Czech Republic Reg.No. (ICO) 416 82 459 Hardcopy: ISBN 80-86943-10-0 CONFERENCE CO-CHAIR Knoop, Jens (Vienna University of Technology, Vienna, Austria) Skala, Vaclav (University of West Bohemia, Plzen, Czech Republic) PROGRAMME COMMITTEE Aksit, Mehmet (University of Twente, The Netherlands) Giuseppe, Attardi (University of Pisa, Italy) Gough, John (Queensland University of Technology, Australia) Huisman, Marieke (INRIA Sophia Antipolis, France) Knoop, Jens (Vienna University of Technology, Austria) Lengauer, Christian (University of Passau, Germany) Lewis, Brian,T. (Intel Corp., USA) Meijer, Erik (Microsoft, USA) Ortin, Francisco (University of Oviedo, Spain) Safonov, Vladimir (St. Petersburg University, Russia) Scholz, Bernhard (The University of Sydney, Australia) Siegemund, Frank (European Microsoft Innovation Center, Germany) Skala, Vaclav (University of West Bohemia, Czech Republic) Srisa-an, Witawas (University of Nebraska-Lincoln, USA) Sturm, Peter (University of Trier, Germany) Sullivan, Kevin (University of Virginia, USA) van den Brand, Mark (Technical University of Eindhoven, The Netherlands) Veiga, Luis (INESC-ID, Portugal) Watkins, Damien (Microsoft Research, U.K.) REVIEWING BOARD Alvarez, Dario (Spain) Meijer, Erik (USA) Attardi, Giuseppe (Italy) Midkiff, Sam (USA) Baer, Philipp (Germany) Ortin, Francisco (Spain) Bilicki, Vilmos (Hungary) Palmisano, Ignazio (Italy) Bishop, Judith (South Africa) Pearce, David (New Zealand) Buckley, Alex (U.K.) Piessens, Frank (Belgium) Burgstaller,Bernd (Australia) Safonov, Vladimir (Russia) Cisternino, Antonio (Italy) Schaefer, Stefans (Australia) Colombo, Diego (Italy) Scholz, Bernhard (Australia) Comito, Carmela (Italy) Schordan, Markus (Austria) Ertl, Anton,M. (Austria) Siegmund, Frank (USA) Faber, Peter (Germany) Srinkant, Y.N. (India) Geihs, Kurt (Germany) Srisa-an, Witawas (USA) Gough, John (Australia) Strein, Dennis (Germany) Groesslinger, Armin (Germany) Sturm, Peter (Germany) Huisman, Marieke (France) Sullivan, Kevin (USA) Knoop, Jens (Austria) Tobies, Stephan (USA) Kratz, Hans (Germany) van den Brand, Mark (The Netherlands) Kumar,C., Sujit (India) Vaswani, Kapil (India) Latour, Louis (USA) Veiga, Luis (Portugal) Lewis, Brian (USA) Contents • Fröhlich,J.H., Schwarzinger,M.: Servicing Components with Connector 1 Systems (Austria) • Costa,C., Ali,N., Millán,C., Carsí,J.A.: Transparent Mobility of Distributed 11 Objects using .NET (Spain) • Safonov,V., Gratchev,M., Grigoryev,D., Maslennikov,A.: Aspect.NET - 19 Aspect-Oriented Toolkit for Microsoft.NET Based on Phoenix and Whidbey (Russia) • Benda,J., Matousek,T., Prosek,L.: Phalanger: Compiling and Running 31 PHP Applications on the Microsoft .NET Platform (Czech Republic) • Frank,M., Vasa,L., Skala,V.: MVE-2 Applied in Education Process (Czech 39 Republic) • Arnold,D., Corriveau,J-P.: Using the .NET Profiler API to Collect Object 47 Instances for Constraint Evaluation (Canada) • Bilicki,V., Dombi,J.D.: Building a General Framework for the Consistency 55 Management of Distributed Applications (Hungary) • Berezin,S.B., Voitsekhovskiy,D.V., Paskonov,V.M.: Implementing Unified 63 Access to Scientific Data from .NET Platform (Russia) • Serdyuk,Yu.: MC# 2.0: A Language for Concurrent Distributed 71 Programming Based on .NET (Russia) Servicing Components with Connector Systems Joachim H. Fröhlich Manuel Schwarzinger Software Engineering Department Racon Software GmbH Linz Johannes Kepler University of Linz Goethestr. 80, A-4021 Linz, Austria Altenbergerstr. 69, A-4040 Linz, Austria +43 70 6929 1732 +43 70 2468 9432 [email protected] [email protected] Abstract Interfaces bind components at dedicated points. Usually, despite their central role, interfaces are packed either with functionality-implementing components (call interfaces) or with functionality-using components (callback interfaces). Components that reference other components in order to implement or to use interfaces are directly coupled. This kind of coupling affects component implementations: integration of component services leads to implementations that are dependent on the component container or to a multiplication of implementation efforts. We propose connectors as a mechanism to completely decouple components from each other and from their underlying component container. Connectors are special-purpose components that isolate component interfaces. Connectors optionally provide services to communicating components, e.g., checking bidirectional communica- tion protocols (operation call sequences and data flows), exchanging components during run time, and parallel- izing or synchronizing service requests in a non-intrusive manner. This frees components to focus on their core business. Connectors foster the standardization of interfaces, accelerate the development of components, im- prove the testability, portability and maintainability of component-based programs, and hence promote compo- nent markets. .NET provides an almost ideal implementation basis. Keywords interfaces, connectors, components, configuration, software architecture 1. INTRODUCTION services (such as controlling access rights, monitor- Mainstream component systems facilitate compo- ing/profiling, object pooling, controlling concurrent nent-based programming but do not enforce it. This access, and controlling transactions) are attached to can partly be ascribed to the sensible wish for components via a mix of marker classes (such as Sys- downward compatibility with object-oriented pro- tem.ContextBoundObject and System.EnterpriseServices.Ser- gramming techniques and a white-box reuse style. vicedComponent) and attributes (such as ObjectPoolingAttri- This holds for .NET as well as for the Java. bute and SynchronizationAttribute, both defined in name- space System.EnterpriseServices). Thus component ser- In practice, object-oriented programs are usually or- vices are applied intrusively and serviced compo- ganized in complex class graphs. More often than nents are directly coupled to the component not, class libraries and frameworks expose many container. Implementation of component services details at unwieldy, complex interfaces that are along a message sink chain with call interception, intended to cover various broad application scopes. program reflection and container-dependent base This negatively impacts component architectures classes in a robust and efficient way proves a major when classes are blurred with components, as in challenge [Löw05]. Although not directly refer- .NET. A component-based architecture calls for a encing constructs of the component container, clients different programming style that employs black-box that reference serviced components (classes) become reuse, interfaces (types) and contracts. Component dependent not only on these components but also on Permission to make digital or hard copies of all or part of the underlying component container. this work for personal or classroom use is granted without It is fundamentally clear that components should be fee provided that copies are not made or distributed for designed with high cohesion and low coupling. This profit or commercial advantage and that copies bear this leads to advantages well-known from proper class notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute and method design. Functional diversity unfolded at to lists, requires prior specific permission and/or a fee. component interfaces as lengthy or deeply structured public classes packed into large assemblies compli- .NET Technologies 2006 cate the application and implementation of compo- Copyright UNION Agency – Science Press, nents. The resulting problems are best documented Plzen, Czech Republic. by complicated test procedures – most evidently for .NET Technologies 2006 FULL papers 1 ISBN 80-86943-10-0 components wired into intrusive application servers. possible. The architectural style must enable inde- These components are loaded with operations that pendent component evolution in in-house and open- are foreign to their core business. To overcome these market situations. For practicability, existing con- difficulties, lightweight component containers with tainer technologies, if needed at all, should be sup- minimal impact on applications have been emerging. plemented rather than be replaced. The mechanisms Spring [Har05] serves as a prototypical example in enabling this architectural style must be configurable the Java world; although Spring achieves decoupling and thereby provide only as much flexibility and cost through interfaces interposed between beans (compo- only as much in resources as needed in various stages nents), interfaces are not treated as independent con- of a project, such as development, test, launch or pro- tracts. duction stages. Interfaces connect communicating components (or classes) and thus should be independent pivotal ele- 3. CONNECTOR BASICS ments. In practice, however, interfaces are attached Interfaces rather