Intergration Services and Essbase SQL-Interface
Hi, Experts,
I have learned that if I need to access relational database I need to have one of the above components.
Well, as SQL-Interface is free, what is an Intergration Services good for?
Please give me some advices.
Thanks.
Regards,
Linda
Both SQL Interface and Analytic Integration services provide direct link to the RDBMS.
In AIS, We have to create OLAP Model(Logical Star Schema) and MetaOutline(Rules to load memebers and data) based on the OLAP Model.
Similar Messages
-
Failed cfg on Essbase /Essbase administration service and Essbase / Studio
Hi Friends,
I Installed Oracle Hyperion Foundaion services,esbase and planning.
i deployed essbase in standalone mode.
when i run EPM system Diagnostic I am geting failes status on
Essbase /Essbase administration service and Essbase / Studio with the Test Description
FAILED CFG: Configuration Check whether all configuration tasks have been completed
Error: Next tasks are not configured:
hubRegistration: Configuration Failed
Recommended Action: Try to configure mentioned tasks
is there any problem because of this?please suggest
Regards
DBHi,
Have you configured Essbase, Shared services and Planning component after installation; were it successful last time.
Thanks
Focusthread Hyperion Trainer
[http://focusthread.com/training] -
Issue with Essbase - SQL Interface in UNIX box
Hi All,
One of our customer is facing an issue while trying to connect to the Oracle datasource from Essbase version 9.0.1.0.00 in a 64 bit UNIX box. He is using Oracle wired protocol for SQL interface.
Customer has tried the below and getting the below error:
1) Ran the nst-sql.sh file.
2) Edited the odbc.ini file and the .profile file with the required dsn information.
3) From the console selected the open SQL option and received the following error " There are no datasources defined. Please create one to continue"
I have attached the odbc.ini file and the .profile file for your reference.
Any help appreciated.
Thanks,
Bharathi Raja
ODBC.ini file
ARBORPATH=/hyper/arbor/Hyperion/AnalyticServices
HYPERION_HOME=/hyper/arbor/Hyperion
ESSLANG=English_UnitedStates.Latin1@Binary
SHLIB_PATH=.:/hyper/arbor/Hyperion/common/ODBC/Merant/5.0/lib:/hyper/arbor/Hyperion/AnalyticServices/bin:$SHLIB_PATH
PATH=$PATH:$ARBORPATH/bin:/usr/lib:$ARBORPATH:$HYPERION_HOME/common/ODBC/Merant/5.0/lib
LD_LIBRARY_PATH=$HYPERION_HOME/common/ODBC/Merant/5.0/lib
ulimit -c unlimited
ulimit -n 1024
LIBPATH=/hyper/arbor/Hyperion/common/ODBC/Merant/5.0/lib
LANG=en_US
ODBCINI=/hyper/arbor/Hyperion/Essbase/bin/.odbc.ini
[ODBC Data Sources]
DB2 Wire Protocol=DataDirect 5.0 DB2 Wire Protocol Driver
dBase=DataDirect 5.0 dBaseFile(*.dbf)
FoxPro3=DataDirect 5.0 dBaseFile(*.dbf)
Informix=DataDirect 5.0 Informix
Informix Wire Protocol=DataDirect 5.0 Informix Wire Protocol
Oracle=DataDirect 5.0 Oracle
Oracle Wire Protocol=DataDirect 5.0 Oracle Wire Protocol
Progress9=DataDirect 5.0 Progress SQL92
Progress10=DataDirect 5.0 Progress OpenEdge
SQLServer Wire Protocol=DataDirect 5.0 SQL Server Wire Protocol
Sybase Wire Protocol=DataDirect 5.0 Sybase Wire Protocol
Text=DataDirect 5.0 TextFile(*.*)
[DB2 Wire Protocol]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARdb220.sl
Description=DataDirect 5.0 DB2 Wire Protocol Driver
AddStringToCreateTable=
AlternateID=
Collection=OS/390 and AS/400 (leave blank for DB2 UDB)
Database=DB2 UDB (leave blank for OS/390 and AS/400)
DynamicSections=100
GrantAuthid=PUBLIC
GrantExecute=1
IpAddress=DB2 server host
IsolationLevel=CURSOR_STABILITY
Location=OS/390 and AS/400 (leave blank for DB2 UDB)
LogonID=UID
Password=PWD
Package=DB2 package name
PackageOwner=
TcpPort=DB2 server port
WithHold=1
[dBase]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARdbf20.sl
Description=DataDirect 5.0 dBaseFile(*.dbf)
ApplicationUsingThreads=1
CacheSize=4
CreateType=dBASE5
Database=$HYPERION_HOME/common/ODBC/Merant/5.0/demo
DataFileExtension=DBF
ExtensionCase=UPPER
FileOpenCache=0
IntlSort=0
LockCompatibility=dBASE
Locking=RECORD
UseLongNames=0
UseLongQualifiers=0
[FoxPro3]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARdbf20.sl
Description=DataDirect 5.0 dBaseFile(*.dbf)
ApplicationUsingThreads=1
CacheSize=4
CreateType=FoxPro30
Database=$HYPERION_HOME/common/ODBC/Merant/5.0/demo
DataFileExtension=DBF
ExtensionCase=UPPER
FileOpenCache=0
IntlSort=0
LockCompatibility=Fox
Locking=RECORD
UseLongNames=0
UseLongQualifiers=0
[Informix]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARinf20.sl
Description=DataDirect 5.0 Informix
ApplicationUsingThreads=1
CancelDetectInterval=0
CursorBehavior=0
Database=db
EnableInsertCursors=0
GetDBListFromInformix=1
HostName=Informix host
LogonID=UID
Password=PWD
Protocol=onsoctcp
ServerName=Informix server
Service=Informix service name
TrimBlankFromIndexName=1
[Informix Wire Protocol]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARifcl20.sl
Description=DataDirect 5.0 Informix Wire Protocol
ApplicationUsingThreads=1
CancelDetectInterval=0
Database=db
HostName=Informix host
LogonID=UIDUID
Password=PWDPWD
PortNumber=Informix server port
ServerName=Informix server
TrimBlankFromIndexName=1
[Oracle]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARor820.sl
Description=DataDirect 5.0 Oracle
ApplicationUsingThreads=1
ArraySize=60000
CatalogIncludesSynonyms=1
CatalogOptions=0
DefaultLongDataBuffLen=1024
DescribeAtPrepare=0
EnableDescribeParam=0
EnableNcharSupport=0
EnableScrollableCursors=1
EnableStaticCursorsForLongData=0
EnableTimestampWithTimeZone=0
LocalTimeZoneOffset=
LockTimeOut=-1
LogonID=UID
OptimizeLongPerformance=0
Password=PWD
ProcedureRetResults=0
ServerName=Oracle host
UseCurrentSchema=1
[Oracle Wire Protocol]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARora20.sl
Description=DataDirect 5.0 Oracle Wire Protocol
ApplicationUsingThreads=1
ArraySize=60000
CachedCursorLimit=32
CachedDescLimit=0
CatalogIncludesSynonyms=1
CatalogOptions=0
DefaultLongDataBuffLen=1024
DescribeAtPrepare=0
EnableDescribeParam=0
EnableNcharSupport=0
EnableScrollableCursors=1
EnableStaticCursorsForLongData=0
EnableTimestampWithTimeZone=0
HostName=Oracle server
LocalTimeZoneOffset=
LockTimeOut=-1
LogonID=UID
Password=PWD
PortNumber=1521
ProcedureRetResults=0
SID=Oracle SID
UseCurrentSchema=1
[Progress9]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARpro920.sl
Description=DataDirect 5.0 Progress SQL92
DatabaseName=db
HostName=Progress9 host
LogonID=UID
Password=PWD
PortNumber=Progress9 server port
[Progress10]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARpro1920.sl
Description=DataDirect 5.0 Progress OpenEdge
DatabaseName=db
HostName=Progress10 host
LogonID=UID
Password=PWD
PortNumber=Progress10 server port
[SQLServer Wire Protocol]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARmsss20.sl
Description=DataDirect 5.0 SQL Server Wire Protocol
Address=SQLServer host,SQLServer server port
AnsiNPW=Yes
Database=db
LogonID=UID
Password=PWD
QuotedId=No
[Sybase Wire Protocol]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARase20.sl
Description=DataDirect 5.0 Sybase Wire Protocol
ApplicationName=
ApplicationUsingThreads=1
ArraySize=50
Charset=
CursorCacheSize=1
Database=db
DefaultLongDataBuffLen=1024
EnableDescribeParam=0
EnableQuotedIdentifiers=0
InitializationString=
Language=
LogonID=UID
NetworkAddress=Sybase host,Sybase server port
OptimizePrepare=1
PacketSize=0
Password=PWD
RaiseErrorPositionBehavior=0
SelectMethod=0
WorkStationID=
[Text]
Driver=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/ARtxt20.sl
Description=DataDirect 5.0 TextFile(*.*)
AllowUpdateAndDelete=0
ApplicationUsingThreads=1
CacheSize=4
CenturyBoundary=20
Database=$HYPERION_HOME/common/ODBC/Merant/5.0/demo
DataFileExtension=TXT
DecimalSymbol=.
Delimiter=
FileOpenCache=0
FirstLineNames=0
IntlSort=0
ScanRows=25
TableType=Comma
UndefinedTable=GUESS
[ODBC]
IANAAppCodePage=4
InstallDir=$HYPERION_HOME/common/ODBC/Merant/5.0
Trace=0
TraceDll=$HYPERION_HOME/common/ODBC/Merant/5.0/lib/odbctrac.sl
TraceFile=odbctrace.out
UseCursorLib=0
*.Profile file*
HYPERION_HOME=/hyper/arbor/Hyperion
ESSLANG=English_UnitedStates.Latin1@Binary
SHLIB_PATH=.:/hyper/arbor/Hyperion/common/ODBC/Merant/5.0/lib:/hyper/arbor/Hyperion/AnalyticServices/bin:$SHLIB_PATH
PATH=$PATH:$ARBORPATH/bin:/usr/lib:$ARBORPATH:$HYPERION_HOME/common/ODBC/Merant/5.0/lib
LD_LIBRARY_PATH=$HYPERION_HOME/common/ODBC/Merant/5.0/lib
ulimit -c unlimited
ulimit -n 1024
LIBPATH=/hyper/arbor/Hyperion/common/ODBC/Merant/5.0/lib
LANG=en_US
ODBCINI=/hyper/arbor/Hyperion/Essbase/bin/.odbc.iniThe essbase user needs to be restarted to be able to see the new odbc.ini entries.
After editing the files you mentioned, did you restart the essbase services?
At the very least, did you exit EAS, then restart EAS? (I don't remember which one of these will do it.) If your entries are correct, then one of these should get the essbase user to 'see' the odbc connection.
Also, it might help to remove extraneous entries in the .odbc.ini file, kind of difficult to read thru all of that.
Robert
Edited by: RobertR3 on Mar 17, 2009 10:19 AM -
Shared services and Essbase Sync issue
Hi,
Today morning all of sudden lot of users raised an issue that they can't see few applications while connecting through Smart view. I have checked Shared services and the groups are already provisoned. Finally I ran alter system resync sss and after the syncing its fine.
Any reasons why this morning Syncing was not there.
Thanks..Its fascinating, if the users are provisioned too they can see other applications in smart view and that's what I heard but never checked on it, Is there any possible filters where they cant see it ?
If so please let me know. -
Regarding Shared Services and Essbase Access
Hello,
I am curious on few things regarding how Essbase and Shared services are interlinked.
Basically we have created Essbase Filters to limit the User access to specific entities , my concern is if a User is trying to Run a report or retrieve through Smart View and if they don't have access to any one of the list of Filter definitions say if there are X , Y ,Z entities in the Spread sheet for Smart View retrieval or in a report and the user does not have privilege for Z do they still get terminated from the entire Essbase Applications. I encountered similar type of problem with one of the users today.
Any comments.
Thanks !Thanks for the reply Glenn , yes it should not get disconnected or have any connection issue. But below is what the error we get when using Essbase security filter.
**** Cannot Open Member Selection. Essbase Error(1001064):You do not have sufficient access to perform read on this database **** -
Clarification regarding Shared services and essbase security
Hi,
Sorry for the silly doubt. We have shared services to manage security, essbase v 9
1. to assign calc access for users, do i assign calc scripts under databases in group security and assign users to groups in shared services or do it via access control in shared services?
2. If in shared services i havent given calc access but in eas user belongs to a group with that particular calc script access, which would take precedence?
Regards,
N shahIn shared services, when i click on a particular application under the essbase server under the projects folder, there are cases where there are no users or groups under the 'available users and groups'. Why is this so? groups and users are supposed to be there.
Also, in a different application, i saw one available user. however when i try to provide calc access. its not changing anything. I select the calc script and then click the check mark. however nothing changes. The calc access for the user is specified as none. When i login to excel with the same user id, i can see all the calc scripts available for the user. Where are the details being picked up from.??
Edited by: 862089 on Jul 13, 2011 9:55 PM -
Shared Services and Essbase Server Access Question
Hi,
It seems that we have to assign Essbase Server access at the individual username level and that groups don't work when it comes to Essbase Server Access. Is this correct or are we doing something wrong and groups do work with Essbase Server access? We are on 11.1.1.3 Essbase/Planning/Shared Services.
ThanksYou can provision Essbase Server Access via groups but it must be the very first thing provisioned and pushed to Essbase. Then after that, provision your groups with other accesses such as Planning, Reports etc....
-
Hello All,
Pretty much an undesired Bug, Basically there is an ID listed as an Essbase admin which yes it was few months back. At present that ID has been removed from Shared Services , also I checked in the list of Essbase Users within EAS and did not find the ID.
Interesting thing ***** When I exported the Essbase security file I could see that ID listed as an Admin , not sure how it comes up only in Security file but not any where else.
Is there any issue between Essbase and Shared services communication, because the Essbase should refresh Manually for any changes in the Shared Services.
Any comments Friends ?
Thanks !!Its probably worth having a read of the following docs in Oracle Support as they should give an idea
Deleting a User/Group from Shared Services Does Not Delete it from the Essbase Security File [ID 1388447.1]
How to Delete a User from the 11.1.2.x Essbase.sec File [ID 1396890.1]
Cheers
John
http://john-goodwin.blogspot.com/ -
Web Services and PL/SQL-functions
Hi.
Is it possible to make a Web service able to "select all emp" and return all emp in a XML-stream back to the service.
I can select one single emp, that works according to examples on OTN.
Hans-Inge.The service-config.xml and client-config.xml are config files used by the Webservices assembler, which generates webservices from PL/SQL. JPublisher is used under the hood.
However, the 10.1.3 assembler may run without service-config.xml and client-config.xml. If you can run the build.xml file for the demo, then you are fine. -
Slow site, latency between cloud service and SQL Azure?
We have a web site that works pretty swiftly in a local development environment. But once deployed to Azure it slows down to a crawl (even for a single user). Some pages take 30-60 seconds to load. Even the simplest pages take between 5 and 10 seconds.
The app is rather data intensive, so the way I see it, there is a slow connection between the cloud service and the SQL node. We currently use S2 instance, the S1 and S0 didn't work at all because of timeouts. When we execute queries directly against the database,
they all return within milliseconds, so it is not a query performance issue. It seems that there is a big penalty on establishing the connection between the web node and SQL node.
I am not sure if this is a provisioning issue. At times it actually begins to work a bit faster. Not quite as fast in a local environment, but barely acceptable. But then it goes back to excruciatingly slow. Any advice is appreciated.Hi Mimo,
Is this a 5-20second load time something that occurs every time you load the page or just on the first time you load it (cold start)? The default website settings might tear down your site after a period of inactivity and I'm wondering
if that might be what's causing the performance issues.
Couple of things you might want to check :
- Increase the Instance count
- Check the Monitor Tab in Azure Website to see how much of CPU, DataIN and Data Out time is taken for a request to the site.
Recommend you to see this thread discussion on Failed request tracing
for troubleshooting on Slow requests and a video on
Troubleshooting Slow Requests with Failed Request Tracing that might help troubleshoot the slowness of website.
Regards,
Shirisha Paderu -
AAS & Provider services and conflict between exl adin & smart view
Hi,
I just installed Hyperion Essbase 9.3.1 for test purpose for our upgrade from 7.0 to 9.3. I have one machine and I installed Administration console, Hyperion Provider services and Essbase.
I need to install administration console and Hyperion provider services as a service on windows environment. How I can install as a service.
If I work excel add in v 7.1 and smart view 9.3 on a same machine. It will give me any error or conflict?
Thank you.
T.KhanHi,
I am not sure that fully understand what you are asking so I apologise if I have misread this.
Are you saying you have installed EAS server and APS on a machine but didn't tick the install as a service when you were configuring ?
If that is the case then if you have installed using tomcat, in the directory :- \Hyperion\deployments\Tomcat5\bin
There are scripts to create services :- installServiceaas.bat & installServiceaps.bat
If excel addin 7.1 and smart view do cause any issues you can easy turn one of them off, for instance with Smart View you can go to the tool bar in Excel > Hyperion > About > Untick enable Add-in
Or just untick the addins from the addins menu options in excel.
Cheers
John
http://john-goodwin.blogspot.com/ -
Having issues after installing Essbase V9.3.1,configuring the SQL interface
I am having issues after installing Essbase V9.3.1 and configuring the SQL interface. we are using UNIX/AIX box for our Essbase server and UDB DB2 9.1 SP6 as our SQL Interface.
When tried to run an ESSCMD script to perform BUILDDIM operation on Essbase application using the load rule (with the SQL interface), got the error as recorded in the application log file and is attached at the bottom and the .odbc.ini file on the server looks as follows.
Can somebody tell me whether .odbc.ini needs any correction or what else should I do to correct the issue and able to work thru using SQL interface? Appreciate any help provided in this regard. Thanks,
.odbc.ini
[ODBC Data Sources]
DOLU003=IBM DB2 ODBC DRIVER
[DOLU003]
Driver=/home/db2inst1/sqllib/lib/libdb2.a
Database=DOLU003
[ODBC]
Trace=0
TraceFile=odbctrace.out
InstallDir=/home/db2inst1/sqllib/odbclib
[Mon Apr 20 15:16:29 2009]Local/New_Bud/Budget/Olapadm/Info(1021020)
Cannot read SQL driver name for [] from [home/hyperion/.odbc.ini]
[Mon Apr 20 15:16:43 2009]Local/New_Bud/Budget/Olapadm/Info(1013091)
Received Command [SQLRetrieve] from user [Olapadm]
[Mon Apr 20 15:16:43 2009]Local/New_Bud/Budget/Olapadm/Info(1021020)
Cannot read SQL driver name for [] from [home/hyperion/.odbc.ini]
[Mon Apr 20 15:16:43 2009]Local/New_Bud/Budget/Olapadm/Info(1021004)
Connection String is generated
[Mon Apr 20 15:16:43 2009]Local/New_Bud/Budget/Olapadm/Info(1021041)
Connection String is [DSN=DOLU003;UID=...;PWD=...]
[Mon Apr 20 15:16:43 2009]Local/New_Bud/Budget/Olapadm/Info(1021006)
SELECT Statement [SELECT * FROM DB2OLADM.BD_DIMENSION_DEF_PC WHERE DIMENSION_ID
= 12 ORDER BY TREE_NODE_NUM, PARENT_NODE, CHILD_NODE] is generated
[Mon Apr 20 15:16:44 2009]Local/New_Bud/Budget/Olapadm/Info(1021013)
ODBC Layer Error: [7] ==> [[DataDirect][ODBC 20101 driver]6013]
[Mon Apr 20 15:16:44 2009]Local/New_Bud/Budget/Olapadm/Info(1021014)
ODBC Layer Error: Native Error code [0]
[Mon Apr 20 15:16:44 2009]Local/New_Bud/Budget/Olapadm/Error(1021001)
Failed to Establish Connection With SQL Database Server. See log for more information
--------------------------------------------------------------------------------------------------------------------------------------------I had similar errors when first setting up the SQL interface. Are you on a 64 bit operating system on the essbase server? If so Essbase needs to use the 32 bit odbc driver, not the default 64 bit driver.
The 32 bit driver is still available here SysWOW64\odbcad32.exe <-----This is the 32 bit (Use)
The Administrative tools by default uses system32\odbcad32.exe <----This is the 64 bit (Don't Use)
Once I opened the 32 bit driver interface directly and set it up the errors went away. -
Problems getting ODBC SQL Interface to work for Essbase 11.1.1.3
Hi folks.
We're running Essbase 11.1.1.3 on Linux (32 bit) and I want to use the ODBC SQL Interface to load fact data.
We have run the SQL Interface install .sh script successfully, then restarted the Essbase agent, and have modified the ODBC.ini file to use the Oracle Wire Protocol driver.
I enter the SQL query in the rule Data Prep Editor in EAS (File | Open SQL) and when I hit "OK/Retrieve" I get the error "Failed to Establish Connection with SQL Database Server."
The application log file says:
ODBC Layer Error: [S1000] ==> [[DataDirect][ODBC Oracle Wire Protocol driver]TNS-12154: TNS:could not resolve the connect identifier specified]
[Wed Oct 6 15:31:26 2010]Local/appx/Plan1/username/Info(1021014)
ODBC Layer Error: Native Error code [0]
[Wed Oct 6 15:31:26 2010]Local/appx/Plan1/username/Error(1021001)
Failed to Establish Connection With SQL Database Server. See log for more information
[Wed Oct 6 15:31:26 2010]Local/EXECDEV/Plan1/username/Warning(1080014)
Transaction [ 0x6b0001( 0x4cacce8e.0xe4d2f ) ] aborted due to status [6].
Any suggestions?
Edited by: user12087276 on Oct 6, 2010 3:39 PMHave you followed the info here :- How to define a relational data source in (odbc.ini) V11 Essbase?
You don't need to run Inst-SQL.sh
Cheers
John
http://john-goodwin.blogspot.com/ -
Teradata SQL interface For Essbase
Hi,
Can anyone give me an idea on how exactly Teradata sql interface works while loading data in essbase cubes? Does it create any temporary storage while fetching the data from source system? How can we make the process faster other than using teradata parallel transporter and THREADSWRITE for essbase? And I think it's better to do the transformations in sql itself, rather than doing it in rule file.
Thanks in advance!From what I understand EPM Fusion Edition 11.1.1 has optimized loading from Teradata I'm not sure, but it may take advantage of fast export. I believe it has to create a temporary table on Teradata(spool) to gather that data together to send to Essbase. I agree it is better to do the transformation in the SQL before getting it to Essbase, you have more flexibility to get things the way you want in SQL(more complex logic and transformations)
-
PL/SQL and Java Swing interface
Everybody in this forum knows that Oracle is the best database around
with many functionalities, stability, performance, etc. We also know
that PL/SQL is a great language to manipulate information directly
in the database with many built in functions, OOP capability,
transaction control, among other features. Today an application that
manipulates information, which needs user interface, requires components
to be developed using different technologies and normally running in
different servers or machines. For example, the interface is done using
a dynamic HTML generator like JSP, PHP, PL/SQL Web Toolkit, etc.
This page is executed in an application server like Oracle iAS or
Tomcat, just to name two, which in turn access a database like Oracle to
build the HTML. Also rich clients like Java applets require an intermediate
server to access the database (through servlets for example) although
it is possible to access the database directly but with security issues.
Another problem with this is that complexity increases a lot, many
technologies, skills and places to maintain code which leads to a greater
failure probability. Also, an application is constantly evolving, new
calculations are added, new tables, changed columns. If you have an
application with product code for example and you need to increase its
size, you need to change it in the database, search for all occurrences
of it in the middle-tier code and perhaps adjust interfaces. Normally
there is no direct dependency among the tier components. On another
issue, many application interfaces today are based on HTML which doesn't
have interactive capabilities like rich-client interfaces. Although it
is possible to simulate many GUI widgets with JavaScript and DHTML, it is
far from the interactive level we can accomplish in rich clients like
Java Swing, Flash MX, Win32, etc. HTML is also a "tag-based" language
originally created to publish documents so even small pages require
many bytes to be transmitted, far beyond of what we see on the screen.
Even in fast networks you have a delay time to wait the page to be
loaded. Another issue, the database is in general the central location
for all kinds of data. Most applications relies on it for security,
transaction and availability. My proposal is to use Oracle as the
central location for interface, processing and data. With this approach
we can create not only the data manipulation procedures in the database,
but procedures that also control and manage user interfaces. Having
a Oracle database as the central location for all components has many
advantages:
- Unique point of maintenance, backup and restore
- Integrated database security
- One language for everything, PL/SQL or Java (even both if desired)
- Inherited database cache, transaction and processing optimizations
- Direct access to the database dictionary
- Application runs on Oracle which has support for many platforms.
- Transparent use of parallel processing, clusters and future
background technologies
Regarding the interface, I already created a Java applet renderer
which receives instructions from the database on how to create GUI
objects and how to respond to events. The applet is only 8kb and can
render any Swing or AWT object/event. The communication is done
through HTTP or HTTPS using Oracles's MOD_PLSQL included in the Apache
HTTP server which comes with the database or application server (iAS).
I am also creating a database framework and APIs in PL/SQL to
create and manipulate the client interface. The applet startup is
very fast because it is very small, you don't need to download large
classes with the client interface. Execution is done "on-demand"
according to instructions received from the database. The instructions
are very optimized in terms of network bandwidth and based on preliminary
tests it can be up to 1/10 of a similar HTML screen. Less network usage
means faster response and means that even low speed connections will
have a good performance (a future development can be to use this in
wireless devices like PDAs e even cell phones, just an idea for now).
The applet can also be executed standalone by using Java Web Start.
With this approach no business code, except the interface, is executed
on the client. This means that alterations in the application are
dynamically reflected in the client, no need to "re-download" the
application. Events are transmitted when required only so network
usage is minimized. It is also possible to establish triggering
events to further reduce network usage. Since the protocol used is
HTTP (which is stateless), the database framework I am creating will
be responsible to maintain the state of connections, variables, locks
and session information, so the developer don't need to worry about it.
The framework will have many layers, from communication up to
application so there will be pre-built functions to handle queries,
pagination, lock, mail, log, etc. The final objective is to have a
rich client application integrated into the database with minimum
programming and maintenance requirements, not forgetting customization
capabilities. Below is a very small example of what can de done. A
desktop with two windows, each window with two fields, a button with an
image to switch the values, and events to convert the typed text when
leaving the field or double-clicking it. The "leave" event also has an
optimization to only be triggered when the text changes. I am still
developing the framework and adjusting the renderer but I think that all
technical barriers were transposed by now. The framework is still in
the early stages, my guess is that only 5% is done so far. As a future
development even an IDE can be created so we have a graphical environment
do develop applications. I am willing to share this with the PL/SQL
community and listen to ideas and comments.
Example:
create or replace procedure demo1 (
jre_version in varchar2 := '1.4.2_01',
debug_info in varchar2 := 'false',
compress_buffer in varchar2 := 'false',
optimize_buffer in varchar2 := 'true'
) as
begin
interface.initialize('demo1_init','JGR Demo 1',jre_version,debug_info,compress_buffer,optimize_buffer);
end;
create or replace procedure demo1_init as
begin
toolkit.initialize;
toolkit.create_icon('icon',interface.global_root_url||'img/switch.gif');
toolkit.create_internal_frame('frame1','Frame 1',50,50,300,136);
toolkit.create_label('frame1label1','frame1',10,10,50,20,'Field 1');
toolkit.create_label('frame1label2','frame1',10,40,50,20,'Field 2');
toolkit.create_text_field('frame1field1','frame1',50,10,230,20,'Field 1','Field 1',focus_event=>true,mouse_event=>true);
toolkit.create_text_field('frame1field2','frame1',50,40,230,20,'Field 2','Field 2',focus_event=>true,mouse_event=>true);
toolkit.set_text_field_event('frame1field1',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 1','false');
toolkit.set_text_field_event('frame1field2',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 2','false');
toolkit.set_text_field_event('frame1field1',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 1','false');
toolkit.set_text_field_event('frame1field2',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 2','false');
toolkit.create_button('button1','frame1',10,70,100,25,'Switch','Switch the values of "Field 1" and "Field 2"','S','icon');
toolkit.set_button_event('button1',toolkit.action_performed_event,'demo1_switch_fields(''frame1field1'',''frame1field2'')','frame1field1:'||toolkit.get_text_method||',frame1field2:'||toolkit.get_text_method);
toolkit.create_internal_frame('frame2','Frame 2',100,100,300,136);
toolkit.create_label('frame2label1','frame2',10,10,50,20,'Field 1');
toolkit.create_label('frame2label2','frame2',10,40,50,20,'Field 2');
toolkit.create_text_field('frame2field1','frame2',50,10,230,20,'Field 1','Field 1',focus_event=>true,mouse_event=>true);
toolkit.create_text_field('frame2field2','frame2',50,40,230,20,'Field 2','Field 2',focus_event=>true,mouse_event=>true);
toolkit.set_text_field_event('frame2field1',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 1','false');
toolkit.set_text_field_event('frame2field2',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 2','false');
toolkit.set_text_field_event('frame2field1',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 1','false');
toolkit.set_text_field_event('frame2field2',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 2','false');
toolkit.create_button('button2','frame2',10,70,100,25,'Switch','Switch the values of "Field 1" and "Field 2"','S','icon');
toolkit.set_button_event('button2',toolkit.action_performed_event,'demo1_switch_fields(''frame2field1'',''frame2field2'')','frame2field1:'||toolkit.get_text_method||',frame2field2:'||toolkit.get_text_method);
end;
create or replace procedure demo1_set_upper as
begin
toolkit.set_string_method(interface.global_object_name,toolkit.set_text_method,upper(interface.array_event_value(1)));
toolkit.set_text_field_event(interface.global_object_name,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(1)),'false');
end;
create or replace procedure demo1_set_lower as
begin
toolkit.set_string_method(interface.global_object_name,toolkit.set_text_method,lower(interface.array_event_value(1)));
toolkit.set_text_field_event(interface.global_object_name,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(1)),'false');
end;
create or replace procedure demo1_switch_fields (
field1 in varchar2,
field2 in varchar2
) as
begin
toolkit.set_string_method(field1,toolkit.set_text_method,interface.array_event_value(2));
toolkit.set_string_method(field2,toolkit.set_text_method,interface.array_event_value(1));
toolkit.set_text_field_event(field1,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(2)),'false');
toolkit.set_text_field_event(field2,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(1)),'false');
toolkit.set_text_field_event(field1,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(2)),'false');
toolkit.set_text_field_event(field2,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(1)),'false');
end;Is it sound like Oracle Portal?
But you want to save a layer 9iAS.
Basically, that was the WebDB.(Oracle changed the name to Portal when version 3.0)
Over all, I agree with you.
>>Having a Oracle database as the central location for all components has many
>>advantages:
>>
>>- Unique point of maintenance, backup and restore
>>- Integrated database security
>>- One language for everything, PL/SQL or Java (even both if desired)
>>- Inherited database cache, transaction and processing optimizations
>>- Direct access to the database dictionary
>>- Application runs on Oracle which has support for many platforms.
>>- Transparent use of parallel processing, clusters and future
>>background technologies
I would like to build 'ZOPE' inside Oracle DB as a back-end
Using Flash MX as front-end.
Thomas Ku.
Maybe you are looking for
-
Linksys Wireless Print server and my Mac G4
I just set up my linksys wireless print server and it's printing from my PC just fine - not so on my G4. My printer is a Canon Pixma ip5200, and the appropriate drivers etc are installed. I know the IP address and have tried setting up the printer vi
-
Can't Sleep or Shut Down - Getting Worse
I have a new MBP with WinXP Home installed on a separate partition created with Boot Camp 1.2. I use Windows to access a work system, otherwise, I am always in OS 10.4.9. Everything worked perfectly for about two weeks. Beginning about a week ago, I
-
How can i upgrade my macbook pro if i dont have credit card?
every time i try to upgrade imovie from appstore it tells me that i have to sign in, when i do that it says to me that this account havent been used in itunes store so i cant upgrade it. i tried to download the last version of imovie and when i tried
-
Problems getting a TweenEffect to work in AS with a 'removedEffect'
Anyone have any idea why this small application is throwing an error. Is this a bug, or am I doing something wrong? I am getting this in a much larger, and more complicated app that uses heavy ActionScript. I narrowed the problem code down to this sm
-
How to burn DVDs on an iBook Clamshell?
Hello, I've got an 466MHz Clamshell with the built-in Apple combo drive that is not able to burn CDs and DVDs. So I was wondering how to modify or upgrade the iBook to make it burning such media. I found this: http://tinyurl.com/2nodg9 on eBay and as