Hello,
This is where you need true separation of client code and server code. The server code isn't an application per se, but web services that expose a RESTful API that's consumed by numerous client-side applications. Some of those client-side applications might be web applications on the desktop. Others might be client-side mobile web applications written entirely in HTML5/CSS3/JavaScript that use AJAX/JSON to pull back data from the services. Others might be client-side native mobile applications you develop using that native mobile SDKs (iOS SDK, Android SDK) that invoke the services.
Figure 6.6 in Chapter 6 on SOA and modularity illustrates this perfectly. Use modularity to maintain the internal integrity of your services just as you'd use modularity to maintain the internal integrity of a monolithic application. But the day of the monolithic application where client and server-side presentation, domain objects, and data access objects are all bundled together into a single application is quickly coming to an end. It's not a sustainable development model in a multi-channel world. Unfortunately, Chapter 6 isn't available for download. So for the first time this week, I'll tell you ... Buy the Book. Or win a copy.:-) The first six chapters lay this out for you. The rest of the book (i.e., the
patterns) help you do it.
Visit the book's website at
modularity.kirkk.com where you can review all 18 patterns and download an excerpt of the book. There is also a
mobile web application available that you can take with you wherever you go.
--kirk
Twitter: @pragkirk