Which Web Client Framework? BC4J-JSP, UIX-JSP, UIX-XML, etc

Trying to determine which, if any of the JDeveloper frameworks, to use for do web browser (HTML) clients.
What are the pros/cons of BC4J-JSP, UIX-JSP, UIX-XML, etc?
What are some common things you might rule out using one or more of the frameworks?
I plan to be using BC4J, updating, inserting data (currently MS-SQL) and the apps will run on WebLogic 7 or Caucho Resin (webapps no EJB) in a cluster. I would like to be as RAD as possible and still be able to do what I need to do. One main concern is being able to add custom HTML/JavaScript for things like client side validation. I didn't see a way to do this when doing BC4J-JSP. Is that right?
If I define any validation in the BC4J, will UIX utilized any of this to define a JavaScript validator or must it be redudantly defined?
One other concern is what the framework requires in terms of architecture, like do I have to have sticky sessions in my web cluster or can it work fine stateless or stateful?
For UIX-XML, how is this architected for performance? Specifically, is the XML effectively compiled and converted into something more efficient and performant or does it do XML parsing all the time? Is there any significant performance differences between the frameworks?
Is there any significant difference in dealing with security? Anything in the framework to make it easier to handle certain users being able to see/edit different set of data?
I have things like some groups can edit only certain entities (product info but not pricing), others only certain types of products (possibly subclass entities) and others situations where what fields than can edit varies. Obviously I can handle this programmatically, but I was wondering what the frameworks had to offer, especially in terms of having different views of the same data.
Steve

...I am little confused then about how BC4J works and what is meant by "session" here.
When you talk about appmodules in the plural, does this mean that there are potentially multiple instances of the same data on a single server or there is a common datastore with pending data and client specific stuff varying?
The common datastore is the database. Each client (momentarily, during the span of their request) uses an instance of an application module from the pool. The pool can grow and shrink with load on your system and all of the various tuning parameters. Our doc on the AM Pool covers all the parameter settings and their users.
What kind of "session" is this?
It is an abstract notion of a session for a user. The implementation used for Web clients uses the HTTP Session Key as the session key. However, we have other session implementations (and you can provide your own to do custom stuff for more sophisticated needs). We don't store anything else in the HTTP Session to the best of my knowledge. This way in a cluster, the web container doesn't have to waste time propagating all of your serialized HTTP Session state among cluster members. This session key also include an id for the application module and together those provide the key to store your pending state in the database for the "Stateful == Managed State" feature.
I assume that if I have a cluster which doesn't use session-to-same-server-affinity but uses JDBC for http-session persistance or distributed in-memory http-sessions then I cannot use stateful BC4J even though I can use http-sessions.
You can use BC4J in this way because the browser will send a cookie that contains the key to your database-stored pending state. In this way, we work great in a server farm for failover and/or scalability reasons.
Even if I use stateless BC4J, are there issues with round-robin'ng all requests to different servers in a cluster?
As I said, both our Stateless and Stateful features are designed to be used in Server farms, no problem.
BTW I wouldn't necessarily say you picked the wrongs terms for the modes, but I know what you mean. There's problems with these terms. I am trying to explain to my mgrs/engineers that there is some state in stateless transactions - that simply making everything "stateless" doesn't mean don't lose anything in a disastrous failure. I am arguing to get support for sessions in our cluster, that the performance gain and simplified development is worth it as long as you put intelligent limits on what you store in the session. Right now, they are insisting on randomly sending requests into two entirely different data centers, with two different clusters.
Amen. I have seen too many developers make the mistake of trying to be totally stateless, only to completely complicate their development environment with having to peristent partially-completed transaction data to the database. I've seen this done with sets of "Shadow" tables (yuck!) or using hand-written techniques similar to what BC4J provides a robust implementation of in the box.
We've tuned our "Stateless With Affinity for Server Farms" model over several releases of carefully studying the performance of the Web apps built by our internal Oracle Applications teams using BC4J (over 20 of them now, and growing!) so compared with a hand-written strategy for your web-tier state management, using BC4J's implementation will be much more productive for you.
We're tuning and tweaking and enhancing it even more for the 9.0.3 release as new needs are highlighted with continued use by our customers (both Oracle internal and external).

Similar Messages

  • Which is the BEST Java Web Service Framework to use?

    Hi all,
    I'm a beginner to Web Services.
    I am planning to implement java web services to make the communication between java(Tomcat Server) and C# client.
    I found list of web service frameworks like,
    1. Apache Axis,(POJO,Axiom)
    2. JSON-RPC,
    3. Java Web Services Development Pack ,
    4. Web Services Invocation Framework,
    5. Xfire,
    6. XML Interface for Network Services. ...
    Please do reply me that which web service framework will be efficient to use.

    But, I want to know which Framework will provide
    better performance?
    better than what?
    Also I want to develope the web service as a standard
    one andeach has it's own quircks and implementation details. Each should be able to generate and accept the same SOAP messages though if you implement them properly.
    It should be able to provide bulk data exchange.
    That will depend in large part on your hardware.
    Please suggest a web service framework
    (Java-based) which will give better performance.again, better than what?
    Better than messenger pidgeons?
    Better than swallows (European or African)?
    And if so, how heavy would the message capsule be? 2 swallows may be able to carry a coconut together, holding it on a piece of string.

  • S_DEVELOP authorization needed for CRM Web Client in SAP CRM 7.0?

    We implemented an own WebUI component in SAP CRM 2007 and use it in others components (with USAGE).
    After we transport the component in SAP CRM 7.0 we always got an error CX_BSP_DLC_CONFIG_GENERAL_ERR at loading the component. But if we set the permission to SAP_ALL all thing work fine.
    In SAP Note Nr. 1367944 we read:
    "It is not possible to run the CRM Web Client without the S_DEVELOP, activity=03
    authorization because it is needed by the Web Client Framework.
    The S_DEVELOP authorizatin is part of the SAP_CRM_UIU_FRAMEWORK PFCG role, which must
    be assigned to every user."
    "This dependency has been removed in CRM 7.0."
    Do we need to install some other SAP Notes at SAP CRM 7.0?
    Many thanks for advices!
    Handri Gunawan

    Hi Handri,
    I asked my collegue here, who created the note.
    The note is correct, in CRM 7.0 you do not need S_DEVELOP anymomre.
    The error that you have might occur because of another reason.
    Could you track the call stack of this exception?
    And send me back the call stack?
    Regards,
    Steve

  • Project not able to Import/Export (xml) in P6 8.3 web client

    In P6 8.3 web client, i am trying to export project (xml) but when i select project and click assign i am getting "Unidentified" project ID and "Unidentified" project name.
    Even if i export..it get exported with 0 KB data.
    If i try to import project (xml) once i select file, i am getting erroe as "error occured please try again to import".
    Please help.

    you might want to post your question in some Weblogic server forum to get a quicker answer.
    Best thing would be to check a relevant forum or just post it in the [WLS-General forum|http://forums.oracle.com/forums/forum.jspa?forumID=570].
    thanks
    AMN

  • JDev9i: BC4J JSP or UIX JSP?

    Hi,
    To develop a large JSP application, I read the document to
    decide which one to use BC4J JSP or UIX JSP? but still not sure
    which one to start. Any command from experienced JSP developer
    would be a great help for me. Thanks.

    Hello,
    Did you look at the section titled "Which Technology Should I
    Use?" in the JDeveloper online documentation? It gives a fairly
    decent idea on what you can do with the various pieces if
    technology that form a part of the UIX framework. Given that you
    are planning on building a huge application I am assuming that
    you would be interested in a consistent look and feel across the
    different pages of your application. UIX lends itself very well
    to build such applications very easily. On the other hand if you
    wanted to use JSPs, you could still use the UIX JSP tags which
    provide JSP tags which are wrappers for the underlying UIX
    elements. However, the UIX elements are much richer in terms of
    functionality (attributes, etc.)
    Hope this helps,
    -Kishore
    JDev Team

  • What to use for web tier? JSP vs. UIX vs. uiXML

    Hi all,
    I am looking at the various options for rapid development using JDev. The target application is a standard web based app accessing an Oracle DB. It looks like BC4J is the way to go for the business & persistence layers. My question now is what should I use for the front-end? I am keen to start with a wizard of some sort and drop to code level (of whatever type) when required. But for starters I can see at least 4 options:
    - JSP for BC4J
    - Strut-Based JSP for BC4J
    - UIX JSP for BC4J
    - uiXML for BC4J
    All seem to generate (1st pass) something useful and appear to have a multitude of other virtues. But I'm sure some are better than others...Can anyone give some clear advice on these choices?
    Cheers.
    Anton.

    The ToyStore application seems "clearly" MVC architected, but it is unclear how much of that is accomplished via Wizards or other JDeveloper 'supporting technologies'The MVC comes automatically by using Struts. So this has nothing to do with wizards.
    ....or if the bulk of the application is hand-coded, and then packaged into Jdev projects etc. For example, are the JSP pages written from a Wizard skeleton, or from scratch? How about the struts-config.xml and struts action classes?I think ToyStore has large handcoded Parts. The wizard generated JSP skeleton does not really help you (except I you like to save to work of adding the "body" tag ;-) ). Same with struts-config and struts action classes. If your Application is a bit more complicated than a very simple "Show Data / Edit-Data - Application you will find you quickly writing your own actions / JSPs and so on. BTW: I do not think that this is really difficult..., once you have understood how.
    The implication is that BC4J Wizards and Struts Wizards (Struts or "Struts based JSP for Business Components") are useful starting points, but we are at a loss about how to combine them effectively.Use the to understand the concept, but do not rely on them.
    Is the primary utility of JDeveloper in BC4J Wizards?Some Wizards are really good and necessary (the simpler ones) and some are nice to give you some hints. JDeveloper will not write your application for you (and will not free you from reading a lot of documentation).
    Frank Brandstetter

  • Search/Query Form bc4j-uix-jsp

    Hi:
    Are there any samples of Search/Query jsps using
    bc4j -uix jsps?
    There are some on OTN using html.
    I want to set up a search page that users can select one or more(AND) from about 5 attributes
    of a view and then display approx 6-8 different attributes of that same view.
    Any input would be appreciated.
    Thanks.

    Once you create the Query-by-Form datawebbean, you can modify the templates in the templates\webapp directory by changing all usages of the FindForm bean to use your new DWB. You can also create a new webapp template by copying the existing file and creating a new directory. You can add you new template by modifying the templates\apptemplates.xml. The current entries are:
    <?xml version="1.0"?>
    <APPTEMPLATES>
    <TEMPLATE NAME="default" DIRECTORY="templates/webapp/" USETHEMESELECTION="YES">
    </TEMPLATE>
    <TEMPLATE NAME="Oracle" USEFORMSELECTION="NO" DIRECTORY="templates/cabowebapp/" THEMEDIR="/webapp/jsimages" THEMECSS="/webapp/cabo/images/cabo_styles.css" USETHEMESELECTION="NO" TOOLBARCLASS="oracle.jbo.html.databeans.JSNavigatorBar">
    </TEMPLATE>
    </APPTEMPLATES>

  • UIX-JSP vs. BC4J-JSP wizard based question

    In BC4J-UIX wizard based forms there exists a button to Insert new rows. In the UIX-JSP wizard based forms there is not. Is this an option I overlooked somewhere or does this need to be hand coded? Detailed instructions on how to implemnt the Insert row capability in UIX-JSP are appreciated.
    Ed.

    In BC4J-UIX wizard based forms there exists a button to Insert new rows. In the UIX-JSP wizard based forms there is not. Is this an option I overlooked somewhere or does this need to be hand coded? Detailed instructions on how to implemnt the Insert row capability in UIX-JSP are appreciated.
    Ed. Ed -
    I'm a bit confused by your reference to the BC4J-UIX and UIX-JSP wizards. There is a 'new' link in wizard-generated
    BC4J JSPs and a 'Create' button in wizard-generated UIX JSP browse/edit forms. Is this what you mean?
    Regards,
    Lynn
    Java Tools Team

  • HTML Rendering works on UIX-JSP but not UIX-XML or BC4J-JSP

    I built a "custom" renderer following the HOW TO document for HTML rendering. I made a "Drop Down" list that works in a test UIX-JSP application. When I try to attach the DynamicListInputField class to a project created under UIX-XML or BC4-JSP the rendereing does not take affect. No errors, the application runs fine, just no rendereing.
    I made all three projects from the same VO's and the same DynamicListInputField.java. The three projects were Wizard Based and created with:
    "Business Componets UIX XML Application" from the UIX XML Category
    "Business Componets JSP Application" from the UIX JSP Category
    "Business Componets JSP Application" from the BC4J JSP Category
    What is wrong?
    TIA,
    Ed.

    What error you are getting...please provide error details.
    It is working fine for me.
    Rgds
    Bala Murali

  • How to use ShowValue within a UIX/JSP page to display an active link?

    I am storing URL's in the DB and want to display them as active links on a UIX/JSP page. I thought that I had this working some time ago, but now it no longer works.
    Using <bc4juix:RenderValue datasource="ds1" dataitem="myTextField" /> will display "http://www.otn.oracle.com" as an inactive link using UIX/XML which is expected.
    Using <jbo:ShowValue datasource="ds1" dataitem="myTextField" /> will display an active link using if using BC4J/JSP, which is expected.
    However, I have not been able to do this using a UIX/JSP page.
    Is it possible to use ShowValue within a UIX/JSP page to display an active link?
    Thanks,
    Bill G

    Hi Juan,
    I've done the following and it does not work for me;
    --- snip ---
    <uix:form name="form1" method="GET">
    <bc4juix:Table datasource="ds1" >
    <uix:columnHeaderStamp>
    <uix:styledText textBinding="LABEL"/>
    </uix:columnHeaderStamp>
    <%--
    <jbo:AttributeIterate id="dsAttributes" datasource="ds1" hideattributes="UixShowHide">
    <bc4juix:RenderValue datasource="ds1" dataitem="<%=dsAttributes.getName()%>" />
    </jbo:AttributeIterate>
    --%>
    <bc4juix:RenderValue datasource="ds1" dataitem="FacilityDesc" />
    <bc4juix:RenderValue datasource="ds1" dataitem="LocationId" />
    <bc4juix:RenderValue datasource="ds1" dataitem="LocationDesc" />
    <%-- ** THE FOLLOWING DOES NOT DISPLAY ON THE BROWSE_EDIT_PAGE ** --%>
    <jbo:ShowValue datasource="ds1" dataitem="Notes" ></jbo:ShowValue>
    <%-- ** THE FOLLOWING DOES NOT DISPLAY ON THE BROWSE_EDIT_PAGE ** --%>
    <uix:rawText>
    <jbo:ShowValue datasource="ds1" dataitem="Notes" ></jbo:ShowValue>
    </uix:rawText>
    <%-- ** THE FOLLOWING DOES NOT DISPLAY ON THE BROWSE_EDIT_PAGE ** --%>
    <uix:contents>
    <uix:rawText>
    <jbo:ShowValue datasource="ds1" dataitem="Notes" ></jbo:ShowValue>
    </uix:rawText>
    </uix:contents>
    --- snip ---
    Bill G...

  • Master-Detail in UIX-JSP

    Hi:
    How can i do a master-detail in UIX-JSP similar in functionality BC4J-JSP?. I haven't found an HOW-TO or guide.
    Thanks
    Marco

    Yes this is easily done.
    If you have a BC4J project with say Emp and Dept View Objects which are linked via
    a foreign key (there should be a BC4J FKDeptnoLink created), then all you have to do
    is generate a BC4J UIX JSP application.
    In a separate empty project, open the New gallery and select UIX-JSP -> Business Components JSP Application.
    Generate a default JSP application for your BC4J components. You can then run main.jsp
    to see the app.
    To see a master detail view of your app which is based on the Bc4J Link (FKDeptno) just click
    on link "FkDeptnoLink" on the left side..
    -Chris

  • ToolTips of fields in UIX JSP

    Hi All,
    We are using UIX JSP.
    We need to put tooltips to the fields getting displayed in our pages. We put the text we want as the tip in the
    'ToolTip Text' box in the 'ContrloHint' tab of the
    Edit Attribute window.(Using the Structure Panel)
    We did it for both the entity object and view object without success. Then we found in the 'Help' that it is
    not supported in UIX JSP. I am quoting the following paragraph from the 'Help' in JDev.
    "The following table lists the control hints and whether the various Business Components clients pick them up.
    Hint BC4J Data Tags BC4J UIX Tags JClient JavaUI
    LabelText yes yes yes
    Tooltip yes no yes "
    If it is not supported with UIX JSP, is there any workaround?
    Thanks in Advance
    Indica

    see the thread
    ToolTips of fields in UIX JSP

  • UIX JSP For Business Components

    I am looking for option under Web Tier - UIX JSP For Business Components - Complete UIX JSP Application. I cannot see that option in Jdeveloper 10g which was avaialble in 9i. What is the turnaround for it.
    I have an application which I wanted to convert it to jsp, so that I could deploy it on the web.
    Thanks in advance.

    We removed the "complete application" wizard in JDeveloper 9.0.5 since the application it was generating was hard to customize. Check out the tutorials on the JDeveloper home page to see how to build a complete application.

  • Error running uix jsp application

    Hi All
    I have created a bc4j/UIX JSP application. When i try to run the main.jsp file on the local host the application doesn't launch. I see the following message
    in the OC4J window
    Please help
    Regards
    Preet y Agarwal
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    C:\oracle\ora91\jdk\bin\javaw.exe -ojvm -classpath C:\oracle\ora91\j2ee\home\oc4j.jar -Dhttp.proxyHost=proxy.monash.edu.au -Dhttp.proxyPort=8080 com.evermind.server.OC4JServer -config C:\oracle\ora91\jdev\system\oc4j-config\server.xml
    [waiting for the server to complete its initialization...]
    Auto-unpacking C:\oracle\ora91\jdev\system\oc4j-config\applications\bc4j.ear... done.
    Auto-unpacking C:\oracle\ora91\jdev\system\oc4j-config\applications\bc4j\webapp.war... done.
    Auto-unpacking C:\oracle\ora91\jdev\system\oc4j-config\applications\bc4j\cabo.war... done.
    Auto-deploying bc4j (New server version detected)...
    Auto-deploying file:/C:/oracle/ora91/jdev/system/oc4j-config/default-web-app/ (New server version detected)...
    Auto-deploying file:/C:/oracle/ora91/jdev/system/oc4j-config/applications/bc4j/cabo/ (New server version detected)...
    Auto-deploying file:/C:/oracle/ora91/jdev/system/oc4j-config/applications/bc4j/webapp/ (New server version detected)...
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized
    ApplicationServer: appName = bc4j
    ApplicationServer: appName = current-workspace-app
    Process exited.
    C:\oracle\ora91\jdk\bin\javaw.exe -ojvm -classpath C:\oracle\ora91\j2ee\home\oc4j.jar -Dhttp.proxyHost=proxy.monash.edu.au -Dhttp.proxyPort=8080 com.evermind.server.OC4JServer -config C:\oracle\ora91\jdev\system\oc4j-config\server.xml
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    [waiting for the server to complete its initialization...]
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized
    Process exited.
    C:\oracle\ora91\jdk\bin\javaw.exe -ojvm -classpath C:\oracle\ora91\j2ee\home\oc4j.jar -Dhttp.proxyHost=proxy.monash.edu.au -Dhttp.proxyPort=8080 com.evermind.server.OC4JServer -config C:\oracle\ora91\jdev\system\oc4j-config\server.xml
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    [waiting for the server to complete its initialization...]
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized
    Process exited.
    C:\oracle\ora91\jdk\bin\javaw.exe -ojvm -classpath C:\oracle\ora91\j2ee\home\oc4j.jar -Dhttp.proxyHost=proxy.monash.edu.au -Dhttp.proxyPort=8080 com.evermind.server.OC4JServer -config C:\oracle\ora91\jdev\system\oc4j-config\server.xml
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    [waiting for the server to complete its initialization...]
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized
    ApplicationServer: appName = bc4j
    ApplicationServer: appName = current-workspace-app
    Process exited.
    C:\oracle\ora91\jdk\bin\javaw.exe -ojvm -classpath C:\oracle\ora91\j2ee\home\oc4j.jar -Dhttp.proxyHost=proxy.monash.edu.au -Dhttp.proxyPort=8080 com.evermind.server.OC4JServer -config C:\oracle\ora91\jdev\system\oc4j-config\server.xml
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    [waiting for the server to complete its initialization...]
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized
    Process exited.
    C:\oracle\ora91\jdk\bin\javaw.exe -ojvm -classpath C:\oracle\ora91\j2ee\home\oc4j.jar -Dhttp.proxyHost=proxy.monash.edu.au -Dhttp.proxyPort=8080 com.evermind.server.OC4JServer -config C:\oracle\ora91\jdev\system\oc4j-config\server.xml
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    [waiting for the server to complete its initialization...]
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized

    It may be caused by that your browser lauched before the OC4J server initialized.
    You can wait a moment till the OC4J server initialized then lauch your browser again.
    James Li

  • How to display a message box in a UIX JSP page?

    I've a UIX JSP Application with BC4J developed with JDeveloper RC.
    The problem is that when the user mistakes in the insertion/updating, I'd like to help him displaying a message box or a modal dialog window.
    In particular, I've the following code:
    <%@ page errorPage="errorpage.jsp" contentType="text/html;charset=WINDOWS-1252"%>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ taglib uri="http://xmlns.oracle.com/uix/ui" prefix="uix" %>
    <%@ taglib uri="http://xmlns.oracle.com/uix/ui/bc4j" prefix="bc4juix" %>
    <%@ page import="oracle.jbo.JboException" %>
    <%@ page import="CdssPackage.*" %>
    <%-- Define Application Module and DataSource--%>
    <%-- Define Application Module and DataSource--%>
    <jbo:ApplicationModule configname="CdssPackage.CdssPackageModule.CdssPackageModuleLocal" id="app1" username="scott" password="tiger" releasemode="Stateful" />
    <%
    //Check the mandatory fields are not null
    if ((cod_comm.compareTo("")==0) || (nome_ruolo.compareTo("")==0)){
    throw new JboException(Errors.ERR_REQUIRED_FIELD);
    //Now, the errorpage.jsp is displayed, while I'd like to display a message box or a modal dialog window
    %>
    How can I do it?
    Thanks in advance.

    Michele-
    You can use javascript to send a message window in the http protocol.
    Hope this helps,
    Lynn
    Java Tools Team

Maybe you are looking for

  • Two array objects compareTo:

    Have two arrays: ttt and ppp. I have to have a method to compare them. public int compareTo(object ob) both of the arrays are int type and both have super long numbers in them. Thanks

  • Open Items exist.. Not possible to change parameters ??

    Hi all, I made some X account balance to zero. And now when I was trying to change the account as open item (prior not in open item mgmt), system says that 'Account balance is 0, but still open items exist. Change not possible'. What does that mean ?

  • Crystal Reports 2013 on SAP BW

    Hi Gurus, We are trying to establish connection between Crystal Reports 2013 and SAP BW 7.4. Could you please let us know whether we can create Crystal Reports on following BW objects or not? -BW BEx Reports -BW Cubes -BW DSOs -BW Master data Info Ob

  • Posting priveleges suspended "for a period of time".  Over a week later...

    Got caught up in the iPhone furor and had some posts deleted and my account temporarily suspended. It's been over a week and I still can't post. Anything I can do to get it going again? How long is "a period of time"? -TX Ciclista

  • Cant get gc() to run

    Hi guys i am trying to run application.gc on disconnect of all users. quote: application.onDisconnect = function(client){ trace("disconnect: " + client.name); application.users_so.setProperty(client.name, null); if (application.clients.length < 1){ a