1 / 17

Distributed Smart Client Applications November 2004

Distributed Smart Client Applications November 2004. Jay Traband, CTO jayt@ideablade.com www.ideablade.com. Glad to be here. What is a Distributed Smart Client?. Distributed Processing in multiple places Data in multiple places Smart Client Maximized client-side processing

tremain
Télécharger la présentation

Distributed Smart Client Applications November 2004

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed Smart Client Applications November 2004 Jay Traband, CTO jayt@ideablade.comwww.ideablade.com

  2. Glad to be here

  3. What is a Distributed Smart Client? • Distributed • Processing in multiple places • Data in multiple places • Smart Client • Maximized client-side processing • Presentation layer • Business logic • Ability to run disconnected • One-click deployment

  4. RelationalDatabase PCClients BusinessObject Server Typical 3-Tier Architecture DataTier MiddleTier ClientTier Internet

  5. Business Object Persistence • How do I get data out of my database & into my business objects? • Do I pick a specific database vendor or write vendor neutral code? • Do my developers all need to know SQL? If so how do I isolate it? • How much business logic do I put in the database (stored proc/triggers etc)? • How do I handle concurrency, transactions, and multiple databases?

  6. What is a Business Object? • An instance of a class with . . . • Business data - “Salary” • Business logic - “GarnishWages()” • Business events - “SalaryChanged” • Persistence • Identity

  7. RelationalDatabase SQL SQL DataEncapsulation Data BusinessObject BusinessObject BusinessObject ObjectRelationalMapping SQL Business Objects Persistence Options DataTier BusinessModel

  8. Why Object-Relational Mapping • Decouple object and database semantics • Encapsulate database schema • Database & derived properties look the same • employee.BirthDate, employee.Age • Object graph navigation • “dot” notation vs. n-way joins & sub-selects“customer.Address.City” vs. “Select City from Address where Address.Id = Customer.AddressId and Customer.Id=12345” • Minimize or eliminate developer SQL • Custom and conflicting SQL • Stored Procedures • Database independence

  9. Enterprise-class ORM • Separate business object developers from consumers • Hide / filter / extend business objects for consumers • In-memory, fine-grain object cache • Offline mode; local persistence • Object query language • Views, stored procedures, & user-defined fields • Round-tripping: handle triggers & db calculations • Transactions & optimistic concurrency • Database independence

  10. Business Object Mobility • How do I move business objects between the object server and the client? • Do I use web Services, remoting, message queues or all of the above? • How do I handle firewalls & proxy servers? • Should I pass data, objects or distributed refs to objects? • How do I provide security? • Authentication / Authorization • Secure execution context & code access security • What performance / scalability tradeoffs am I making?

  11. Distributed Processing Issues • Object oriented design conflicts withScalable distributed design • Object methods and properties are fine grained,distributed methods are chunky • Object mobility (marshal by value vs marshal by ref) • Data Locality – data close to where used • Stateless objects for scalability;Stateful objects for ease of development • Session info, load balancing & threading

  12. RelationalDatabase SQL Object Remoting Web Services / RPC BusinessObject Web Services /XML Documents BusinessObject BusinessObject PCClients Distributing Data / Objects DataTier MiddleTier ClientTier Scalability, Reliability Too Fine Grained Data, not Objects Object Fidelity

  13. Where is the Business Logic? Data Tier, Middle Tier, Client Tier ? • Middle Tier – the standard answer • Logic all in one place • Security • Middle Tier (some in Data Tier) • + Performance • - Encapsulation • Client Tier and Middle Tier (Object mobility) • Logic still in one “place” … the business object • Business object execution space can vary • Best performance • Security is shared between the tiers

  14. Client Side Processing • How do I manage my business objects on the client? • How do I keep them in synch with the server? • Do I cache business objects on the client? • How do I handle large object graphs? • How do I operate when not connected to the server? • How do I query for objects on the client? • How do I keep my user interface in synch with my business objects? • How do I insure that any change to a business object appears in the user interface? • How do I insure that refreshed data from the object server appears in the user interface?

  15. ModelController ViewControllers SalesRep1 SalesRep3 SalesRep4 SalesRep2 BusinessObject BusinessObject BusinessObject Client View Model–View–Controller Controller Model

  16. BusinessObjectServer Databinding Database SQL Table Rows Remoting BusinessObjects Client Distributed Smart Client Architecture DataTier MiddleTier ClientTier Controller View Model

  17. Jay Traband, CTOjayt@ideablade.comwww.ideablade.com Thanks For Your Time

More Related