Clouds: Amazon, Google, Microsoft - What kind of frameworks can I use? - java

I need to develop some simple application like demo and this demo should connect to 3 clouds S3, Google Storage and Azure. This project is java based, Can I use some frameworks for it?
I've looked to the jclouds, native s3 and spring data and decided to ask this question ...
Thanks

JClouds would seem top be a good choice here, providing a consistent API to interact with the various cloud services. Like any abstraction, it's probably not as functional as any of the "native" APIs, but it's under very active development, so it'll improve.
I suggest you pick one and try it.

Related

designing android app backend

If I need to design an entire android app and host my app on google play, and my users need to get real-time data, how would I go about designing the backend.
I learnt few things about views, view groups, layouts, event listeners in java, programming in latest android studio. But I'm just in the learning phase.
Is there any other better IDE. Can we program in atom, does it has any package that can emulate android phones.
Mainly I'm concerned about the DB choice, frontend-backend communication. Is there any service which is open source for hosting in the cloud that has a great uptime and supporting easy scaling. Of course, I can google each and everything, but those will be on different perspectives. I just wanted some answer which is tailor made and easy to understand.
This question could definitely result in a myriad of answers and approaches. But, in terms of something straightforward to maintain (considering you have Go tagged in the question) I would recommend checking out the following:
For using Go, I have found Echo to be a pretty awesome framework to bootstrap Go web services. It offers a very flexible and performant router that uses a middleware design pattern, as well as a lot of other nice features.
For hosting and maintaining your web services, you should look into using Heroku. They have a pretty amazing platform that officially supports Go deployments. You can start for free, and then scale up your services pretty effortlessly. They also offer myriad of third party integrations for monitoring, logging, emails, sms, and databases.
In terms of databases, that one can't be answered really without a significant amount of knowledge around what you are doing with your data - but using Heroku, you can spin up a PostGres SQL instance, MongoDB, and Redis for free. For what you are doing it sounds like a combination of the above might be useful for your needs.
In terms of Android development - I have not found anything better than Android Studio. It's free, provides all the emulators you could ever need, and in general all the features you would want out of an IDE to do Android right, plus it is maintained by Google.
Good luck!

What type of programs or samples I should learn for Amazon Web Services?

I have downloaded Amazon Web Services Java SDK, and signed up for access key. Now my questions are:
What theoretical or Amazon Web Services related things should I know? (And from where?)
What sort of Apps or Programs should I try out since API is at my disposal? (And from where I can get some problems or sample examples?)
Aim is to learn AWS so I can develop my self as commercial programmer for AWS.
Amazon offers a 1 week training in Seattle where they go through most of their APIs and give you code examples and use cases. All (or mosts) examples are in Java and includes real-case application code.
I have been to one of these and the trainer had EXTREMELY extensive knowledge of all the APIs and how to use them. It is really a fast track to understanding what are the numerous services of amazon and how they integrate.
Otherwise, there are a bunch of whitepapers: http://aws.amazon.com/whitepapers/
Regards,
Vincent Giguère

Alternatives of Google App Engine + Java

If I develop my web application on GAE using Java, in future would I have easy migration opportunities, or will I stuck to GAE?
What can be other alternatives of Google App Engine + Java?
Not:
An GAE you are pretty much developing inside a Google managed Container - against restricted Java and other APIs. This is the PaaS - Platform As A Service approach to cloud computing. This would be similar to the Salesforce, Facebook etc approach.
However for most flexibility you should look at IaaS - Infrastructure As A Service Cloud platforms (like Amazon/Rackspace/etc..) where you have most flexibility.
We currently use both Rackspace and Amazon and have machines as our elastic containers on top of which we can deploy anything we want (custom Ubuntu image etc..)
With some care, you can write a Java app such that it will work both on and off App Engine. A better option, though, would be to use AppScale if you choose to leave App Engine. AppScale provides an App Engine compatible environment on your own hardware.
right now most viable competitor of GAE is Windows Azure. You can easily build a site/application in Azure without getting dependent on Azure framework. There is /very/ little from Azure APIs that you have to deal with(mostly for diagnostics). If you decide to use other Azure services, like table storage services, you'll want to get real good at abstracting yourself away from the table storage to make your code portable. Dealing with SQL Azure (at least from utilization perspective) is no different then using SQL Server and you would need to make a simple abstraction from actual rdbms implementation (most data access libraries do that anyway) to later utilize MySQL or Oracle, etc.
You will probably be stuck to GAE (or a very similar platform you could replicate on your own).
Alternatives: Amazon EC2? Windows Azure?
Using GAE requires you to design the app around their system so migration could require a rewrite. Certainly their NoSQL db at the least. Some people are saying Amazon EC2 is a better bet, but I haven't tried it yet. Also I prefer python-based stuff like Django, rather than Java stuff. Try the pyjamas client-side toolkit also.

Android communicating with servers

I come from a .Net background and recently x-training to java.
I wanted to develop an Android application that required simple functionality to communicate with a server. For example, functionality such as post a username/score to a website (or service), or request information such as top 10 scores.
What type of communications should I focus on? What is the common technology to use? Does Java have the equivalent of WCF? Or does it have some sort of simple web service? Can web services be secured with authentication?
Ive heard other references to xml-rpc. Should this be something I should look into?
Depends on what your server is running. I usually just use URLs to fetch and/or send data and then parse the response with whatever is suited (such as org.json for JSON or org.w3c.dom for XML or HTML).
Java has the equivalent of WCF in the fact that you can develop Web Services with Java and use frameworks to develop such services to benefit from different features. The format which you send messages to these web services I think is what you are asking as such you literally can use any format you want (Dependent on support of such format by the service). You will find libraries for many of the well known formats like SOAP (KSOAP2), REST (JSON,XML) etc... Since the transport of these can be over HTTP, and you get a library in android to develop such services over HTTP you have quite a choice.
For Reference:
http://ksoap2.sourceforge.net/
https://metro.dev.java.net/
http://msdn.microsoft.com/en-us/netframework/cc950529.aspx
Hope this helps,
Andrew
Without knowing all of your requirements but assuming it's gaming-related, you might be better served trying one of the Android gaming APIs rather than trying to roll-your-own networking solution. Scoreloop and OpenFeint, the two I am currently considering for my own Android game, both offer Android APIs that make it fairly straight-forward for posting and retrieving high-scores, in addition to other game-related features such as challenges and social network integration.
The advantage of this option is that you don't have to worry about how the phone talks to the server nor do you have to host the server itself - they have already solved those problems for you - and they're free which makes it great for us indie developers.

Microblogging engine in Java

Is anybody aware of any open source Twitter/Identica-like microblogging engines written in Java? My basic requirements are that users should be able to
Write short comments on some entities in the web application
Customize privacy features, like "do not show name/email"
Like/dislike comments
and optionally, track user locations.
The ones I've found so far were written in ASP.net (Yonkly), PHP (StatusNet, Floopo, Jisko) or Python (Jaiku).
You could start with the Atmosphere Framework with its JQuery plugin to implement Comet techniques.
It's a few years after the question, granted. I thought it might not hurt to add a comment, though, here in the knowledge web.
Though it's not per se a matter of conventional microblogging, but Apache Roller provides a conventional blogging framework and API, in Java - in a sort of superset of patterns in microblogging. FYI, documentation for Roller 5.0.1 is here - there may've been a bad link, at the site...
As far as measuring "Like" feedback, there are services such as ShareThis, such that one could integrate with Roller, at the presentation level - perhaps, using Wicket or Vaadin, at that same application level. Granted, it's not a closely integrated feedback system that would make for - may not provide a lot of close integration between the content presentation and the visitor feedback components, if one's using a local API for the content management and social service like ShareThis for the content feedback - but ShareThis, in particular, does integrate with popular social networking services, and it's available. Hope it helps!
Another "years later" answer, but I had the same issue and created a service around it, http://www.collabinate.com. I would be interested to know if it would meet the needs of your use case.

Categories