Sunday, 4 March 2007

Web Services with Java SE 6

One of the most interesting features of Java SE 6 is the new new end-to-end web services stack - JAXWS 2.0 FCS RI. The new runtime offers an embedded simple web server which can be used for deploying web services. Coupled with the embedded Derby DB JavaSE 6 become a complete platform.

Here is a simple example, lets start with a POJO annotated with @WebService annotation. This annotation tells JAXWS that its a Web Service endpoint. You may also annotate the methods that will be exposed as web services method with @WebMethod annotation. If all the methods will be exposed as web services method, it is not needed to annotate each method.

package com.muratyener;
import javax.jws.WebService;import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class Service {

@WebMethod
public String helloWorld(String message) {
return "Hello "+ message + "!!!";
}
public static void main(String[] args){
// create and publish an endpoint
Service service = new Service ();
Endpoint endpoint = Endpoint.publish(http://localhost:8080/service, service);
}

}

Well thats it, now we have to do two things to deploy our service.

To compile and generate wrapper classes;
apt -d sample com/muratyener/service.java

To publish the service;
java -cp sample com.muratyener.Service


Now, lets try accessing our deploed WSDL by typing http://localhost:8080/service?wsdl. JAXWS internally provides all the required stuff using light-weight HTTP server.
It is fast and simple, a very nice improvement.

Friday, 2 March 2007

Why Java Hosting is the most expensive solution?

I was looking for Java hosting and it is so disappointing that the cheapest Java hosting is at least $15 to $20 monthly where PHPor ASP hostings are available as low as $1.5 or $2 monthly.

If you google it you will find many reasons such as diffuculties of running multiple JVMs or running multiple hosting packages in one JVM... Well they may all be true but how will Java powered open source systems would run?

By the way while I was looking for java hosting I came across to http://www.myjavaserver.com/ . They offer free EE hosting but there is an interesting signup process. They give an online quiz in which a small piece of code is wanted. The code written is compiled instantly and the output is displayed. Well of cource I passed and to be honest it is not much hard but there was some small tricks which was fun to solve.

Tuesday, 27 February 2007

Where Java is headed?

10 years ago we have been introduced to Java with Duke dancing in a web page. Duke's reveluationary approach of portable clean code running in VM has inspired client side programming, flash, .net even todays latest approaches of ajax and flex.

While developers playing with applets, Duke was headed to Enterprise Application Servers with enterprise beans, message driven beans, jms etc... All vendors came up with their own implementation and approach integrated in their tools. Enterprises started migrating their systems to EJB implementations and while they were struggling with complexity Duke's friends came up with open frameworks such as hibernate and spring. Later this simple approach had been labeled as POJOs. Also while client side developers were struggling with new JSP/Servlett specifications duke came up with JSF coupled with Ajax. The idea was simple but very clever. Ajax had already been on market since Explorer 5 and JSF was built on success of Struts.

Right now Duke is still trying to enforce EJB 3 to POJO fans, Java 6 with netbeans matisse gui tool to desktop developers. Duke has always found an unexpected way to stay popular. I hope he does it again otherwise 10 years later Java would be alive just because Cobol does today.

Thursday, 15 February 2007

Rich Internet Applications

Web 2.0 hareketiyle birlikte aslında explorer 5 den beridir kullanılabilir olan XMLHttpRequest yapısı Ajax adıyla her türlü sorun için çözüm olarak anılmaya başlandı. Ajax gerçekten JSF ile güzel vede şık bir ikili.
Peki ama bu ikili ne kadar üretken? Açıkcası yapısal olarak java ya benzer olsada pek fazla programcı javascript yazmak istememekte. Bundada pek anlaşılmayacak bir yan yok aslında, sonuçta yazdığınız kod her browsera uyumlu olmamakta ve de debug edilmesi kolay olmamakta. Bunun yanında Netbeans 5.5 ile gelen ajax componentları na visual arayüz ile jsf sayfalarına yerleştirmek ve kullanmak pekte zor değil. Hatta görsel tasarım arayüzü ile çalışmak hem yaratıcı hem de üretken. Ama sonuçta arka planda yine de javascript yatmakta dolayısıyle bir şey değiştirmek düzenlemek gerekirse astar gerçektende yüzünden pahallıya gelebilir.
Diğer bir yeni alternatif Flex2. Adobe'un macromedia yı aldıktan sonra büyük yatırım yaptığı flash 9 motoru içinde çalışan, actionscript 3 ve java ile benzer yapıda, görsel öğeleri kendinden şık ve de web servis yada adobe un lisanslı data service bağlantısı ile entegrasyonunun oldukça kolay olduğu iddiasında. Denediğim bir iki basit uygulama aslında pek de zor olmadı ama genede çok basit ve üretken değil. Yakov Fain'in (Farata Systems) flex ile ilgili hem bir kaç tutorial ı hemde çeşitli kod generator ları bulunmakta. Öte yandan bu platform ile gerçektende şık ve hızlı arayüz hazırlamak, müşteri ile tartışmak sonrasında da arkada çalışan sistemlere bağlanarak ürünü çalışır hale getirmek için hoş bir platform. Yine de üretkenliğini daha fazla test etmeye ihtiyacım var.
Ajax cephesinin yeni gladyötörü ise Google. Google GWT ile kendi kütüphaneleri üzerinden yazılan Java kodunu tarayıcı uyumlu javascript koduna çevirmekte. Örnekleri biraz incelediğimde açıkcası görsel olarak netbeans componentları ve flex e göre biraz zayıf buldum. Ama kod yazma aşamasında Java platformunun içerisinde kalmak, eclipse e entegre olabilmek ve de tabii ki arkadaki gücün google olması oldukça önemli.
Herşey bir kenara bundan 10 yıl önce aslında appletler gayet zengin web arayüzleri sunmaktaydı. Hatta javanın hepimizin hayatına girişide sayfalarda dans eden duke maskotu ile olmamışmıydı. Açıkcası 10 yıl önde başlanan yarış herhalde bu kadar net kaybedilemezdi. Ne yazık ki appletler ile RIA geliştirmek kimsenin aklına bile gelmiyor. Zaten niye gelsin ki, Sun 10 yıldır hala flash gibi basit bir kurulum prosedürü geliştiremedi. Bugün flash player kullanıcıya sorun yaratmaksızın kolaylıkla kendini kurup tarayıcı kapatmadan işleve geçebilmekte. Bu gücün farkında olduklarından playerı sıklıkla yenilemektende kaçınmıyorlar.
Sonuç olarakta java her yerdeyim desede flash gerçekte en ulaşılabilir platform.

Tuesday, 6 February 2007

Java Day

Dün İTÜ'de Java günündeydim. Mayıs ayında San Francisco'da düzenlenecek olan JavaOne'ın hatta yılda bir kaç kez düzenlenen SunTech Days'in yanında oyuncak gibi kalsada, Sun'ın Java evangelistlerinden yeni NetBeans'i, Java ME KVM i ile çalışan spot cihazlarını dinlemek yine de zevkliydi. Simon Ritter'dan EE uygulamaları dinleyip BPELi nasıl çalıştıramadığını izledik. Ama aslında kendiside yapılmış bir BPEL uygulamasına dokununca mutlaka bozulduğunu bildiğinden "hopefully it will run" diyerek bekledi, sonunda da sizin önünüzde debug etmeyeyim diyerek sunumunu bitirdi. Doris Chen JSF ve Web uygulamaları konusunda hoş bir sunum yaptı. Java persistance ve JSF ile Netbeans kullanarak CRUD sayfaları yarattı, açıkcası oldukça basit ve hızlı bir çözüm ama kompleks sorunlarda nasıl çözüm olur denemek lazım. Sunumun en ilginç konuları ise ME ile Angela Caicedo anlattı. ME ve KVM nin basit yapısı nedeniyle Simon ın aksine Angela her uygulamasının çalışacağından emindi. Spotlar ise fiyatı yüksek olsada her developer için oynaması zevkli ve kurcalanması gereken cihazlar.
Sunumun güzel yanı ana sponsor Ericcson un sabah ki konuşma dışında konulara karışmamasıydı. Eh o kadarcık reklamıda dinleyeyip diyetimizi ödedik bizde. Zaten dediğim gibi ne Tech Days in nede JavaOne ın tırnağı bile olmayan bir java gününü bari en azından her sene düzenli olarak izleyebiliriz...