Difference between Proxy pattern and Business Delegate pattern

Hi All,
Can any one please tell me what is the difference between Proxy pattern and Business Delegate pattern.
Thanks in advance.
Basak

The books they were first reported in, and the expressed intent, I guess. Arguably, the Business Delegate pattern is a special case Proxy, with more specific details about what resource is being proxied

Similar Messages

  • Difference between session facade and business delegate patterns

    Hi,
    How the session facade and business delegate patterns differ from each other, as both of them have similar and almost same forces to be addressed.
    Please address.
    Satya.

    BTW, in J2EE Core patterns :
    When the Business Delegate is udes with a Session Facade, typically there is a one-to-one relationship between the two. This one-to-one relationship exists because logic that might have been encapsulated in a Business Delegate relating to its interaction with multiple business services (creating a one-to-many relationship) will often be factored back into a Session Facade.[I/]

  • Difference between Session Facade and Business Delegate design patterns

    Can someone tell me the differences between Session Facade and Business Delegate design patterns

    1. Session Facade decouples client code from Entity beans introducing session bean as a middle layer while Business Delegate decouples client code from EJB layer ( Session beans).
    2. SF reduces network overhead while BD reduces maintenance overhead.
    3. In SF any change in Session bean would make client code change.
    While in DB client is totally separate from Session bean because BD layer insulate client from Session beans(EJB layer).
    3. In only SF scenario, Client coder has to know about EJB programming but BD pattern no EJB specialization needed.
    4.SF emphasizes on separation of Verb, Noun scenario while BD emphasizes on separation of client(presentable) and EJB layer.
    Anybody pls suggest more differences ?

  • Difference between Session Facade and Business Delegate??

    Hello,
    I am currently working on design patterns and I am confused what the difference is between the Session Facade and Business Delegate pattern. They look identical.
    What's the difference?
    Balteo.

    We implement Business Delegators (BD) as follows:
    1. The client always talks to the BD.
    2. The BD then talks to either our Session Facade, Session EJB, or Java Class, etc, etc directly.
    This allows the client end code to never change whilst allowing our BD to swap between different providers of the service we require.
    It's the good 'ole "layer of indirection" thingy.

  • Difference between impelementation rules and business logc.

    Hi all,
    Please tell me what is the exact difference between implementation rules and business logic?And more importantly when and where they should be used?
    Thanks in advance.
    Regards,
    Jayant Gupta

    Hi vasu,
    from the point of view of possible transformation there are not differences.
    The great difference is the following:
    In Update Rules routines are defined for a single field for every key filed: for example you define the single routine for 0AMOUNT for every single Characteristic that define the key (0COSTCENTER - 0COSTELEMENT - ...). For every single DataField you can define a different routine also in terms of Key fields.
    In transfer roules every routine is for every field without any kind of relation to the other fields.
    Check also this doc:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/dc43c445-0d01-0010-23a1-ca348ff5f975">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/dc43c445-0d01-0010-23a1-ca348ff5f975</a>
    Ciao.
    Riccardo.
    Message was edited by: Riccardo Venturini

  • Difference between Guided Procedures and Business Workflow?

    Hi,
    I'm new to workflows, so this question could be easy or absurd.
    Is there a difference between Guided Procedures and Business Workflows? Or is this
    the same thing with two names?
    If it is different, when do I use which of them?
    Could both use UWL?
    Thanks a lot
    greetz
    chris

    Workflow is a technology used to support business processes. You can make workflows without thinking/doing business processes. When you do business processes you will always wind up using workflow technology. All business process execution tools should by principle use a workflow engine at least SAP ones do. Not sure about others like Oracle BPEL tools for example.
    SAP tools like GP and BPM/XI use either Netweaver Java or Abap workflow embedding the technical aspects of workflow design and runtime into the Netweaver stack simplifying the business user experience as it relates to designing and running business processes. But designing and running workflows using workflow tools directly still is very muc an IT challenge.

  • Session Facade and Business Delegate Pattern

    Hi!
    The only way to use the Session Facade Pattern, is if I use EJB for Persistence.
    Is valid to do this?:
    I use Ejb for simple update, insert querys. From my business delegate I call the Session Facade Layer, and from this I invoque Entyties for persistence.
    But if I have complex querys, is correct to make PL SQL Procedures and do the following:
    From my business delegate I call to the Dao layer, and from this via JDBC I call the Procedure.
    Please explain me the best form to do this, having complex querys for reporting and simple querys for inserts/update.
    Is valid to combine the use of CMP (for simple persistence cases), BMP (for complex persistence cases), and JDBC for complex select querys with multiple result rows.
    Thanks!!

    The session facade is borrowed from the facade pattern, so you could have a facade to almost anything.
    A session facade is usually against other beans...for example if you
    (Not deployed as CMR)
    1. Address bean
    2. Phone Bean
    3. Customer bean
    as entity beans then you can build a session facade such as
    CustomerFacadeBean which will CreateReadUpdateDelete(CRUD) address and phone as well when a customer is CRUD ed.
    In your case you said you have very complex sql's so one way would be
    Business Delegate -> Session Facade -> (Bean Managed) Entity Bean -> DataAccessObject.
    If you think this is a overkill then, write a custom pattern such as DataDelegate
    DataDelegate -> (Bean Managed) Entity Bean -> DataAccessObject.
    In the above scenario you should be quite sure that the system will not evolve into a case mentioned above such as when customer is deleted a phone and address object are also thrown away.
    You said this scenario
    Business Delegate -> DAO..
    I don't think this is a good idea because, a business delegate is a proxy against business objects....and usualy in J2EE business objects are session beans. Entity and DAO objects are data objects not business ones.
    Besides if you do the above scenario you will end up wiring all the transactions, etc etc in your DAO which is not a good idea.
    Although you could use BusinesDelegates against entity beans it will lead to a misnomer.

  • Help me Developers  on sessionFacade and Business delegate

    Dear All What is the difference B/w sessionFacade and Business delegate pattern .I have gone through the tutorial.

    hi,
    quickly, interface describes (methods/functions of) Objects which implements it, while abstrat class contains 'working' methods/functions. If you have severals Objects that have the same methods/functions what all are implemented different ways, use interface. If some methods/functions do the same thing use abstract class.
    simple example:
    public interface Pet{
    public String getName();
    public String familly();
    public abstract class AbstractPetImpl implements Pet{
    private String name=null;
    public AbstractPetImpl(String name){
    this.name=name;
    public String getName(){
    return this.name;
    public class Dog extends AbstractPetImpl{
    public Dog(String name){
         super(name);
    public String familly(){
    return "I'm a dog";
    public class Cat extends AbstractPetImpl{
    public Cat(String name){
         super(name);
    public String familly(){
    return "I'm a cat";
    public class Test{
    public static void main(String args[]){
    Pet a=new Cat("Kitty");
    Pet b=new Dog("Rex");
    System.out.println(a.getName());
    System.out.println(a.familly());
    System.out.println(b.getName());
    System.out.println(b.familly());
    hope this helps.

  • Difference betweeen     Technical systems and Business systems

    Hi
    In a SLD we need to configure  technical systems and Business systems.. what is the exact difference between  Technical Systems and Business Systems..
    this question is asked an interview.. for this.. how can we explain..
    thanks
    babu

    Hi babu
    First I let u know with analogy and actual definition as below
    Any module of SAP like MM, SRM, FICO ets makes a logical system in combination according to business requirements is a business system which is actualy hosted on an  application server like ABAP AS or Java AS which is basically a technical system.
    Technical systems are application systems that are installed in system landscape (a CRM server, for example). Most systems (Web AS ABAP and Web AS Java systems) automatically report information to the SLD about the elements that they contain by using the SLD data supplier programs. You need to manually register the following types of system only:
    Standalone Java systems
    Third-party systems
    Business systems are logical senders or receivers that exchange messages by using SAP XI and that are entered in the System Landscape Directory.
    The business systems in the System Landscape Directory relate to a system landscape.
    The business systems of business partners are not entered in the System Landscape Directory. To be able to address such business partners logically, use services in the Integration Directory. A business system is a way of specifying a service in the Integration Directory more precisely (business system service).
    Reward point if it help u understand

  • Searching and Matching - Difference between 'Match Pattern' and 'Match Geometric Pattern'?

    I was wondering if someone can explain to me the difference between  'Match Pattern' and 'Match Geometric Pattern' VIs? I'm really not sure which best to use for my application. I'm trying to search/match small spherical particles in a grey video in order to track their speed (I'm doing this after subtracting two subsequent frames to get rid of background motion artifacts).
    Which should I use?
    Thank you!
    Solved!
    Go to Solution.

    Hi TKassis,
    1.You may find from this link for the difference between these two,
    Pattern Match : http://zone.ni.com/reference/en-XX/help/370281P-01/imaqvision/imaq_match_pattern_3/
    Geometric Match : http://zone.ni.com/reference/en-XX/help/370281P-01/imaqvision/imaq_match_geometric_pattern/.
    2. I always prefer match pattern because of its execution speed, and incase of geometric pattern match it took lot of time to match your result. You may find in the attached figure for same image with these two algorithm execution time.
    Sasi.
    Certified LabVIEW Associate Developer
    If you can DREAM it, You can DO it - Walt Disney

  • Business delegate pattern doubt

    Hi,
    One of the reasons for going for Business delegate pattern is because the business components is vulnerable to changes.
    Suppose if the business component has a method
    getAccountInfo( int Accountnumber)
    The business delegate pattern may have a method
    getAccountInfoFromBusiness(Accountnumber int)
    return businesscomponent.getAccountInfo(Accountnumber);
    and the presentation tier components will have code containing invoking to getAccountInfoFromBusiness method.
    Now suppose if business component method signature changes then the signature of business delegate class will also change. This turn in requires changes to presentation tier components. I really dont understand why business delegate pattern is needed.

    Hi,
    One of the reasons for going for Business delegate
    pattern is because the business components is
    vulnerable to changes.Abstraction is your first tool to reduce a projects exposure to change.
    Secondly filling you code with getter and setters is a bad idea, it's procedural not OO, Objects should express themselves.
    So instead of :
    Suppose if the business component has a method
    getAccountInfo( int Accountnumber)consider
         Account account = getAccount( AccountID accountID ) ;          // or
         Account account = findAccount( AccountName accountName ) ;
         ... AccountInfo = account.toString( FULL ) ;          // or
         ... AccountSummary = account.toString( SUMMARY ) ;     // or
         ... AccountBalance = account.balance() ;This abstracts the Account's identification, from an int, makes your code robust to change, and more flexible, and easier to understand.
    The business delegate pattern may have a methodThis is not good, the naming is particularly specific and relies on assumptions about the architecture, it looks like a a global function, yet should be a method of businesscomponent, which is also badly named.
    getAccountInfoFromBusiness(Accountnumber int)
              return businesscomponent.getAccountInfo(Accountnumber);
    }Instead consider the following. I've used abstraction to hide the implementation details, and the relations model real life, and I can handle my objects polymorphically.
         class Account { ... }
         class DayBook {
              Hashtable accounts ;
              public Account getAccount( AccountID accountID )
                   accounts.get( AccountID accountID )
         class MyApp
              DayBook salesDayBook = new DayBook() ;
              DayBook purchaseDayBook = new DayBook() ;
              Account account = salesDayBook.getAccount( theAccID ) ;
              Account account = purchaseDayBook.getAccount( theAccID ) ;
              }Here DayBook is a collection of Accounts, I've two instances, one for my sales one for my purchases.
    and the presentation tier components will have code
    containing invoking to getAccountInfoFromBusiness
    method.
    Now suppose if business component method signature
    changes then the signature of business delegate class
    will also change. This turn in requires changes to
    presentation tier components. I really dont understand
    why business delegate pattern is needed.The Business Delegate is not really a pattern as such, it is an appliction of the Proxy pattern abstracted into Business language/terminology.

  • Business Delegate Pattern?

    What is the real use of Business Delegate pattern in a J2EE architecture design?
    I know it is to decouple the Presentation and Business Logic tiers. But all I can see is it just contains one method which basically accepts data (say Value Object) from Presentation tier (in an example I am looking, it is a Command class) in a method and the method in turn just calls a Session Facade Bean from the Model tier. So, why do we need a Business Delegate class in this scenario? And what are the drawbacks of calling the Session Facade Bean directly from the Command class?
    Thanks for helping me understand it better.
    Rgds,
    Tappori

    Business delegate typically is a presentation-tier object. It serves to shield the presentation-tier from business-tier implementation details. A Business Delegate can encapsulate business services from one or many Session Facade and could also delegate processing to web services as well.
    Here are some fancy links that talk about the Business Delegate guy-
    http://forum.java.sun.com/thread.jsp?forum=425&thread=535855
    http://forum.java.sun.com/thread.jsp?forum=425&thread=548634
    http://forum.java.sun.com/thread.jsp?forum=425&thread=523520
    http://forum.java.sun.com/thread.jsp?forum=425&thread=495578
    And what are the drawbacks of calling the Session Facade Bean directly from the Command class?You tie the presenation-tier object (Command) to business-tier implementation. The Command class should not have lookup code in it and it should not know that it is calling a remote object. Say you want to replace the EJB implementation with the XYZ implementation. Would you then have to recompile all of the Command classes and/or subclasses?

  • Business Delegate pattern - need some advice

    Hi. First let me apologize for the long post. I could see no other way. I�m building a system that quite large and I need some advice. The system is a type of transaction system, let�s suppose a shopping cart. I�m using struts taglibs and tiles for presentation, struts proper for controller, and POJOs for business logic. Also I�m using OJB for my data tier.
    Now I�ve been reading Pro Jakarta Struts (Apress), which BTW is a recommended read to anyone with novice experience in struts and related technologies. I�ve assimilated most of the techniques and patterns described in the book, and most of them make sense to me. However, I�ve hit a snag while reading the Business Delegate and Service Locator patterns.
    The way I had though of building my application before reading the book, was to have a wrapper class, such as the following:
    public class ShoppingCart {
      private IAuthenticationService authenticationService;
      private ITransactionService transactionService;
      public ShoppingCart() {
         authenticationService = new DBAuthenticationService();
         authenticationService = new DBTransactionService();
      public login(String username, String password) {
         String sessionToken = authenticationService.logon(username, password);
         return sessionToken;
      private boolean isValidUser(sessionToken) {
         bolean validUser =  authenticationService.isValidUser(sessionToken);
         return validUser;
      public performTransaction(sessionToken, TransactionVO) {
         if (!isValidUser(sessionToken) {
              throw new AuthenticationException();
         transcationService.performTransaction(TransactionVO);
      public editPreferences(sessionToken, PreferencesVO) {
         if (!isValidUser(sessionToken) {
              throw new AuthenticationException();
         authenticationService.performTransaction(PreferencesVO);
    }My idea was that my wrapper class would isolate all the business logic and could perform login service in case my application was ever to be used with other presentation layer than struts (standalone client, web services). However I believe that this overlaps the Business Delegate pattern and maybe even totally implements it. The way I understand the code I�m reading in the book, they suggest having a BD for each major service such as AuthenticationServiceBD, TransactionServiceBD, etc� However this would break my single point of entry for authenticating users. I really need some advice on my design and how it fits with the BD and SL patterns (or others). I would also like to know what you think/recommend of my authentication strategy.
    thanks in advance
    Raphael

    Thanks for your reply. This however, I understood. My concern is regarding my application in regards to business delegate pattern. You see I have this class (simplified for clarity):
    public class ShoppingCart {
       private ILoginService ls = new DBLoginService();
       private ITransactionService ts = new DBTransService();
       // and so on for all services I offer.
       //  then I mirror all the calls of my private interfaces
       //  and pass them through internally
       public String sessionToken login(String username, String password) {
            ls.login(username, password);
       public boolean addToCart(sessionToken, itemNo) {
            // check session
            ts.addToCart(sessionToken, itemNo);
       //  and so on
    }Multiple questions for this one:
    1) Am I not already implementing the Business Delegate pattern with my ShoppingCart class since all interfaces are private and all calls are mirrored from the wrapper class (ShoppingCart) to the private interfaces? All services are implemented as POJOs and I am not using JNDI at the present so I don't use the ServiceLocator pattern.
    2) I store a reference to the wrapper class (ShoppingCart) in the ServletContext so I can grab it from my Action classes. What do you think of this approach?
    3) How many BDs should an application contain. In my case I use just one. What is the advantage of using more?
    4) I create my own session tokens in case I ever want to use to business code in a non-web applications where sessions are not available readily. This brings about the problem that I can't pass the interfaces directly to the Action classes because the login session needs to be checked before any calls to services. So all methods include a sessionToken parameter which I use to check the session. This way, if I want to expose some of the services through web services, I can still use a login. What do you think of this approach.
    5) Any other remarks are very welcome...
    I really need help with this from an experienced programmer. Most things I can handle on my own but with this type of design issue, books just don't cut it. I need experience. I would really apreciate some feedback.
    Raphael
    ps: I would give all my Duke dollars for this (I only have 30), but I'm not sure how. If you want them I can create a dummy question and give them to you.

  • Difference between RFC adapter and a proxy

    Can any one tell me the technical difference between RFC adapter and a proxy?
    reg

    There are advantages / disadvantages for RFC / Proxies / Idocs. So if I am in your position depending upon the requirement I will choose one. Some of the differences are:
    RFC and Proxy:
    RFC/BAPI has its own overhead of function call.
    Proxies communicate with the XI server by means of native SOAP calls over HTTP .RFC does not, so you have to convert from SOAP to RFC calls and vice versa. So XML conversion is required.
    ABAP Proxies uses Webservice and Http Protocols.
    If you use ABAP Proxy , you can reduce the overhead calling the function again and again.
    Proxy and Idoc:
    IDOC : After recieving the strucutred data It processes it using a Function Module associated with it.
    Proxy : Proxy is a structure where there is no processing function module associated. You need to explicitly write the Business Logic/Call the subroutines here
    This is my absolutely my view. Another guy has his own response. So first go through your requirements and then you can decide for what to go.
    Also go through this urls which may help you:
    /people/michal.krawczyk2/blog/2006/04/19/xi-rfc-or-abap-proxy-abap-proxies-with-attachments
    RFC VS PROXY
    /people/ravikumar.allampallam/blog/2005/08/14/choose-the-right-adapter-to-integrate-with-sap-systems
    Re: IDOC and RFC
    Re: Proxy Vs IDOC
    Thanks
    Rodrigo

  • I need to know the difference between planned SKF and Actual SKF from business view and when I can use one of them ?

    I need just to know the difference between plan SKF and Actual SKF in business example and when I use one of them.
    thanks

    Hi Salaam,
    Statistical Key Figure (SKF) is a base to allocate the cost between cost centers. Usually, common cost centers cost should allocate to respective department cost centers on monthly basis.
    Some of SKFs are: Calculating floor rent on SFT, Telephone charges on No. of units, and employees head count is with "Each" in SAP.
    Apart from Ajay's reply, you can consider the Canteen exp in an organization. Assume Admin, Fin and Mfg departments are getting food services from Canteen. Here, total monthly cost of Canteen exp should be allocated to respective departments. Here, we use SKF as total head count of each department and distribute the cost.
    Planned SKF is what you planned on the beginning of a period. (Assume head count was planned as 30 in the month beginning)
    Actual SKF is what exactly you consumed over the period. (Actual employees provided canteen services during the month is 25)
    BR, Srinivas Salpala

Maybe you are looking for

  • Effect on Change to a released request

    hi guys i created a request in DEV and transported to QA, it went fine after that i made some changes to one of the objects in the request now if i send the same request (which has been already released) to Prod will the changes transport to Prod or

  • Installing Repository for Developer Suite 10 G2: Import aborted.

    Hi, I've created a user for the repository and made all the grants. The datafiles are 1,2 Gigabytes. I select small install. Then there is an import starting, but it stops after 2 tables: ******************************* Quote ************************

  • R15-S829 Need Response Code

    So, I get a Challenge Code on my Laptop, I called Toshiba Service to get a response Code, They keep telling me that this PC doesn't support that, but I'm looking at a screen asking for the Response Code, Why?? I even told them to look up Toshiba Docu

  • Inventory doubt

    1.Any one explain abut the inventory management.I have document how to handle the inventory management but i can not understand the words opening stock,closing stock,revalutaion 2.and what is the use of No marker update when u click 3.provide step by

  • Final Cut Express? Macbook?

    Yes, I am buying a blackmacbook with 1gig of ram, and a 200gb hard drive in june! now will a black macbook run final cut express? (in like dec. ill updgrade to 2gigs of ram) but does it work? any video tests or reviews? Thanks