- If java developers want to jump on cloud computing, then they have to change the path of building and deploying applications.
- Cloud is the most buzzing word in the industry today. Everyone seems to be rushing towards it. All large corporations, with deep pockets, are investing in it or utilizing it. At the same time, it looks like a puzzle for most of the developers. Let’s resolve this puzzle and learn what exactly is beneath it.
Cloud Computing Delivery Models:
Infrastructure as a Service (IaaS):
- Cloud computing vendors provide infrastructure services such as computers, storage devices, and routers to deploy your application.
- (IaaS) is a service model that delivers computer support on an outsourced basis to support project operations.
- IaaS provides servers and data centre space hardware, storage or network components. Infrastructure as a service (IaaS) is also known as hardware as a service.
- An IaaS provider grants policy-based services and are responsible for operating and maintaining the equipment it stores for a client. Clients normally pay on a per-use or utility computing basis.
- Here, mostly virtual machine based solutions where certain amount of resource is allocated to you based on your costing. Companies like Amazon, Godaddy, Microsoft, Rackspace, Bluehost etc are heading providers for IaaS.
Characteristics of IaaS include:
- Automated administrative assignments
- Dynamic scaling
- Platform virtualization
- Internet connectivity
Using IaaS for Java Development
- IaaS may not change your developer life drastically and may actually make it better. Most of us struggle to find computing resources in our IT organizations during development or testing.
- Cloud computing can make your life easier by providing a self-servicing model. If you sign up to use a public cloud, your cloud vendor provides tools to start and configure a virtual machine.
- For example, Microsoft Azure grants users to use remote desktops to connect to the virtual machine. You can prefer to use your virtual machine however you want to.
- Cloud management vendors such as VMware and BMC are providing infrastructure to control, plan and configure virtual machine instances in a private cloud environment. They provide features such as a self-service gateway to provision a new virtual device.
Platform as a Service (PaaS)
- In the PaaS models, cloud providers application platform such as middleware, database, messaging system and delivers a computing platform including operating system, programming-language execution environment, database and the webserver.
- Platform as a Service (PaaS) consumers do not manage or control the underlying cloud infrastructure including network, operating systems, servers or storage, but have authority over the deployed applications and possibly configuration settings for the application-hosting scene.
- Google App Engine, Salesforce.com’s Force.com platform, VMForce (Salesforce.com and VMware) and Microsoft’s Windows Azure platform are examples of [Paas].
Using PaaS for Java Development
- PaaS is transforming the way applications are developed and deployed. Need not to worry about the actual physical or virtual device, application server/middleware platform and database or messaging system.
- You depend upon the platform provider for these services, similar to what you depend upon with an application server or a database in your on-premise environment.
- When you start to build your application, you have to plan your target deployment platform because there is no standard similar to Java EE. If you are using PaaS then you have to use the API /SDK provided by the PaaS vendor. Next, I will examine PaaS offerings from a few popular vendor
Software as a Service (SaaS)
- SaaS is a natural evolution of software. SaaS is used in a number of common business areas including customer relationship management (CRM), accounting, document management, human resource (HR) management, service desk management, content administration and collaboration.
- A SaaS provider grants software/application hosted in the cloud. Some examples of Saas are Workday HRMS, GoogleApps, Salesforce.com CRM and BMC’s RemedyForce.
Enterprise services such as
- Workflow management,
- Supply chain
- Digital signature
- Desktop software
- Customer relationship management (CRM)
- Financial management
- Geospatial and search
Web 2.0 applications such as
- metadata control
- social networking
- wiki assistance and portal services.
Using SaaS for Java Development
- If your company is choosing SaaS, then end users directly use the application as a service and hence there is no IT infrastructure required on premise. For example, your customer may be using CRM from Salesforce.com, a HRMS system from Workday or a help desk system from BMC Software.
- When using SaaS, there may be some customization required to meet your organization’s needs and as a developer you may have to use the platform made available by the SaaS vendor. For example, have to use Force.com, Apex and VisualForce to customize Salesforce.com’s CRM.
- There may be various opportunities for developers to unite new SaaS applications with existing systems based on the size of their businesses. You have to note that an enterprise can’t move their applications to SaaS or cloud-based solutions overnight.
- An organization adopt Salesforce.com CRM to repair their old CRM system, but they may have to unite it with their existing applications such as Oracle eBusiness Suite. The SaaS vendors provides both SOAP and REST-based Web services to help customers combine with their existing applications. For example, Use JAX-WS 2.1 to integrate your existing applications with Salesforce.com.
Types of Cloud: Private Vs Public :
A cloud is called a public cloud when the services are delivered over a network that is open for public use. When Cloud infrastructure is available to everyone and is shared by a large number of customers, then it is referred to as a public cloud. Generally, public cloud service providers like Microsoft, Amazon AWS and Google own and manage the infrastructure at their data station and access is frequently via the Internet.
Private cloud is cloud infrastructure operated solely for a single organization, operated internally or by a third-party. This needs a significant level of commitment to virtualize the complete business environment. If improve business capabilities, but every step in the project builds security issues that must be addressed to stop grave vulnerabilities.