remoting an object, into a separate software
component (or aspect) that we can compose or
weave into simple Java object, we would have
solved an important (re)engineering problem. We
argue that if there are many object types that need to
be modified, AOP allows to gather the modification,
in a modular way, into a unique entity (aspect). That
is not always easy to do it with SOP that changes the
name of existing class and the client code.
We studied the Enterprise Java Beans
distribution pattern, because of its popularity and
complexity and not surprisingly, we found that some
changes cannot be modularized into a separate
aspect. Is this a problem with the distribution
solution (the EJB architecture) or with the
distribution problem? This, again, is not an idle
theoretical question. One of the premises of Model-
Driven Engineering is that architectural design and
the coding of business logic are fairly independent
activities, enabling us to “code once” and “deploy
everywhere”. The transition from platform-
independent model (PIM) to platform-specific model
(PSM) applies an architectural mould (e.g. the EJB
pattern) to a bunch of domain class. If we could
write the business logic in a way that is entirely
independent of the deployment infrastructure, we
can write it once in the PIM, and deploy it to
different platforms. In transformational systems
jargon, this is equivalent to saying that architectural
design and business logic elaboration (coding) are
two commutative activities (Baxter, 1992). This
experiment seems to suggest that they aren’t where
the biggest hurdle is lifecycle management. By
abstracting object lifecycle management, we will
probably succeed.
REFERENCES
Baxter, I., 1992. Design Maintenance Systems. CACM,
vol .35 no. 4, pp. 73-89.
Büchi, M., Weck, W., 2000. Generic Wrappers. In
ECOOP’00. LNCS 1850, pp. 201–225.
Constantinides, C., Skotiniotis, T., 2004. Providing
Multidimensional Decomposition in Object-Oriented
Analysis and Design. Proceedings of the IASTED
International Conference. Innsbruck, Austria, Fub.17-
19.
Harrison, W., Ossher, H., 1993. Subject-oriented
programming: a critique of pure objects. In Proc. of
OOPSLA’93. pp. 411-428.
Kersten, M., Murphy, G.C., 1999. Atlas: A Case Study in
Building a Web-Based Learning Environment using
Aspect-Oriented Programming. OOSPLA’99. Denver,
CO, USA.
Kiczales, G., Lamping, J., Mendekar, A., Maeda, C.,
Lopes, C.V., Loingtier, J.M., Irvin, J., 1997. Aspect-
Oriented Programming. Proceedings of the European
Conference on Object-Oriented Programming
(ECOOP07). Springer-Verlag, Finland, pp. 220-242.
Mcheick, H., Mili, H., Msheik, H., Sioud A., and
Bouzouane, A., 2007. ASPECTGC: Aspect Garbage
Collection for Object lifecycle management.
Proceedings of ACM (ICICIS’07). Cairo, Egypt.
Mcheick, H., 2006. Distribution d’objets en utilisant les
techniques de développement orientées aspect :
programmation orientée aspect, programmation
orientée sujet et programmation orientée vue. Thèse de
doctorat, 273 pages, Université de Montréal, Québec,
Canada.
Mili, H., Harrison, W., Ossher, H., 1996. SubjectTalk :
Implementing Subject-Oriented Programming in
Smalltalk. In proceedings of TOOLS USA 1996. Santa
Barbara, CA, July 29 - August 2nd, 1996, Prentice-
Hall.
Mili, H., Mcheick, H., Dargham, J., 2002. CorbaViews:
Distribting objects with several functional aspects.
Journal of Object Technology. USA.
Mili, H., Sahraoui, H., Lounis, H., Mcheick, H., Elkharraz,
A., 2006. Understanding separation of Concerns.
Fundamental Approsches to Software Engineering,
FASE’06. Vienna (Austria), March 27-29.
OMG:www.omg.org, 2005.
Ossher H., et al., Subject-oriented composition rules. In
Proc. OOPSLA ’95. Austin, TX, Oct. 15-19, pp. 235-
250.
Soueid, T., Yahiaoui, N., Seinturier, L., Traverson, B.,
2005. Techniques d’aspect pour la gestion de la
mémoire répartie dans un environnement CORBA-
C++. In Proceeding of NOTERE’05. Gatineau
(Québec), Canada.
Tarr, P., Ossher, H., 2000. HyperJ User and Installation
Manual. IBM Corporation.
http://www.research.ibm.com/hyperspace, USA, 2000.
ICSOFT 2007 - International Conference on Software and Data Technologies
400