Distributed smart client applications november 2004
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

Distributed Smart Client Applications November 2004 PowerPoint PPT Presentation


  • 56 Views
  • Uploaded on
  • Presentation posted in: General

Distributed Smart Client Applications November 2004. Jay Traband, CTO [email protected] 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

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Distributed smart client applications november 2004

Distributed Smart Client Applications

November 2004

Jay Traband, CTO

[email protected]


Glad to be here

Glad to be here


What is a distributed smart client

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


Typical 3 tier architecture

RelationalDatabase

PCClients

BusinessObject Server

Typical 3-Tier Architecture

DataTier

MiddleTier

ClientTier

Internet


Business object persistence

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?


What is a business object

What is a Business Object?

  • An instance of a class with . . .

    • Business data - “Salary”

    • Business logic - “GarnishWages()”

    • Business events - “SalaryChanged”

    • Persistence

    • Identity


Persistence options

RelationalDatabase

SQL

SQL

DataEncapsulation

Data

BusinessObject

BusinessObject

BusinessObject

ObjectRelationalMapping

SQL

Business Objects

Persistence Options

DataTier

BusinessModel


Why object relational mapping

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


Enterprise class orm

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


Business object mobility

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?


Distributed processing issues

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


Distributing data objects

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


Where is the business logic

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


Client side processing

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?


Model view controller

ModelController

ViewControllers

SalesRep1

SalesRep3

SalesRep4

SalesRep2

BusinessObject

BusinessObject

BusinessObject

Client

View

Model–View–Controller

Controller

Model


Distributed smart client architecture

BusinessObjectServer

Databinding

Database

SQL

Table Rows

Remoting

BusinessObjects

Client

Distributed Smart Client Architecture

DataTier

MiddleTier

ClientTier

Controller

View

Model


Jay traband cto jayt@ideablade com www ideablade com

Jay Traband, [email protected]

Thanks For Your Time


  • Login