Saturday, 12 October 2013

LimeLight on Embedded Java

This article throws more light on the embedded aspect of java . If you are passionate java developer I'm sure this will help you understand embedded concepts more. So you’re a regular Java developer. You have done years of service developing apps on the server side and get your kicks with any number of server- and client-side APIs. You might have even developed some MIDlets for the Java ME environment. You think you’ve done it all. But suddenly, everyone seems to be talking about a new technology: embedded Java. Can Java really go so small? You thought that the era of resource-constrained programming was over. With the advances in the architecture of Android, iPhone, and Java ME devices, lack of memory was no longer an issue. Suddenly, lack of resources is a reason to celebrate. As you might have guessed, we are not talking about consumer devices (at least, not direct-toconsumer devices). We are talking about devices such as the Raspberry Pi and other microcontrollers with which you can manipulate circuit boards and small resource systems. Such microdevices allow you to manipulate and work directly with the onboard circuitry. Embedded versions of Java use the same Java technology that you work with now—except the embedded versions are bite size. For example, Oracle Java ME Embedded has a footprint smaller than that of Java ME, and it is targeted at devices that power set-top boxes, vending machines, sensors, or, well, microcontrollers. Java can be defined and adapted to different devices using either Oracle Java ME Embedded or Oracle Java SE Embedded. In this article, we look at how to do that and we look at how Oracle Java ME Embedded technologies are adapted to the embedded environment. Oracle Java ME Embedded is defined by the  Information Module Profile-Next Generation (IMP-NG) specification (JSR 228). (There is a separate specification for Oracle Java SE Embedded.)As you might have guessed, this JSR is an extension of the really old JSR 195, which was—not surprisingly— called the IMP specification. That JSR never got off the ground, but adding the next generation  bit has done wonders. Or it could be that the time is right for the new specification. An Information Module Profile is a strict subset of the Mobile Information Device Profile (MIDP), which you are probably well acquainted with. So, if we were creating MIDlets using MIDP, we must define a new name for the applications that we create with IMP-NG.

Thursday, 10 October 2013

Java developers in need of cloud computing

Cloud Computing is now an emerging field and let us discuss on why java developer’s should focus on cloud computing. First, it’s important to appreciate the wide scope of the term cloud computing. Obviously, we talk about the public cloud, including Amazon EC2 or Microsoft Azure, not to mention Oracle’s own public cloud. But cloud computing is also changing the way that we manage internal data centers what we refer to as the private cloud. In other words, the very same concepts, efficiencies, and capabilities that the public cloud brought us are now available inside the data center—for example, basic tenets such as self-service and being able to get a development, staging, or production environment for an application in minutes—without going through any significant paperwork or human workflow. On top of that, the elasticity of the cloud means that we’re no longer constrained by a one-size-fits-all model.  Applications must be built so that they can dynamically scale out and dynamically balance the load across multiple servers. This means that when servers are added while an application is running, there’s no interruption of service. To accomplish this, it’s good programming practice to always assume that an application or the components of an application are running in a scaled environment, which means many previous assumptions no longer apply. I’m talking about things such as file  systems—which could be either local or shared and could trip up developers either way—or global Java objects on the heap, which won’t actually be “global” when the application is scaled out. Developers must also understand whether the addition of resources will
actually enable an application to scale out effectively. In other words, just because an application runs correctly when you add additional servers, that doesn’t mean it will actually support more transactions or users. So, you need to explicitly design into the scaleout model the ability for the application to scale as close to linearly as possible. Obviously, data caching is a huge part of this, as is minimizing the amount of information that has to be shared across servers, as is minimizing contention on shared resources such as database systems. Finally, the application needs to be understood in terms of the metrics of elasticity: when are additional resources actually needed, and when is it safe for resources to be taken away? So, we  need to know when we  need to scale out the application,  which involves knowing what to monitor.

Wednesday, 9 October 2013

Oracle Java Cloud Service

Let us discuss some more features which induce the user in using the oracle's platform as a serviceA simplistic explanation of Oracle Java Cloud Service is that it’s Oracle WebLogic Server integrated with Oracle Database. So developing and deploying on Oracle Java Cloud Service is akin to developing and deploying on Oracle WebLogic Server and using Oracle Database for persistence. Oracle Java Cloud Service runs Oracle WebLogic Server Release 10.3.6, which is the latest version in the Oracle WebLogic Server 11g line. Oracle Java Cloud Service drastically reduces the complexity associated with the deployment and maintenance of enterprise Java applications. Oracle Java Cloud Service supports a mix of Java EE 5, Java EE 6, and Oracle WebLogic  Server capabilities. It supports all the commonly used Java technologies such as Servlets, JSP, JavaServer Faces (JSF), Enterprise JavaBeans (EJB) Java Persistence
API (JPA), JAX-RS, JAX-WS, and more.However, while Servlet version 2.5 (Java EE 5) is supported, there’s support for JSF 2 (Java EE 6). Also, note that today Oracle Java Cloud Service supports Java 6 APIs but not Java 7 APIs. So Oracle Java Cloud Service is more of a Java EE mixand- match and not the same as having a full Java EE 5 or Java EE 6 server on the cloud. Beyond the standard Java EE specifications, Oracle Java Cloud Service supports the deployment of applications that make use of Oracle WebLogic Server– specific extensions as well as Oracle Application Development Framework constructs. One of the highlights of Oracle Java Cloud Service is that, unlike some other Java PaaS vendors, it puts great emphasis on being a standardsbased solution. So Oracle Java Cloud Service does not force users to use any proprietary APIs. You can develop and deploy on Oracle Java Cloud Service while sticking purely to the relevant Java EE specification. Oracle Java Cloud Service is easy to get started with for anyone with a Java EE background who is familiar with deploying applications on an application server. Considering that it is a Java-only cloud setup, there’s also nothing that  would seem strange or confusing to a Java EE developer. I also like the fact that, unlike with some vendors, Oracle Java Cloud Service does not have its own jargon for how it is priced and packaged. The Oracle Java Cloud Service Software Development Kit (SDK) provides tools to help you develop, deploy, and manage your applications.Note that this SDK is not meant to provide classes and libraries that you have to use in your applications. It merely consists of tools and plug-ins that you can choose to use or not use. Oracle Java Cloud Service offers rich integration with popular Java IDEs, suchas NetBeans, Eclipse, and Oracle JDeveloper, all of which leverage the SDK “under the hood” to interact with Oracle Java Cloud Service. The SDK also includes Ant tasks and Maven plug-ins for  interacting with your Oracle Java Cloud Service instances.

Friday, 4 October 2013

Oracle's new cloud services.

Oracle has started several new cloud services today including java as a service.Oracle’s cloud push began in 2011, and since then Oracle has launched several cloud solutions that support more than 25 million cloud users worldwide. Oracle Java Cloud Service and Oracle Database Cloud Service have been Oracle’s most visible PaaS solutions so far. Oracle’s other PaaS offerings are Oracle Developer Cloud Service, Oracle
Storage Cloud Service, and Oracle Messaging Cloud Service. Oracle Developer Cloud Service simplifies development with an automatically provisioned development platform that supports the complete
development lifecycle. Oracle Storage Cloud Service enables businesses to store and manage digital content in the cloud. Oracle Messaging Cloud Service provides an infrastructure that enables communication between software components by sending and receiving messages via a single messaging API, establishing a dynamic, automated business workflow environment.

Thursday, 3 October 2013

Key Considerations for platform as a service.

Platform as a service is now an emerging area and below are the key considerations while providing java as a software development as a service. There’s a fair bit of overlap between the features that available cloud services offer, but the key points to consider from a software development platform point of view are as follows:
■Costs and pricing strategies vary widely across vendors. Some charge based on fine-grained usage details, while others provide duration-based subscriptions. You need to evaluate whether you would like to
go with a subscription or with a pay-as-you-go model.
■ Are the supported technologies and features in line with your requirements? Is your chosen framework officially supported by the cloud vendor? Which version is supported?
■Is the vendor sticking to standard technologies, or would you need to write custom, vendorspecific code?
■ Considering that you are putting your precious application and data on the vendor’s hardware, you want to be sure about the vendor’s credentials and ability to be up and running, say, 10 years from now.
■With PaaS, you do not have access to the actual hardware setup or micro details about  hardware performance. So you need to evaluate the administration dashboard carefully,  because it’s the primary source of information about the service and about how an application is performing.
■ Is the PaaS solution integrated with your favorite Java integrated development environments (IDEs)?
■ Ease of use is quite important because some cloud services can be rather confusing and, at times, even intimidating. I found this especially true with services that support not just Java but many other technologies as well.
■Most cloud vendors support at least one SQL data store and, in
some cases, a NoSQL data store as well. You need to examine whether these work for you.
■ Is the vendor offering a closed stack that would lock you in? Would it be possible for you to migrate to a new vendor if the need arises?
■ While some vendors are focused Java cloud players, there are others that support multiple technologies. This seems to affect the features, the documentation, the ease of use, and the overall priority areas for the
service. Some clouds offer Java support, but they just don’t come across like they are talking about Java.

How difficult would it be to build a team capable of developing and deploying for a particular PaaS?

Java PaaS

PaaS is about renting a software platform and running a custom business application on it. The promise of PaaS is to let developers focus on the business application and not have to worry about the hardware or the core software platform. Gartner famously stated that 2011 will be the year of PaaS. However, my many unscientific surveys at conferences in 2011 and 2012 showed that while there was great interest and experimentation happening with PaaS, actual adoption was pretty low. This was due to multiple factors, such as PaaS offerings not being mature enough, developer uncertainty, and managers being unwilling to change to a new shared model. Having said that, the various PaaS offerings have matured rapidly over the past year or so. Many now provide services comparable to what developers have been used to in on-premises Java EE environments. Now, some vendors don’t just provide a deployment environment; they even provide a rich development environment on the cloud. There’s healthy competition building up in this space, which should be good news for developers and customers. So while Java PaaS might not yet be the norm, adoption looks certain to keep rising at an ever-increasing pace.

Tuesday, 1 October 2013

Java - Platform as a Service

Java EE has been the primary software platform for enterprise and server-side development for more than a decade, and it is increasingly the platform of choice on the cloud. In this article, we will look at the Java cloud space and how you can go about choosing a Java platform-as-a-service (PaaS) provider, and then take a closer look at Oracle Java Cloud Service. Only a few years back, when someone discussed a Java EE project, it was presumed that the project would also require setting up the requisite hardware infrastructure and having a team to manage and monitor the setup. Java EE was never great at shared hosting, but nobody seemed to care much about that, because shared hosting was almost considered below the dignity of Java EE. It used to be blasphemous for an architect to suggest that a Java EE application could be run in a shared environment. The cloud wave turned this approach on its head. Not only is a shared environment now being considered, it is actually fashionable to be talking about running an application in a shared  environment on the cloud. Java as yet has no cloud-centric specifications in place, so the Java cloud space isn’t as standardized as developers might expect. Yet we find that Java is being used in all kinds of cloud deployments, especially PaaS offerings and software-as-aservice (SaaS) solutions built with Java.