Thứ Năm, 13 tháng 3, 2014


From  :

Thứ Tư, 12 tháng 2, 2014

Tomcat clutster

Thứ Tư, 2 tháng 10, 2013

JavaOne 2013: Pairing REST and JSON to build APIs

Building a Web-accessible application programming interface is easy, but making one that performs well and doesn't break isn't, according to JavaOne 2013 conferencespeaker Les Hazlewood, chief technology officer of Stormpath. Back at JavaOne by popular demand, Hazlewood's presentation on Tuesday demonstrated best practices for building Beautiful REST + JSON APIs with JAX-RS and Jersey.
“A good Representational State Transfer [REST] API [application programming interface] is simple on the surface, even if the back end is more complicated," said Hazlewood in an interview just prior to his presentation. An API focuses on collections of things and how to represent individual things. Reduce API to collections and search against all books or published items purchased, and you will have an elegant solution that's intuitive and not overly complex.
Les HazlewoodLes Hazlewood
In this Q&A, Hazlewood drills down into API best practices, the pros and cons of REST APIs and JavaScript Object Notation(JSON), and more.

Why should Java developers explore using REST APIs?
Les HazlewoodREST as an architectural style builds on a top of much [of] what exists already in HTTP. How you exchange data, the semantics of how you create, read, update and delete data is always built into the HTTP specification. REST codifies how certain scenarios should work when exchanges creating read-delete happen across disparate machines.
That's mostly what REST is about; codifying how these actions are happening across disparate machines. Because it's standing on HTTP, I can have a Linux machine, which can talk to a Windows machine, which can talk to a Macintosh machine. It's not platform- or vendor-specific. [It is] because of the ubiquity of HTTP it follows that you have ubiquity with REST. Everything -- PythonPHPJava and C# -- can all work with REST.
REST is deceivingly simple on all fronts. Everyone thinks they understand HTTP. It's just this thing your Web browser speaks. They know the HTTP protocol, what a GIT is and what a POST is because they've been filling out Web forms for years. So because REST just uses HTTP, developers think it's simple, but REST services today are more and more not XML, which is traditional with SOAP.
What is difficult about working with REST?
Hazlewood: That is the reason why my presentation exists. REST is an architectural style, but methodologies using it haven't been formalized into a standard or specification. With style comes interpretation. How I think it should function can be slightly different from the way you think it should function. Because it is not a spec that machines can replicate, there's the human element that introduces ambiguity. That loophole [means] getting things [to be] easy to use or right is not always simple. REST and JSON are simple. HTTP is simple. But making sure you pair those two together to solve particular problems in a way that's intuitive is not codified anywhere.
What are other reasons why you recommend pairing JSON with REST in your JavaOne presentation?
Hazlewood: REST and JSON offer a more human-friendly way of representing data; data that doesn't look as congested as XML; that's easier to scan visually with your eyes. That has been the real reason for wider adoption of JSON.
JSON is a grammar specification. Basically strings, numbers, null, not null and that's about it. It allows you -- in a simple format -- to represent complex things with a minimal amount of metadata. It's so simple it can be used in many different contexts. It's easy for machines to parse. It's easy for people to read.
JavaScript (JS) is one of the most dominant programming languages in the world. Even if the main app is built in Java or Python or C#, odds [are] high [that] if you have a webpage, or a visual user interface, there's going to be some JavaScript. JSON is compatible with JS. Anyone who has programming experience with JS will find it easy to understand JSON. If you already use JS, it's easy to integrate with an API. If an API returns JSON and you're already writing JS, then your programming language already knows how to interpret data that comes back from the server. JSON leverages JS, which is hugely popular already, to be used for data exchange, not just [for] writing software.
When is using JSON a good choice and when is it a bad choice?
Hazlewood: Clearly, XML is better at structure data representation. There's more information inside of an XML document, and types can be presented a bit more effectively in an XML document. XML is very well-suited for data exchange, but ease of use is swaying developers. JSON is easier to scan with their eyes. XML is definitely more complex by design. JSON is a very simple grammar. Talking about language design, JSON is built off only a very few core elements, and everything is built up from there. Because of its simplicity, it's very easy to manipulate and to understand. JSON is not as well-suited for machines consuming information compared to XML. XML does a better job for machines.

Thứ Sáu, 24 tháng 5, 2013

Programmer picks: 7 must-try mobile dev tools

Prototyping, proof-of-concept, and cross-platform tools are generating buzz among mobile developers

AppGyver features tools for rapid development, including Prototyper, for prototyping, and Steroids, for developing PhoneGapp apps.
"AppGyver offers great tools for both app development and concepting. We use AppGyver Prototyper to mock up and test new ideas within the team and with consumers," says Ari Tulla, CEO at BetterDoctor, a service that helps people find the right doctor to suit their needs. "AppGyver Steroids is our selected tool for iPhone development, and the team has been very happy with the outcome. Steroids makes it easy to develop native mobile apps with familiar Web development technologies, which is a lot easier than using fully native code. AppGyver Steroids offers the key native components today, but there are still some specific components that are still missing."

Appscend enables cross-platform development in the cloud and features application management, analytics, and push messaging. An XML markup structure, IgniteMarkup, enables application deployment from a single code base.
"Appscend is a smart company, in my view," says developer Oystein Svarod of digital marketing company Svarod Direct. Svarod has built "sketch" applications via Appscend for pitching to clients. Appscend CEO Sebastian Vaduca "has great patience in explaining the platform to a creative guy whose ambition is to put creativity and super content into the apps."

EclipseSource Tabris
Tabris is a Java toolkit for building cross-platform native mobile apps. Leveraging the Eclipse RAP (Remote Application Platform), Android and iOS apps can be written from a single code base.
Germany-based Thieme Compliance tapped Tabris to build patient education software for iOS, Android, and Windows 8. "One of our aims is to program code once for different platforms. We picked EclipseSource to develop software using Eclipse and built a Web client and desktop client based on RAP and RCP [Rich Client Platform] using the same code," says Thomas Pettinger, Thieme project manager. "Using Tabris, we have to think a little more about how to design for all three platforms, but in the end, we could use a single code base with a few small adjustments."

DreamFactory Services Platform
This open source software is intended to simplify development, providing a back end for HTML5 application development. Developers can build apps without any server-side software development, and services are delivered for NoSQL, BLOB storage, and user management. DreamFactory Services Platform can be installed on any data center or cloud computer.
Modus Createhas used DreamFactory to rebuild the back end of a corporate address book application that also leveraged the Sencha Touch platform on the front end. "We're able to quickly [deploy] an app in the cloud that had needed everyone's contact information to be updated on the fly," CEO Pat Sheridan says. Data is rendered to fit the device on which it is being displayed. "We had a really positive experience" with DreamFactory, says Sheridan.

Embarcadero RAD Studio XE4
Embarcadero RAD Studio XE4 supports development for smartphones, tablets, and PCs. Delphi and C++ development are supported, and Android support is due later this year.
TMS Software has used the tool for an iOS app that reads Microsoft Excel files. "The thing I like most is that there is a lot of backward compatibility -- at least in the nonvisual stuff. Visual stuff has to be rewritten anyway for a phone or tablet. You aren't going to use the same desktop interface," says Adrian Gallero, product manager at TMS. "My code base is quite complex, and while it kept crashing the betas up to beta 11, they've fixed all the problems I had, and I was able to port a huge code base in days."

Intel HTML5 Development Environment
Intel's HTML5 Development Environment is a cross-platform environment for developing, testing, and deploying applications on multiple device types. It is based on Web standards and was acquired by Intel when it purchased appMobi earlier this year.
"It has a lot of really good strengths. It's a very good tool," says Stephen Campbell, lead developer at Second Fiction game studio. Second Fiction has used the tool to build HTML5 and JavaScript apps. HTML5 and JavaScript code are wrapped in a container to run as a native app. "The primary thing about using HTML5 is it isn't as fast" as native code, he says. But work is being on this, he adds.

Xamarin Studio
Xamarin Studio is an IDE for streamlined, multiplatform native mobile design, development, debugging, and deployment. Music-streaming company Rdio used Xamarin Studio and Xamarin's Android and iOS developer technologies to streamline development for devices.
"We needed a way to keep the Android app and the iOS app closer together in feature parity without having big teams for both platforms," says Rdio's lead Android developer Brett Duncavage. "We have roughly about 60 percent code-sharing between Android and iOS now." The C# language is used for developing the apps. Xamarin Studio offers good code completion, debugging, and deployment capabilities, but it still needs to mature some, Duncavage says.

Chủ Nhật, 19 tháng 5, 2013

Safety-first design pattern

"safety-first design pattern ?"  
Is it a new pattern ?

Chủ Nhật, 27 tháng 1, 2013

RRiBbit HTTP support: No more SOAP needed!

RRiBbit is the most advanced, versatile and easy to use Open Source Eventbus in the Java World. You can use it within a Java application, to have different classes/components talk to each other without needing dependencies on one another, and you can use it to communicate with other Java applications on other machines.

RRiBbit improves upon existing Eventbuses by being compatible with existing code and by allowing the listeners to send something back to the senders. That's why we like to use the term Request-Response-Bus.

Version 2.2.0 adds HTTP support to the already existing Java RMI and JMS support. This is seen as an important update for RRiBbit, since HTTP is the most widely used communication protocol. You can now use RRiBbit to let a Java program on one machine talk to a Java program on another machine via HTTP without relying on complex mechanisms such as Web Services or SOAP. In fact, you can just keep using your plain old Java Method calls!

We also made some other minor improvements. Please see for more information.