DOC PREVIEW
USC CSCI 599 - C2-TSE

This preview shows page 1-2-3-4-5 out of 16 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1 of 16A Component- and Message-Based Architectural Style for GUI SoftwareRichard N. Taylor, Nenad Medvidovic,Kenneth M. Anderson, E. James Whitehead Jr., Jason E. Robbins, Kari A. Nies,Peyman Oreizy and Deborah L. DubrowAbstract -- While a large fraction of application code is devoted tographical user interface (GUI) functions, support for reuse in thisdomain has largely been confined to the creation of GUI toolkits(“widgets”). We present a novel architectural style directed at sup-porting larger grain reuse and flexible system composition. More-over, the style supports design of distributed, concurrentapplications. Asynchronous notification messages and asynchronousrequest messages are the sole basis for inter-component communica-tion. A key aspect of the style is that components are not built withany dependencies on what typically would be considered lower-levelcomponents, such as user interface toolkits. Indeed, all componentsare oblivious to the existence of any components to which notificationmessages are sent. While our focus has been on applications involv-ing graphical user interfaces, the style has the potential for broaderapplicability. Several trial applications using the style are described.1Index Terms -- architectural styles, message-based architectures,graphical user interfaces (GUIs), heterogeneity, concurrency.I. INTRODUCTIONSoftware architectural styles are key design idioms [8, 24].UNIX’s pipe-and-filter style is more than twenty years old; black-board architectures have long been common in AI applications.User interface software has typically made use of two primaryruntime architectures: the client-server style (as exemplified by Xwindows) and the call-back model, a control model in whichapplication functions are invoked under the control of the userinterface. Also well known is the model-view-controller (MVC)style [15], which is commonly exploited in Smalltalk applica-tions. The Arch style is more recent, and has an associated meta-model [38].This paper presents a new architectural style. It is designed tosupport the particular needs of applications that have a graphicaluser interface aspect, but the style clearly has the potential forsupporting other types of applications. This style draws its keyideas from many sources, including the styles mentioned above,as well as specific experience with the Chiron-1 user interfacedevelopment system [14, 34]. In the following exposition, thestyle is referred to as the Chiron-2, or C2, style.A key motivating factor behind development of the C2 style isthe emerging need, in the user interface community, for a morecomponent-based development economy [37]. User interfacesoftware frequently accounts for a very large fraction of applica-tion software, yet reuse in the UI domain is typically limited totoolkit (widget) code. The architectural style presented supports aparadigm in which UI components, such as dialogs, structuredgraphics models of various levels of abstraction, and constraintmanagers, can more readily be reused. A variety of other goalsare potentially supported as well. These goals include the abilityto compose systems in which: components may be written in dif-ferent programming languages, components may be running con-currently in a distributed, heterogeneous environment withoutshared address spaces, architectures may be changed at runtime,multiple users may be interacting with the system, multiple tool-kits may be employed, multiple dialogs may be active anddescribed in different formalisms, and multiple media types maybe involved. We have not yet demonstrated that all these goals areachievable or especially supported by this style. We have exam-ined several key properties and built several diverse experimentalsystems, however. The focus of this paper, therefore, is to presentthe style and describe the evidence we have to date. We believeour preliminary findings are encouraging and that the style hassubstantial utility “as is.”The new style can be informally summarized as a network ofconcurrent components hooked together by message routingdevices. Central to the architectural style is a principle of limitedvisibility: a component within the hierarchy can only be aware ofcomponents “above” it and completely unaware of componentswhich reside “beneath” it. Notions of above and below are used inthis paper to support an intuitive understanding of the architec-tural style. As is typical with virtual machine diagrams found inoperating systems textbooks, in this discussion the applicationcode2 is arbitrarily regarded as being at the top while user inter-face toolkits, windowing systems, and physical devices are at thebottom. The human user is thus at the very bottom, interactingwith the physical devices of keyboard, mouse, microphone, andso forth.31. This material is based upon work sponsored by the Air Force Materiel Com-mand, Rome Laboratory, and the Advanced Research Projects Agency under con-tract number F30602-94-C-0218. The content of the information does notnecessarily reflect the position or policy of the Government and no officialendorsement should be inferred.2. It is sometimes convenient to consider an application system as being subdi-vided into two parts: one part are those aspects of the system which do not directlyperform any user interface functions (the “application”), and the other part arethose aspects concerned with interacting with the user (the “user interface”). Sucha distinction is rather arbitrary, and can usually be read as “those parts of an appli-cation system not constructed according to our architectural style and principles,and those parts which are.”IEEE Transactions on Software Engineering, vol. 22, no. 6, pages 390-406 (June 1996).2 of 16All components have their own thread(s) of control and thereis no assumption of a shared address space. At minimum, thismeans that components may not assume that they can directlyinvoke other component’s operations or have direct access toother components’ data. It is important to recognize that this con-ceptual architecture is distinct from the implementation architec-ture. There are many ways of realizing a given conceptualarchitecture, and this topic will be further discussed inSection III.E.A small example serves to illustrate several of these points. InFig. 1, we diagram a system in which a program alternatelypushes and pops items from a stack; the system also displays thestack graphically, using the visual


View Full Document

USC CSCI 599 - C2-TSE

Documents in this Course
Week8_1

Week8_1

22 pages

Week2_b

Week2_b

10 pages

LECT6BW

LECT6BW

20 pages

LECT6BW

LECT6BW

20 pages

5

5

44 pages

12

12

15 pages

16

16

20 pages

Nima

Nima

8 pages

Week1

Week1

38 pages

Week11_c

Week11_c

30 pages

afsin

afsin

5 pages

October5b

October5b

43 pages

Week11_2

Week11_2

20 pages

final

final

2 pages

c-4

c-4

12 pages

0420

0420

3 pages

Week9_b

Week9_b

20 pages

S7Kriegel

S7Kriegel

21 pages

Week4_2

Week4_2

16 pages

sandpres

sandpres

21 pages

Week6_1

Week6_1

20 pages

4

4

33 pages

Week10_c

Week10_c

13 pages

fft

fft

18 pages

LECT7BW

LECT7BW

19 pages

24

24

15 pages

14

14

35 pages

Week9_c

Week9_c

24 pages

Week11_67

Week11_67

22 pages

Week1

Week1

37 pages

LECT3BW

LECT3BW

28 pages

Week8_c2

Week8_c2

19 pages

Week5_1

Week5_1

19 pages

LECT5BW

LECT5BW

24 pages

Week10_b

Week10_b

16 pages

Week11_1

Week11_1

43 pages

Week7_2

Week7_2

15 pages

Week5_b

Week5_b

19 pages

Week11_a

Week11_a

29 pages

LECT14BW

LECT14BW

24 pages

T7kriegel

T7kriegel

21 pages

0413

0413

2 pages

3

3

23 pages

10_19_99

10_19_99

12 pages

s1and2-v2

s1and2-v2

37 pages

Week10_3

Week10_3

23 pages

jalal

jalal

6 pages

1

1

25 pages

T3Querys

T3Querys

47 pages

CS17

CS17

15 pages

porkaew

porkaew

20 pages

LECT4BW

LECT4BW

21 pages

Week10_1

Week10_1

25 pages

wavelet

wavelet

17 pages

October5a

October5a

22 pages

p289-korn

p289-korn

12 pages

2

2

33 pages

rose

rose

36 pages

9_7_99

9_7_99

18 pages

Week10_2

Week10_2

28 pages

Week7_3

Week7_3

37 pages

Load more
Download C2-TSE
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view C2-TSE and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view C2-TSE 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?