Java non-event monitoring - java

I work for a company that has a java based eCommerce site. We have a new initiative to monitor when things aren't happening when they should be, such as guests not signing in and lack of completed orders. For example, we expect x amount of orders at y time of day and when they are below the standard deviation we want to know about this through an alerting system. We are already monitoring (the solutions we use are below) the health of the application and have a pulse on exceptions being thrown. We are looking to catch when the app appears to be in good working order, but events we expect to be triggered aren't happening. For example - our credit card authorizer could start declining all of the credit authorizing attempts so no orders are coming through, etc.
We are capable of building this ourselves, probably with Drools, but would prefer to find an out of the box solution. In our research we have not found anything that really fits what we are looking for and didn't find the functionality in we are already using. If any of the monitoring solutions we already use are capable of delivering this functionality that would be the route we would prefer.
dynaTrace
Truesite
Hyperic
Coremetrics analytics
Thank you for your help and time!

If you already have dynatrace then go with it. It can do all of what you are looking for. It can monitor your Credit Card Service and alert you in case reponse time goes down or in case it throws errors. It goes much broader than that use case - it actually tells you which end users are affected - whether this is just for certain types of users (from a certain region, from a certain type of device, ...) or if it is for everyone.
If you have questions on how to use dynatrace for your use cases I suggest you put a question on the dynatrace community forum - they are pretty active over there: https://community.compuwareapm.com/community/display/DTFORUM/dynaTrace+Forums+Home
You can also watch some of the video tutorials on youtube to make yourself more familiar with its capabilities: http://bit.ly/dttutorials

Related

newrelic - how to show more details for overview dashboard on JVM

I have a java application with newrelic agent. The overview dashboard displays "Web transactions response time" chart, but it does not break it down any further - just total time.
How to make it be more specific - how to divide whole "JVM" into several "subevents"?
The chart I'm referring to:
And here's how it could look like (random screen from the web):
In order to see the information you are looking for like we see in the screenshots you helpfully provided you'll need to do some configuration on your end. The Java agent can pick up the information you're looking for but you'll need to tell it to do so.
To give you a few specific examples:
Database: Provided you're using a supported database, we should get calls made to the database and make that part of the transaction. (See Java compatibility JDBC ) You would then see those reflected in the chart.
Web External: Calls you make to an outside service will show up if they are properly instrumented. You can find out more about capturing these calls from this KB document and this one.
Request queueing This is what happens before the request actually reaches your application (which is where the agent lives). You can learn more about this functionality in this KB document
What you are currently seeing in the graph is the remainder of the time the transaction took after the request was queued, any database or external calls were made and responses received.
If you need clarification or have further questions, please don't hesitate to ask.
Cheers,
Adrienne Kincaid | Tech Support Engineer | New Relic, Inc

How to input data programatically into a system that puts up a form but doesnt have data upload features

I'm not sure if this question is entirely appropriate for SO but it seemed to work better here than in SuperUser so apologies if its in the wrong place. Happy to move it if so.
I'm trying to figure out how I'd automate the input of data into a system that didn't accept data uploads, but rather used forms put up on a screen. Use cases are e.g. where an enterprise wide system does accept uploads but the user lacks admin rights to fill in data she is required to populate, or with very old and specialized legacy systems where the functionality just doesn't exist and a serial input-review-rollback-commit cycle is enforced.
I'm not a programmer by trade so this is partly thought experiment but also to answer a question that has arisen at a business that I'm involved in.
I'm reasonably familiar with python and java if libraries for keyboard emulation exist but would be happy interpreting a pseudo code response too.
Responses that point to existing providers of such functionality that is embeddable or that tell me if I'm barking up the wrong tree also gratefully accepted.
Once again apologies as I know this isnt intuitively the best spot for this. Please do point me to a better location if you know of one.
Thanks
Possible solutions exist but they're all pretty bad
Is it a desktop application or a web application? If it's a web application you can use ghost.py to automate the interaction and submission of new records/entries. This work will be a glorious bundle of fun for the lucky code jockey who draws the short straw.
If it's a desktop application, it will be a great deal more difficult. Is it on Windows? Linux? MacOSX? Is the software written in Java? Using the Swing toolkit? AWT? SWT?
If it is a native Windows application you might be able to use Autohotkey to automate desktop interaction. This can be as basic as automatic clicks in pre-recorded parts of the screen, automating TAB keypresses to move around the input cells and reading input text from a data file and writing that out into the input cells. This will be even more entertaining than the web-solution mentioned earlier: truly the necessary ingredients for an authentic war story worthy of the annals of internet lore.
This is likely to be a lot of intricate work, error-prone, and subject to failure in the future if the UI of the software is changed; and such changes are very likely. It would be a lot easier to help if you could add more detail to the question.
Before embarking down this road, if I were you I would beg and plead with the software vendor to either provide me with an upload API; I would even offer to pay the vendor to upload my data for me. I cannot imagine either of the solutions I mentioned will be any cheaper, unless the work time of your developers has no value.
Good luck.

How to secure my app if the mobile device is stolen/lost

I am making a secure application which should not run if the mobile device is stolen/lost, or the sim card is changed. If I programatically uninstall my app it prompts user whether she wants to uninstall it or not. I want this thing in a hidden way.
One more thing is to keep a file in assets/raw folder and when sim card is changed i must remove that file and my app will not run without that file. But deleting the files from both folders is not possible on run time.
All suggestions highly appreciated!
I know about password protection, cryptography, Pro-Guard, Dex-Guard, keep minimum functionality on phone. Guys I must need a way to remove the App! Please help on that point
Thankx in advance!
One more secure solution is to run your app on some Android x86 servers and to pipe in only the user interface to the phone.
Disclaimer: I've never used those guys, so I don't know how good they are. I just saw their lightning talk presentation at the most recent AnDevCon in San Francisco, and I just thought it was a clever idea.
One added advantage that this solution provides is that your employee's personal content doesn't get mixed in with the content of your company's. In hindsight, it's an old solution that has worked quite well for PCs and remote workers.
I'm not sure if this is exactly what you are asking for, but it may address your concerns. In general, the big concern with a stolen phone would be data. If you are concerned about someone else running your application, it seems that authentication should address that. A secondary concern is that someone could de-compile your code to learn details that could lead to exploitation. So here are 2 suggestions that address these concerns.
Use Progaurd to obfuscate your code. That way if the device is rooted and the APK is obtained, it cannot be de-complied (at least not into easily understandable code). Reference.
If you store any data in a database on the device, be sure to encrypt it. SQLCipher is a free library that will allow you to do so. Reference.
Answering some other interesting comments I was pinged about:
A couple of things:
I am that guy who gave the lightning talk in AnDevCon Stephan Branczyk mentioned, but I'm not a heavy stackoverflow user so I do not have the privilege to reply. 50 Upvotes for this comment and I may be able to answer inline :)
I will however give my insights on this, so if you are "paranoid" about security and want to read more about it from the founder of a "paranoid security vendor" - you can continue reading it.
Otherwise goto 7.
It is very important to understand that there is no catch-all solution - so do not be naive about it. All Android security best practices are great - but up to some point, as your Operating System (ROM, MOD,...) can, and will be compromised. I do not want anyone to panic - but there is NO perfect solution.
Stephan is right about Nubo's security design concept - if you violate the terms - your are out of the game. If you're out of network, or doing something suspicious - well - the device is not in control, no matter what. We aim towards satisfying both the user in their personal space, and the IT managers in the remote Android space.
It is very important for me to say clarify it is NOT a remote desktop. It's not even close to it - we have developed a Display protocol for Android from scratch - intended for the mobile environment. This is nothing like Remote Desktop/X11/VNC/... for "PC".
Should you need a "perfect" solution, you need to have a "trusted" device, which involves hard-core hardware support + secure bootloader + block verification chains etc. You can learn from the ChromeOS project if you are interested but I assume you are not willing to take it that far.
Answering the original answer: It depends on what phone. If you want
to use the PackageManager - you need your app to have a System
certificate, which means that unless you bundle it with your own
device, or do other tricky stuff I will not get into in this post -
you can't. What you can do is to use the BIND_DEVICE_ADMIN permission in your manifest,
and essentially register your app as an administrator (Something like MDM, etc.). Then, with some more trickery stuff you can handle your problem on the nominal case. You could bundle another app with that capability, and just invoke it from your app if you want to be on the very safe side.
*This post is already way too long and referring to too many questions so if you have further questions please go ahead and ask. I will try to reply before 2014...
step 1 : write a process to run in background
step 2 : make the process be active when cell starts
step 3 : check for internet connection or balance
step 4 : if internet available mail yourself phone specific details like IMEI ,MAC ,IP whatever you think is important ,
step 5 : locating GPS location would be very helpful
step 7 : recieve these mails from the mail id registered in your app

Block website for automated accesses

My friend and I just discussed about how to spam my page the best way. He writes a Java-Program which changes the proxy and sets the user agent new with every call on my site. Then we asked us, if it is somehow possible to prevent a website from accesses which are done by a non-real visitor. Is this possible? How?
is (it) somehow possible to prevent a website from accesses which are done by a non-real visitor
No. Servers are interfacing with other machines, not "real visitors". So they never can know. It's just that they are machines and we are humans.
You can try to make your application smarter on guessing whether a request to it was originally triggered by a human or not, however strictly spoken this is not possible in an automated fashion, you will always have defects / gaps in the detection.
If it's simply filling in a comment or something you might want to check out
Akismet service
Captcha
Disqus integration

Creating a knowledge base on top of provided webpages as a feed

I have some issues with my parts of final year projects. We are implementing a plagiarism detection framework. I'm working on internet sources detection part. Currently my internet search algorithm is completed. But I need to enhance it so that internet search delay is reduced.
My idea is like this:
First user is prompt to insert some web links as the initial knowledge feed for the system.
Then it crawl through internet and expand it's knowledge
Once the knowledge is fetch System don't need to query internet again. Can someone provide me some guidance to implement it? We are using Java. But any abstract detail will surely help me.
if the server side programming is you hand then you can manage a tabel having a boolean in database which shows whether the details were read before. every time your client connects to server, it will check the boolean first and if boolean was set false then it will mean that there is a need to send updates to client other wise no updates will be sent,
the boolean will become true every time when client downloads any data from server and will become false when ever the database is updated
I'm not quite sure that I understand what you're asking. Anyway:
if you're looking for a Java Web crawler, then you I recommend that you read this question
if you're looking for Java libraries to build a knowledge base (KB), then it really depends on (1) what kind of properties your KB should have, and (2) what kind of reasoning capabilities you expect from your KB. One option is to use the Jena framework, but this requires that you're comfortable with Semantic Web formalisms.
Good luck!

Categories