* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download IdeaBlade Company Presentation
Microsoft Jet Database Engine wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Concurrency control wikipedia , lookup
Functional Database Model wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Clusterpoint wikipedia , lookup
Relational model wikipedia , lookup
We are the dot in… .NET Distributed Smart Client Applications November 2004 Jay Traband, CTO [email protected] www.ideablade.com Glad to be here IdeaBlade Proprietary - May 22, 2017 2 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 IdeaBlade Proprietary - May 22, 2017 3 Typical 3-Tier Architecture Data Tier Middle Tier Relational Database Business Object Server IdeaBlade Proprietary - May 22, 2017 Client Tier Internet PC Clients 4 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? IdeaBlade Proprietary - May 22, 2017 5 What is a Business Object? An instance of a class with . . . Business data - “Salary” Business logic - “GarnishWages()” Business events - “SalaryChanged” Persistence Identity IdeaBlade Proprietary - May 22, 2017 6 Persistence Options Data Tier Business Model SQL Relational Database SQL Data Encapsulation Data Business Object Business Object SQL IdeaBlade Proprietary - May 22, 2017 Object Relational Mapping Business Object Business Objects 7 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 IdeaBlade Proprietary - May 22, 2017 8 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 IdeaBlade Proprietary - May 22, 2017 9 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? IdeaBlade Proprietary - May 22, 2017 10 Distributed Processing Issues Object oriented design conflicts with Scalable 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 IdeaBlade Proprietary - May 22, 2017 11 Distributing Data / Objects Data Tier Middle Tier Client Tier SQL Relational Database Web Services / RPC Business Object Business Object Business Object Web Services / XML Documents PC Clients Object Remoting IdeaBlade Proprietary - May 22, 2017 12 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 IdeaBlade Proprietary - May 22, 2017 13 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? IdeaBlade Proprietary - May 22, 2017 14 Model–View–Controller Client Model Controller Sales Sales Rep 1 Rep 3 Sales Sales Rep 2 Rep 4 View Controllers Controller Business Object Business Object Business Object Model IdeaBlade Proprietary - May 22, 2017 View 15 Distributed Smart Client Architecture Data Tier Middle Tier Client Tier Database Business Object Server Client Databinding Controller SQL Remoting Table Rows Business Objects Model IdeaBlade Proprietary - May 22, 2017 View 16 We are the dot in… .NET Thanks For Your Time Jay Traband, CTO [email protected] www.ideablade.com