Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

where does the Business logic layer go?

 
krishnan raghu
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
in FBN assignment where does the Business logic layer ( the one that uses data and performs services like showAllFlights, showSearchResults, or bookFlight ) go.
I think it should be in server side. For example if bookFlight is done at client side using data methods, network delays and break may break the lock(), write() and unlock() leaving unretrievable lock on record. if it is in server side we can guarentee that methods work almost atomically.
but the assignment seems to suggest that dataclient should exactly mirror data methods, meaning that BL should be at the client side.
any advice on this, pl. ?

------------------
-krishnan
 
Steven Martin
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Definitely should be on the client side. That would also allow the greatest flexibility in future enhancements. The server should only be the database. My client confirms a order before submitting.
Originally posted by krishnan raghu:
Hi,
in FBN assignment where does the Business logic layer ( the one that uses data and performs services like showAllFlights, showSearchResults, or bookFlight ) go.
I think it should be in server side. For example if bookFlight is done at client side using data methods, network delays and break may break the lock(), write() and unlock() leaving unretrievable lock on record. if it is in server side we can guarentee that methods work almost atomically.
but the assignment seems to suggest that dataclient should exactly mirror data methods, meaning that BL should be at the client side.
any advice on this, pl. ?


 
Peter den Haan
author
Ranch Hand
Posts: 3252
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Seconded. Client side, for two reasons. First, as you note, the requirement to have a class that implements all of Data's method (i.e. implements the same interface) strongly suggests using this as the interface point between client and server. Second, it is mentioned that the database should be designed for re-use in different projects, which implies that the server should contain no application-specific code. And the Data interface is exactly what separates the general and the application-specific.
If you would want to implement the booking process on the server, while still keeping the server generic and reusable, you'd have to code a framework to install of arbitrary business logic components in the database. RMI-callable stored procedures, if you wish. But that appears to be well outside the scope of the project.
My conclusion was that a traditional fat-client two-tier approach was most appropriate.
- Peter
[This message has been edited by Peter den Haan (edited December 04, 2001).]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic