本文发表在 rolia.net 枫下论坛(ZT)
How do we design and build the Presentation Tier of an application in an increasingly service-oriented world? We (Ganesh Prasad, Rajat Taneja and Vikrant Todankar) believe there is a definite answer, although it is not a particular technology but rather an Architectural Style. We call this style SOFEA, for Service-Oriented Front-End Architecture.
The principles of SOFEA are:
0.Decouple the three orthogonal Presentation Tier processes of Application Download, Presentation Flow and Data Interchange. This is the foundational principle of SOFEA. (Interestingly, the most common Presentation Tier technology, i.e., traditional web technology or “Web 1.0”, fails this principle.)
1.Explore various Application Download options to exploit usefully contrary trade-offs around client footprint, startup time, offline capability and a number of security-related parameters. (The key differences between “thin” and “rich” clients lie in these trade-offs, and therefore SOFEA is a metamodel for both types of applications.)
2.Presentation Flow must be driven by a client-side component and never by a server-side component. Client state must be managed within the client. (We show that the Front Controller “pattern” represented by all server-side web frameworks is in fact an anti-pattern, which is why there are so many variants of it and why none of them satisfies.)
3.Data Interchange between the Presentation Tier and the Service Tier must not become the weakest link in the end-to-end application chain of data integrity. The Presentation Tier must support equally rich data structures, data types and data constraints. (In this regard, the inherent weakness of “Web 1.0” makes it hard to integrate with the Service Tier. We recommend the use of XML as the common data denominator for the two tiers). Ideally also, the Data Interchange pattern between the two tiers should follow the peer-to-peer model rather than the client/server model to enable more natural event notification.
4.Model-View-Controller (MVC) is a good pattern to use to build the Presentation Tier. (This is not to be confused with Front Controller, which is an anti-pattern.) The MVC Controller is the key front-end component which manages client state and drives both Presentation Flow and Data Interchange processes.
There are many Presentation Tier technologies available to developers today, including some that were very recently announced. While all of them inherently allow wide latitude in the way they are used, we believe that adherence to SOFEA principles will ease their integration into an increasingly SOA-oriented enterprise infrastructure.更多精彩文章及讨论,请光临枫下论坛 rolia.net