Oracle APEX application be used to run scripts on the client side - oracle

Can an Oracle APEX application be used to run scripts on the client side local (w7) PC?
I would like to be able to communicate with devices on the local PC, collect data and post it back up to the database. This is for the purpose of test automation which was previously done using MS VBA and MS access.

As with any other sort of web application, not easily. For good reason, web browsers generally do not allow web applications to execute random executables on the client machine. If they did, it would be a huge security hole that would allow an attacker to do whatever they want to your machine just because you visited a malicious web page.
Potentially, you could write (or find) an ActiveX control or a Java applet or some other sort of client-side control that could be given privileges to run scripts on the client machine. But that would probably require a pretty substantial amount of "futzing" with permissions that might make the machine vulnerable to malicious web sites.
Assuming that there are a relatively small number of client machines, you could also potentially install the Oracle Scheduler Agent on each of the machines that you want to execute scripts on and then use the Oracle Scheduler on the database to start jobs on the remote machines. If you did this, you could potentially start jobs on any of the client machines from an APEX interface.

Related

Sharing MS Database with Multiple Users

I have a MS Access Database that I need to share with multiple users in the entire state. Right now I split the database and placed the backend on a shared network drive and distributed the front end, but the issue I'm having is that offices further away can't enter a record in a timely manner (one office took over 2 hours).
We do have SharePoint, but it's on a 2010 server and our MS Access is 2013 and I'm told because of this, access won't link up to SharePoint and this is not an option.
Someone in my office mentioned something about replicating a database...is this something that will work? If not, are there any suggestions?
Replication in Access was killed in Access 2007.
SharePoint is not an option except if you start from scratch, and the shared lists and/or various web apps you can create are seriously limited compared to your present desktop solution.
Basically, you have three options:
Upgrade your WAN to 100 Mbit/s low-latency quality fibre connection
Create a Terminal Server hosting your application. Remote users will access this via standard Remote Desktop Connection
Upgrade your backend to SQL Server Express (free) and set up an in-house or outsourced server hosting this
The first options require zero coding, while the last takes a little but not much, and that is well documentated (just bing/google on this).

What is the business benefit for Oracle Weblogic Server over OC4J?

Apart from Technology support , what are all the business benefits for oracle web logic server. For example in area of security,support etc.
What are all the new features supported by weblogic ?
TL;DR:
Support is great when you open ticket with Oracle Support (Weblogic strictly).
Great admin/read-only user implementation. We authenticate to Windows Active Directory. Developers get read-only accounts, reduces churn for them to wait for ops to transfer logs and validate settings.
Dashboard useful out-of-box to do real-time monitoring without additional tools or installs. Easily accessed by any one who is authenticated to login. We could give it to our CIO if he wanted in about 3 minutes by adding him to the right authorized group in AD.
Easier to clone environments.
I haven't worked with OC4J but I believe Oracle's roadmap is picking Weblogic as their preferred Java application server. You can see it is the base technology for some of their other products, such as Oracle Service Bus, Oracle Enterprise Manager (OEM), and Oracle Line Planning.
I have opened 3 Oracle tickets in the past month. I was surprised at how fast they answered. For a Severity 3 ticket (medium), they usually have responded in 2-3 days. I can't say the same for their other services (over 2 weeks for a ticket on OEM).
Security is a pretty broad scope... so you'd have to be a little more specific on some of the topics of security.
One thing that is pretty awesome is the Dashboard. http://docs.oracle.com/cd/E14571_01/web.1111/e13714/dashboard.htm You can obviously add read-only monitor accounts so other users can get insight to the performance. We add developers to this so that they can validate any settings, or see performance whenever there is a production issue.
We used Microsoft Active Directory authentication in our Weblogic domains. People are not using the default weblogic administrator user so configuration changes are audited. When someone's account gets disabled when leaving the company, it disables their access to Weblogic similarly. You don't have to change the password.
Other useful settings I like in it is the ability to automatically archive config changes. Each time someone makes a config change, a backup is automatically created. This allows me to go fix something when developers break their environment without having to majorly reverse-engineer what they did.
I also like the fact that you can pack and unpack the domains. I've used it to move entire domains from staging to production with some minor changes... i.e. change all stg to prod variables. This should likewise make it easier to 'clone' environments when you want to build out a new one.
Although not related, I should mention Oracle Enterprise Manager. We are an Oracle shop because they seem to have given us a good deal on licencing. So we get to run Oracle Enterprise Manager, which is a tool slowly becoming more and more useful. The agent also reports how our RedHat Linux hosts are behaving, network input/output, CPU utilization, memory utilization, java heap stacks. We are going to move to defining groups within that has all the targets related to an application stack. This will give our operations team the insight to see where the bottleneck might be... the Oracle Weblogic web layer, network, Oracle Service Bus, or Oracle Database performance.
Supposedly, you can add jBoss, other JMX monitoring as well to OEM. It's on our to-do list for non-Weblogic instance. We're slowly rolling OEM out.

IBM MQ performance over Secure Client

I work on a large C++ application and often get the opportunity to continue this while at home. The IBM MQ configuration is using some kind of domain group for authentication so the application won't run unless I'm connected to the office VPN via Secure Client.
Why does the application run so much slower when connected to the VPN than in the office?
As background info, I should state the application also needs a database (Oracle) etc but all of this is locally hosted, so shouldn't be affected by the change in location.
I'm using a local MQ server as well, in case that wasn't clear. Essentially, beyond the MQ domain authentication (which is at the start of the process as far as I can tell), application behaviour is dramatically reduced. A process which takes 30 minutes in the office takes >2hrs at home. I have noticed the filesystem is generally slower (although this is a SSD drive laptop). Could Clearcase / Sophos be conflicting?
Is there a 'good way' I can monitor windows to see what exactly, if anything, is slowing the machine down out of the office?
If I get to May with no useful responses I think I'll nuke this message. FYI, I tried server overflow as well but to no avail (they complained and said the question should live on stackoverflow instead!)
Well, if your internet speed is not very fast then that would explain the issue.

Advantages of running an application as a service

Sometimes I see that some applications allow themselves to be run as a service on Windows, for example Apache HTTP Server allows that. I always ran it as a regular application and never experienced any problems or limitations.
What are the advantages of this?
Is there anything that applications is allowed to do or have when it's run as a service?
What are the advantages for me as a developer, when I write a service vs. a regular application.
The biggest benefit to running an application as a service is that it will continue running even after the current user logs off (and will start running before a user logs on). Also, services normally run under a local "System" account instead of running under the login of a particular user (although services can, and often are, configured to run under a specific user login, usually dedicated to that purpose).
As a developer, you probably won't notice a lot of difference. Processes running on the desktop are usually easier to debug if something goes wrong. Normally you would set up your application to be able to run in either mode, making it both easy for development and appropriate for deployment.
One thing that comes to my mind is that a service can start before a user logs into the system. I would consider a service to be the ideal way to run a daemon that does not normally have a frontend GUI. It's harder for a user to inadvertently quit, and its out of sight and out of mind.
Services run even when no user is logged on. Applications interact with users.
If you need both, you may need to have two components, one running as a service and one interacting with users.

How can a web application synch a folder of text files on the client's PC?

I want to be able to synchronize several text files on a user's PC in real time from my web application. Basically I want a few data files on the local PC to mirror the state of a user's data in my web application so if the web application or the user's internet connection is lost he can use those data files to get some critical info (possibly using html/javascript code stored in with those files that would run in offline mode on those data files.)
I know that google gears has a lot of interesting tools for working with offline state, but I'd prefer an even simpler application in html/javascript that wouldn't be as reliant on google gears. I'd rather use google gears to just create those files and slowly keep them in synch with the web application's version of data throughout the day.
Update on answers:
PersistJS is a good suggestion I will look into, but I was hoping people would direct me towards really good Google Gears tutorials resources.
You can save data on the browser using PersistJS, which uses the best client-side persistent storage mechanism it can find, supporting:
Flash
Google Gears
HTML 5 storage specs
browser-specific extensions
cookies
When your app reconnects, you can resync. Creating and reading text files is something the browser will generally block your web site from doing.
Risking of stating the obvious; if you want to store user state locally, isn't cookies the standard way?
maybe more then one cookie will be needed, but that sounds like the simplest of ways.
You're going to need to make an ActiveX control and a FireFox plugin to get these permissions. Short of that I agree with orip try using PersistJS
You can ask the user to download a subversion client that is predefined to interface with your subversion server only. Then write your web application to interface with the subversion service from your side only.
There is a good deal of security harm associated with granting access to a user's file system so you will want to lock down all possible points of exploitation. You will want to ensure that the user cannot access the subversion server except through the client that you ask them to install. You will want to ensure the connection between the application server and the subversion server is extremely secure so that the transmission path cannot be compromised and that malicious logic that may be loaded onto the application server cannot access the subversion server. I would say to encrypt the transmission path between those two servers and put the subversion server behind the firewall separating your network DMZ. I would also suggest use a challenge/response mechanism between the application server and the subversion server to prevent malicious code from appearing to be legitimate decisions made on the application server. Also, ensure that data only flows form the application server to the subversion server in a unidirectional fashion only, because if there is malicious logic planted on your application server then any data that comes from the subversion server is compromised without even accessing that server.
you could use the File System Object FSO through javascript, however it is dependant on Microsoft as it is an ActiveX control, it would also require permissions in the browser, or perhaps a HTA (HTML Application).
http://www.webreference.com/js/column71/
Its a real security issue so most avenues are closed down inhrentley.
Inherently the web model was designed not to authorize upstream from server to client. Now things are changing slowly maybe could you do this with Websocket ?

Resources