The Java EE 7 Platform has been approved by the Java Community Process. The main objective of Java EE 7 was to enhance productivity and add support for the latest web standards, including HTML5 and Web Sockets. To simplify the development, Java EE 7 has a revised Java Message Service (JSR 343), updated dependency injections (JSR 346) and refined the managed bean model (JSR 349).
Four new specifications have been added:
- Concurrency Utilities for Java EE 1.0 (JSR 236)
- Batch Applications for the Java Platform 1.0 (JSR 352)
- Java API for WebSocket 1.0 (JSR 356)
- Java API for JSON Processing 1.0 (JSR 353)
The following specifications have been improved:
- Java Platform, Enterprise Edition 7 (JSR 342)
- Java Persistence 2.1 (JSR 338)
- JAX-RS: The Java API for RESTful Web Services 2.0 (JSR 339)
- Java Servlet 3.1 (JSR 340)
- Expression Language 3.0 (JSR 341)
- Java Message Service 2.0 (JSR 343)
- JavaServer Faces 2.2 (JSR 344)
- Enterprise JavaBeans 3.2 (JSR 345)
- Contexts and Dependency Injection for Java EE 1.1 (JSR 346)
- Bean Validation 1.1 (JSR 349)
Other JSR with maintenance changes include:
- Web Services for Java EE 1.4 (JSR 109)
- Java Authorization Service Provider Contract for Containers 1.5 (JACC 1.5) (JSR 115)
- Java Authentication Service Provider Interface for Containers 1.1 (JASPIC 1.1) (JSR 196)
- JavaServer Pages 2.3 (JSR 245)
- Common Annotations for the Java Platform 1.2 (JSR 250)
- Interceptors 1.2 (JSR 318)
- Java EE Connector Architecture 1.7 (JSR 322)
- Java Transaction API 1.2 (JSR 907)
- JavaMail 1.5 (JSR 919)
Our team has attended the global conference: IBM Impact 2013. There was plenty of great insight and information regarding Cloud Computing technologies during the conference, including PureFlex, PureApplication and PureData.
Here are some interesting session presentations:
• Future Directions in Cloud Platforms PDF
• WebSphere Application Infrastructure The Big Picture PDF
• Continuous Delivery to Your Private PaaS: The Next Era of Private Cloud PDF
• SOA as the Foundation for Cloud Adoption PDF
• Next-Gen Productivity Platform for IBM PureSystems, Web and Mobile PDF
• Exploring IBM PureApplication System Patterns of Expertise PDF
• Exploring IBM PureApplication System and IBM Workload Deployer Best Practices PDF
• Introduction to Cast Iron PDF
• Best Practices for Cast Iron Integration both in the Cloud and On Premise PDF
• WebSphere in a Virtual Cloudy World PDF
• Deploying High-Availability Patterns in PureApplication System PDF
• Why Would I Want to Put My Database in the Cloud? PDF
• Driving Continuous Delivery with IBM PureApplication Systems PDF
At the global IBM conference (Impact 2013) some new features of IBM BPM 8.5 have been introduces. The most important enhancements are listed below:
- Simplified IBM BPM installation, configuration, and administration reduces time and effort to setup, manage, and expand IBM BPM
- Improved business process outcomes by significantly enhanced support for out-of-the box and custom dashboards
- New, internal document repository to consistently store document attachments, both internally and externally, using CMIS “live” linkages between process documentation in Blueworks Live
- “live” linkages between process documentation in Blueworks Live, and corresponding IBM BPM process applications improve collaboration, communications, and change tracking between business process stakeholders
- Enhanced web service security and Simple Object Access Protocol (SOAP) header support in the IBM BPM standard runtime
- Included entitlement for IBM Worklight Enterprise Edition Environment accelerates developing IBM BPM applications on mobile devices
Cloud to Be Most Disruptive Technology of 2013: http://cloudcomputing.sys-con.com/node/2508754
A Good Reason to Learn Cloud Computing: 7M Jobs by 2015: http://cloudcomputing.sys-con.com/node/2507076
Interesting article: http://cloudcomputing.sys-con.com/node/2473811
Web services are technology neutral web based components or applications that use XML-based open standards to enable interoperability in integration. Java introduced Java API for XML Web Services (JAX-WS) for creating web services. JAX-WS API is part of the Java EE platform and supports annotations. It simplifies the development of web service providers and web service clients.
Our goal is to locally design, develop and test a web service and finally deploy it to the AWS Elastic Beanstalk. We will develop a simple web service with top-down approach meaning we will design our web service interface first and then implement it using JAX-WS. To generate Java classes from XML schemas and WSDL, we will use Apache CXF framework. We will also follow best practices while designing and developing our web service.
Let’s design generic XML schemas and a simple, generic, WS-I compliant WSDL. A good practice is to design business objects and messages that envelope business object in web service operations, separately and in different namespaces.
First, we create a library project (general project in Eclipse IDE) and design two business schemas and three messages for our operation:
Now, we can design a web service interface (WSDL) with a single “doSomething” operation with an input, output and business fault. Best practice is to use envelope messages for input, output and fault. In our case we use three messages – request, response and fault message defined above.
To ensure true interoperability and be compliant with WS-I we should follow best practices and use document/literal SOAP binding. You can read about WSDL styles here.
Now we can start with top-down development of our web service. To enable this, we must configure our environment. We use:
In Eclipse we generate a new Dynamic Web Project with configured Apache CXF and Tomcat 7.0 runtime (make sure your web service runtime is also set to Tomcat 7.0 and Apache CXF). Note we use jdk 1.6.
We add a new top-down web service, select our WSDL from the library project and let Apache CXF and wsdl2java to generate JAX-WS stubs and JAXB Java classes we can use in the implementation.
If we take a look at the generated classes we can see they are annotated with JAXB and JAX-WS annotations. We can implement our service in the MyServiceImpl.java class. In the interface we can cleary see the JAX-WS annotations.
The service endpoint is defined in the copied WSDL in the WebContent/wsdl foler. In our case the service looks like this:
To test it we deploy it locally on the Tomcat 7.0 server and use SoapUI to test it.
Now we are ready to deploy our web service on the AWS Elastic Beanstalk that automatically handles the deployment, capacity provisioning, load balancing, auto-scaling and application health monitoring. It supports Apache Tomcat 6 and 7, Microsoft IIS 7.5 and 8, PHP 5.3, Phyton, Ruby 1.8.7 and 1.9.3.
To deploy our application on the AWS Elastic Beanstalk from Eclipse we need the AWS Toolkit for Eclipse. When we configure our AWS credentials (access key ID and secret key are accessible in the AWS portal) in the AWS toolkit, we add a new Server > Amazon Web Services > AWS Elastic Beanstalk for Tomcat 7.0. We choose the region (in our case – Ireland) and configure our application and environment.
Next, we can deploy the application with specific key pair, enable SSL, assign CNAME to the server, set the application health check URL and assign the email address for notifications. In our case, we will leave all fields empty. Then we add the project on the server, start it and wait (in our case it took about 8 minutes).
After the deployment we can take a look at our AWS Managemen Conolse > Elastic Beanstalk. Here we can manage our AWS Elastic Beanstalk applications.
Our application is hosted in the AWS S3 bucket in the same region as the AWS Elastic Beanstalk application.
WSDL of our web service is located on:
Finally, we can test the web service, running on AWS Elastic Beanstalk using SoapUI.
You can download the sample here.
Oracle OpenWorld 2012 conference is in its full swing in San Francisco. More than 50.000 attendees from over 123 different countries registered for the conference and they have more than 2.500 available sessions to attend. More interesting facts about the conference can be found here: https://blogs.oracle.com/oracleopenworld/entry/oracle_openworld_by_the_numbers
The conference kicked off on Sunday, September 30, when Oracle’s CEO Larry Ellison announced several new services. To existing PaaS and SaaS offering under Oralce Cloud, a new IaaS offering is available. Oracle Cloud also got an extension called Oracle Private Cloud. It provides clients with the same functionality as in the public cloud offering, but the location for hardware is provided by clients. Hardware is owned and managed by Oracle. Following the Private Cloud announcement, Ellison announced Oracle Database 12c, as the first multitenant database. The last major announcement was Exadata X3 Database In-Memory Machine. It uses 26 terabytes of memory and is designed to store entire databases in memory. Larry also gave a talk on Tuesday’s keyword informing the public about the importance of underlying cloud infrastructures on which SaaS applications are running. He pointed out that they are the only cloud provider who is giving their customers the choice of deployment. He predicted that many on-premise customers will move to the Oracle public cloud in the future.
For other information about the Oracle Open World conference visit the conference web site: http://www.oracle.com/openworld/index.html
In parallel to the Oracle OpenWorld 2012, Java One 2012 conference is taking place. Feel free to explore its website: http://www.oracle.com/javaone/index.html
The leading technology vendors (CloudBees, Cloudsoft Corporation, Huawei, Oracle, Rackspace, Red Hat, and Software AG) have announced a Platform-as-a-Service (PaaS) management API specification. The specification is designed to ease management of applications across public and private clouds. You can read more here.
An interesting article why Cloud and SOA are the perfect mix: InfoWorld