I'm a nooby to Java development. I come from a Microsoft background and want to apply my skills to Java Client/Server development for mobile. I have a good understanding of Client/Server development for the Microsoft platforms so I would really appreciate it if someone would help me translate the Microsoft terms to Java terms. Please explain to me what I need:

Web Service
In .Net I have created WCF services. What is the Java equivalent? Is it EJB?

Data Synchronisation
.Net has a Sync Framework. Basically it allows you to synchronise data from a main database (usually SQL Server) to a database on the mobile device (usually SQL Server CE). Is there a Java equivalent?

UI and UI Markup
The last time I used Java, Swing was what was used. Is that still the case? Is there a Java equivalent of Xaml? Xaml is an Xml like markup language which Microsoft uses for defining UI. It is very useful.

Data/Business Layer Utility
Is there are tool which will allow you to point at a data structure and pump out class files which reflect the database's structure? .Net has something called Entity Framework for this.

Auto Generation of Web Services
This is related to the first item Web Service, and the above item. Is there a way to pump out the services services automatically? In .Net I have written libraries that pump out Web Methods for saving, loading and deleting records in each of the tables in the database. Is there an equivalent in Java?

Thanks in advance for your help. Even if you don't know all the answers, any information would help.