Business Logic with EJB

Hi all!
I googled EJB:
Enterprise Java Beans. A standard distributed component model. The encapsulation of business logic into business objects is the most recent focus of the information Technology industry. Objectified business logic. Server components that adddress critical business functions.
I also found this:
Isolate business logic from connectivity issues, especially
connections with databases including transaction management
and security.
Meaning? What is business logic? Practically I mean...

Just don't throw your business logic (what should the program do from a user standpoint) in the same object as the technical logic (what is the programm doing in addition to implement the business logic, like storing data, loading data, converting data, etc.).

Similar Messages

  • Future support for using PL/SQL core business logic with ADF BC

    We want to migrate our large Forms client/server (6i) application to ADF, possibly using a migration tool like Ciphersoft Exodus.
    One scenario could be to use ADF BC and ADF-Faces or a different JSF-Implementation for presentation and business layer but keep our heavy PL/SQL-businesslogic inside the Oracle database in packages, triggers, functions and procedures.
    This scenario could be chosen due to the huge amount of interconnected logic inside the database (10 years of development; no technical components; any package may access any table and more of this kind of dependencies). The business logic nowadays held in Forms client will be moved mainly into the database as a prerequisite to this scenario.
    Choosing this "keep-logic-in-DB"-scenario we need a good support by ADF BC to do so. We know and prototyped that it is possible to call some PL/SQL via JDBC from ADF BC and it is possible to use stored procedure calls for standard business entity data access (ins, del, upd, ..). But this does not solve our problems. We want to reuse core business logic coded in PL/SQL. This is much more than change the ADF standard behavior for an update with an own PL/SQL-call.
    Now my question:
    Will there be a kind of sophisticated support to use ADF BC in combination with database-kept logic?
    If so, when will this happen and how will the common problems of transactional state inside the database and inside the ADF BC be solved? Any plans or ideas yet?
    Many other clients do have similar applications built in Forms and PL/SQL and would be glad to hear about a path of direction.
    I've read the technical article 'understanding the ADF BC state management feature' which you have contributed to. One current limitation is pointed out there: Using PL/SQL with ADF BC limits ADF AM pooling to 'restricted level' which reduces scalability.
    Are you aware of additional main problems/tasks to solve when using PL/SQL heavily with ADF BC, which we have to think about?
    Thank you for any response.
    Ingmar

    My main problem is two 'concurrent' areas holding state in an application system based on DB-stored PL/SQL-logic in combination with ADF BC.
    For a new System everything can be made ok:
    Sure, it is possible to build a new system with the business logic included in ADF BC only. All long-living state will be handled in the BC layer ( including support for UnitsOfWork longer than the webside short HTTP-requests and HTTP-sessions and longer than the database transactions.
    For an old system these problems arise:
    1. DB data changes not reflected in BC layer:
    Our PL/SQL-logic changes data in tables without notifying the ADF BC layer (and its cache). To keep the data in ADF BC entity objects identical to the changed database content a synchronization is needed. BC does not know which part of the application data has been changed because it has not initiated the changes through its entity objects. Therefore a full refresh is needed. In a Forms4GL environment the behavior is similar: We do frequently requeries of all relevant (base)tables after calling database stored logic to be sure to get the changed data to display and to operate on it.
    -> Reengineering of the PL/SQL-logic to make the ADF BC layer aware of the changes is a big effort (notifying BC about any change)
    2. longer living database transactions
    Our PL/SQL-logic in some areas makes use of lengthy database transactions. The technical DB-transaction is similar to the UnitOfWork. If we call this existing logic from ADF BC, database state is produced which will not be DB-committed in the same cycle.
    This reduces scalability of ADF BC AM pooling.
    Example:
    a) Call a DB-stored logic to check if some business data is consistent and prepare some data for versioning. This starts a DB-transaction but does not commit it.
    b) Control is handed back to the user interface. Successful result of step a) is displayed
    c) User now executes the versioning operation
    d) Call another DB-stored logic to execute the versioning. DB-transaction is still open
    e) Business layer commits the transaction automatically after successful finishing step d). Otherwise everything from a) to e) is rolled back.
    -> redesign of this behavior (= cutting the 1to1 relation between LogicalUnitOfWork and the technicalDatabaseTransaction is a big effort due to the big amount of code.

  • Error creating business service with EJB transport on Unix

    I have ALSB 3.0 installed on a Unix system and I am unable to create a business service based on the EJB transport. After I associate the client jar to the business service, ALSB recognizes the home and remote interfaces in the jar file but as soon as I click the Next button I see the following error:
    An expected exception occurred during the creation or update of this service: null
    If I install ALSB 3.0 on Windows then I am able to create the identical EJB based business service that fails on Unix.
    Has anyone been able to create an EJB based business service on Unix or is this a known issue with ALSB 3.0?
    Thanks for any help!

    Hi irgendwo,
    user profile server must be required when you need the to enable the People Search feature. and this pre-request.
    you can confg search  but you can used because there are many service which are depeded to each other
    check the link for depended services
    http://technet.microsoft.com/en-us/library/ee662538%28v=office.15%29.aspx
    Please verify all the depended service as well which is required in serach service...
    see the below link from MSDN about serch service application ..
    http://blog.ciaops.com/2012/12/search-service-on-foundation-2013.html
    http://blog.ciaops.com/2012/12/search-service-on-foundation-2013.html
    Please mark the Answe and vote me if it will you while search configuration

  • Expert's advise: share EJB components and business logic

    Hi all,
    I've a J2EE applicacion and I want to know if is posible share my ejb business logic with other components in other enviroments and differents programming languages.
    for example, I show you my scenario...
    I've a J2EE application that will be run in a WebSphere server (running over windows) for my JSP cliente side(you know... the web browser), all is ok!!! but my application need also receive request from remote clients (components from other business applications) that may be compiled in .net (over windows) or c++ (over AS400 or linux) and send the response to the respective client.
    well...
    my question is if is posible, which can be the protocols or java technologies that i will need to use for implements some like this.
    thanks for your answer...

    Web services is one possibility.

  • Data dinding to non JFX objects - bind to business logic

    Hi,
    I want to seperate my underlying model clearly from JavaFX. This obviously means, that my model is plain Java. So I tried to bind the selected-value of a checkbox to a boolean value of a field of one of my Java classes. Unfortunately this does not work. Is this true? Is a binding only possible to variables which are defined inside a .fx file?
    And as another question, do you know a good tutorial concerning the usage of existing business logic with JavaFX?

    Hi raltlan,
    You says: you can't bind directly to Java classes.
    I didn't understand exactly, what you mean.
    I'm developing an application, that confirms to MVC pattern.
    It seems, it's well possible to keep data and presentation layers separated, even with JFX SDK ver. 1.0
    As far as I understood:
    You can bind to any Java classes.
    Here, better if we distinguish between Java's UI and non-UI related classes.
    Using UI-related Java APIs needs a little bit more coding (there are good samples available about how to do it.)
    Binding to instances of non UI-related Java classes is easy. See Blog of Michael Heinrich at following links about JFX – Java interaction:
    http://blogs.sun.com/michaelheinrichs/entry/writing_java_for_javafx_part (Writing Java code for JavaFX Script)
    ... and for other direction of interaction:
    http://blogs.sun.com/michaelheinrichs/entry/using_javafx_objects_in_java
    Taking care about direction of Java - JFX interaction is helpful to avoid problems (and unnecessary loose of time).
    As already known, it's better to embed Java code into JFX code (JFX code calls Java code).
    Regards,
    Asghar

  • BPEL Process with complex Business logic

    Hi,
    So far my knowledge,complex business logic can be implemented by different way in bpel process.
    1. Business rule
    2. ejb with java callout
    3.ADF BC as servcie
    Can anybody please suggest which approach do I need to follow,what are the pros and cons of each one,and best practices to use when and where?
    Thanx in advance.-Aswini

    Hi
    In addition to what Naresh already mentioned, you can consider these points also.
    1. If your process is complex, see if some part of the process can be common across and it can run by itself. Then you can use SubProcess concepts also. Say for example, if process involves credit card processing, it can be in a sub-process and you can call it in the main process. Like that any common approval flows can be put in a separate sub-process.
    2. I would discourage using Java invocations if possible as they have some limitations and you can use reasonable amout of code in invoking java code within the bpel process. If you have lots of validations to do on a bpel process, you can consider using CallBackHandlers and do the validation on a task assignment, submission or any task action in general.
    3. Business Rules can be used to control the actual flow of the process itself. Based on busiiness rule, you can decide if a set of tasks needs to be included or not in the approval flow. This is in addtion to the actual data that controls the business rules, that can be changed dynamically without the code change to core bpel process.
    Which version of SOA are you using or plan to use. I would recommend the latest version SOA 11.5 + Feature Pack applied.

  • How can I use JTA in my business logic and execute process with PAPI?

    HI All,
    How can I use JTA in my business logic and execute process with PAPI?
    When my business logic has exception, the process will rollback.
    or the process has some exceptions, my business logic also will rollback.
    I don't know how to do it.
    Does anyone know how to do it?

    Thank you for your reply, Daniel.
    But I think I did not express my mind clearly.
    There is a scene that I have 2 Application Server.
    My business code is deployed in one Server.
    The BPM is deployed in another Server.
    I want to execute Task use PAPI.(ProcessServiceSession.runActivity)
    In my business code, I will do something before execute Task.
    I need my business logic and Task in same transaction.
    To ensure them "all-or-nothing" .
    As you say, if The transactions are managed by Oracle BPM.
    then can I retrieve OBPM transcaction in my business code?

  • Business Logic Editor with Complex Transasctions

    I'm starting to have some serious problems using the Business Logic Editor with reasonably large (but by no means huge) transactions. These transactions also have nested transaction calls down a few layers. The main symptoms are:
    1)  When opening the Link Editor on the first action it is somewhat sluggish. Opening the Link Editor on the last action can take over 60 seconds.
    2)  If adding a new Transaction Call action, selecting the called transaction in the Configure window doesn't work. The transaction can be selected OK, but the browse window will not close. It has to be cancelled. The Link Editor does not show the transaction's input, even though the Configure window will now show the selected transaction's path OK.
    3)  If the transaction is Saved after 2), that transaction will not open again in the Logic Editor, even after a reboot.
    Memory seems to be part of the formula. The above is on a notebook with 1Gb of RAM. On a dual core with 2 Gb, the problems are less, but not much. On a server with 8Gb, the symptoms disappear.
    Does anyone know if there is a recommended minimum system config for using the Logic Editor?
    What is actually happening when a transaction with nested Transaction Call actions is loaded in the Editor and for exection? I have many transactions that don't have the above problems, but they take a long time to open in the Logic Editor, and up to 1.5 seconds to load when executing the transaction (this is as per the F5 timings).
    Thanks,
    Bill

    Rick,
    These days I'm very careful about large embedded reference docs in my transactions. I actually go through the .trx files with notebook looking for any large chunks of that sort of XML and make sure they are eliminated.
    In the case of this transaction, by the time I get to the actual SQL query action (and remember it's a few layers of nested transaction calls down), it can't run the query anyway. The Query Template name in the configure window is blank. That and any params are set dynamically in Links at run time (the Query Template name actually comes from a config file). If I try Limit Rowcount or Yes when I close the configure window, it just gives an error because it has no idea what query template to run.
    Given this, the problem just doesn't seem related to fetching data. And how would this cause the Links window to take so long to open in the Logic Editor?
    Bill

  • Problem with Business Logic Services Logic Editor

    Hi,
    I am trying to go to Logic Editor under Business Logic Services. I'm getting error that "Unable to launch xMII"
    Is there any java related problem in my machine?
    Regards,
    Amalesh

    Amalesh,
    What version of xMII are you using 12.0 by chance.  If so goto the Java Web Start -> File -> Preferences -> and set your proxy to "None".  I would not recommend reinstalling Java as this will not solve your problem and if you are on xMII 12.0, the recommended version is 1.4.2_13 as a minimum.
    Regards,
    Erik

  • Problem in creating a callable object of type Business Logic

    Hi SDN,
    I am trying to create a callable object of type Business Logic in CE.
    When I give all information and click Next, I get this error message.
    Error while loading configuration dialog: Failed to create delegate for component com.sap.caf.eu.gp.ui.co.CExpConfig. (Hint: Is the corresponding DC deployed correctly? Does the DC contain the component?)
    Can anybody help me out with this problem.
    Regards,
    Sumangala

    Hi.
    I'm having the same problem as Senthil in NW2004s SP15 with my application service and methods not showing up in the Callable Object wizard for Composite Application Services after I choose the Endpoint.  The only application name that shows up in the wizard is caf.tc, and the only service names that show up for it are LDDataAccessor, Metadata, and PropPermissionService.
    My IDE is on one machine and the application server I deploy to is located on a different machine.  My endpoint to the remote application server looks to be correctly configured.  The Composite Application Service seems to be deployed properly as I'm able to see it and test that it works in the Web Services Navigator <http://remotehost:50000/wsnavigator/>
    My deployed application service is a remote enabled service and is also web services enabled as well.
    I'm not sure if this is relevant, but I noticed that the generated Java code does not create any remote EJB interfaces (only home and local interfaces were generated).
    Something else I noticed is that when I proceed to the External Service Configuration -> Business Entities screen <http://remotehost:50000/webdynpro/dispatcher/sap.com/cafUIconfiguration>, I only see three business entities displayed, and the following error message is displayed: "Corrupt metadata has been detected. This may prevent some objects from being displayed. Check the server log for more details."  I was unable to find anything in the instance log files.  Is the error message indicative of the problem?
    I am developing locally without a NetWeaver Development Infrastructure (NWDI) in place.
    I'm wondering if the credentials specified in the endpoint require any special roles or privileges.
    Senthil, do any of these additional descriptions apply to you as well?
    Edited by: Ric Leeds on Jun 20, 2008 4:37 PM

  • The best way to implement business logic to a .JSP ?

    Hi experts,
    I want to implement some business logic to a .JSP file wich is in my modified
    <b>com.xxxNew.portal.usermanagement.admin.pa</b>r file!
    For examle creating different roles for useres by registration dependently what they inseret in the registration.jsp!
    What is the best way to do this? I have tried out to create a stateless session bean for this. Is this the right way?
    Can someone give me information how can I access this bean from my JSP (.par file) and how can I upload it to the portal?

    Hi,
    Here is the document about Calling J2EE Applications from Portal Applications:
    http://help.sap.com/saphelp_nw70/helpdata/en/42/9ddf20bb211d72e10000000a1553f6/frameset.htm
    So in your JSP do the lookup of your EJB.
    I do not think using EJB at this level is really good, as you do not deal with DB, security and transactions in your code.
    http://www.jguru.com/faq/view.jsp?EID=126400
    Why not just use a portal component like JSPDynpage for this purpose?
    Greetings,
    Praveen Gudapati

  • Business logic in PL/SQL?

    Hello,
    I am designing a 3-tier, web-based intranet application for my client. It's going to be a WebSphere portal app with Struts, running on Oracle 8.1.7.
    One of the requirements is to implement the business logic in the back-end (PL/SQL), not in Java (although that is what I'm used to do). The reason probably has something to do with fear of performance issues ("the more code runs in Oracle, the faster") and resource planning ("more people here know Oracle better than Java").
    This unusual (?) choice in my humble opinion leaves me with two major issues; how to cache database results and how to perform the O/R mapping.
    I know how to use CallableStatements and JDBC, but I'd really like to avoid such a solution now we have EJB 2.1 and Hibernate and everything. And without caching as done by any sensible app server I fear performance issues.
    Does anyone know a tool that can perhaps generate Java code and performs the O/R mapping? Or a tool that avoids me having to implement up to a hundred (!) CallableStatements and ResultSet-To-JavaBean mappings. I've seen Apache's commons-dbutils that seems to do this.
    Does anyone have experience implementing business logic in PL/SQL and calling procedures from Java? Is performance really an issue here?
    Thanks in advance for any input,
    regards,
    Bram Rooijmans

    This unusual (?) choice in my humble opinion leaves me
    with two major issues; In non-trivial applications excluding all business logic from the database is usually an architecture or design bug. Businesses do use the database directly due to legacy, tools, comfort level, etc. And in those cases the data still needs to be consistent. Not to mention that for some business logic the database can be orders of magnitude faster in running it versus external logic.
    On the other hand I would consider it a bug as well if someone told me that all the business logic must be in the database and no where else. (At the very least I would suspect and question their definition of business logic in that case.)
    I know how to use CallableStatements and JDBC, but I'd really like to avoid such a solution now...How are you going to implement any non-trivial business logic in oracle without using stored procs?
    Does anyone have experience implementing business logic in PL/SQL and
    calling procedures from Java? Not sure of the question. Certainly I have implemented business logic in PL/SQL. And many people have used stored procs via java.
    Is performance really an issue here?No idea. That is a dependency of your system, not of java/databases in general.
    I have seen java only solutions that even with scalling take hours to do operations that could be done in much less time using the database itself.
    I have seen requirements which would have taken hours even in the database and changing the requirements meant it took less than 2 minutes. (It had nothing to do with java nor the database.)
    I have seen code implementations which took significant database processing time where the entire solution could have been done without the database at all.
    I have seen solutions where, due to business requirements, the same business logic was implemented in different languages and in slightly different ways in each. Implementing the logic in stored procs meant that all of the systems that used it now would be using the same rules. In that case it is possible that the solution was actually slower. But if it was it was not noticed and the consistency was much more important.

  • Seperate business logic from application logic

    Hi guys,
    I am looking for a good article explaining the princiaples of seperating between Business Logic & Integartion logic.
    The articale will be used to exlplain the prinicples SAP PI is based on when it comes to integration between 3rd party systems (Non -SAP) missign the application layer and buisness logic.
    If any one has a link to an article as such.
    Will be most appriciated.
    Regards.
    Nimrod Gisis

    It seems that the general rule to making a GUI
    application is to seperate the "Business Logic" from
    the "Presentation Logic". This is absolutely true.
    From this, I'm guessing I'll
    need to package all my GUI stuff together, and all the
    business logic layer stuff together.If you mean the package names and structure then I would had adapted this structure:
    1. I will have a package under which I will put the application common classes and interfaces.
    com.myapp.common.eventhandler.EventHandler (interface)
    com.myapp.common.eventhandler.AbstractEventHandler (default implementation)
    com.myapp.common.form.Form (interface)
    com.myapp.common.form.AbstractForm (default implementation)2. Create for each subject area its own package:
    com.myapp.product.AddNewProductForm
    com.myapp.product.AddNewProdcutEventHandler
    com.myapp.sales.PriceListEeventHandler
    com.myapp.sales.PriceListEeventHandler
    The GUI will then talk to the Biz lay through an
    interface right?As I illustrated through my previous example, you should have common interfaces and you might need to create Abstract classes that encapsulates the common implementation for these interfaces, then for each GUI Form or Web Page you will create its specific implementation class which inherits from the abstract class.
    Finally if you were asking about the deployment packaging:
    1. Create for each EJB its own jar file then bundle these Jar files under one module jar file, which represents the EJB module.
    2.Package the web application (JSP, Servlets, HTML, Images, CSS, and Java script) in one Web module WAR file.
    3. Package your client application module in its own jar file.
    4. Assemble the EJB module Jar, Web module War, and Client module Jar in one J2EE package which will be an EAR file so that your whole package will be assembled in one EAR file at the end.
    Try the "Application Assembly Tool" which comes with WebSphere. It will organize your application and facilitate this kind of integration.
    - Sherif.

  • Separating presentation from business logic.

    I recently wrote an article on how to separate JSP presentation from the business logic without a complicated framework.
    http://labs.revision10.com/?p=16
    I haven't seen this exact approach taken before, but believe it works fairly well for most simple web applications. Applications which tend to attract many developers to PHP do to its simple architecture.
    What are your thoughts on this approach?
    Thanks!

    Here goes the answers to your question. (according to my knowledge)
    1. Deciding a server is depends on your design of the application. According to point 3, you are better to use JMS with publish and subscribe model. In this case you have to choose a JMS server that supports your needs
    2. Again it is depends on your Design, one way is to put a shared memory for data and write a thread that reads from the shared memory or use java.net package or use JMS etc.
    3. Create one JMS source and all other will be JMS destinations.
    4. You can use EJBs or Java classes based on your requirements and design to process the data.
    5. Using AWT or Swing as a presentatin layer is good. But you desperately want to display it using Win 32 objects, then why dont to go for Microsoft technologies??

  • Can Write Full business logic in web Dynpro ?

    Hi All
           We are developing many Iviews with WebDynpro and
           same time where we need to write the pure business logic ?
           Can we write in Web Dynpro ? Any issues on this ?
    Any one can help me on this pl
    regards
    rakesh

    At a purely technical level, then you can of course write business login in Web Dynpro - after all, it is still just Java (or ABAP). The real question here is whether that is a good idea.
    I think that Web Dynpro works best as a presentation and application-flow framework - actual business logic is best implemented in another layer. This can be done in EJBs in Java, but in most SAP landscapes my experience is that the business logic layer is best implemented in ABAP, since the ABAP back-end is most naturally the place where all business logic exists. Of course, if you only have Java developers and you are using Java Web Dynpro, then an EJB-based business logic layer may be more comfortable to implement.
    Hope this helps,
    Darren
    <a href="http://www.fortybeans.com/">blog</a>

Maybe you are looking for

  • How to decide no.Technical and Business Systems required for any senario

    Hi XI experts      I am very new to XI but it is very interesting ....      To develop any scenario how to decide Technical systems and Business      Systems...      For any scenario but how to decide the systems howmany to create ?      I had a scen

  • PU19 Form Problem Caused By Diff between 470 & ECC 6.0

    In 470 when you you generated the SUI Wage Reporting form/report it came out in a regular report format generated by an ABAP Write statement.  This version was easy to save as a TXT file and then use EXCEL to read the TXT file and massage it.  In ECC

  • How to make cube retrieval faster

    Hello, I have an ASO cube with 12 dimensions. Only one of these dimensions is large (60K members) but there is a fair amount of data being loaded (5M). All of the dimensions are stored, with "scenario" being label-only. When using the Spreadsheet add

  • Erro when deployed to anhother server

    Hi All, We have a Application which was working fine in our local server and when we deployed the same on another servre it was not working as we are giving the same credentials which we gave in our local server as we are using file based authenticat

  • User exit for MFBF

    Hi all,      I want to change the value of quantity field using exit EXIT_SAPLBARM_002 of XMRM0001 but values are not getting updated. is this the right exit or there exists any other exits pls let me know thanks