Latest Progress and Trends in Java/EJB Technologies V Sumi o Tasaka V Jun Gi nbayashi (Manuscript received February 2, 2004) Java is evolving into a full-scale system development technology by the addition of functions such as Applets, object-oriented programming, cross-platform support, internationalization, JavaBeans, Remote Method Invocation (RMI), Java Database Con- nectivity (JDBC), Enterprise JavaBeans (EJB), Java Plug-in, HotSpot Client Virtual Machine (VM), Java Naming and Directory Interface (JNDI), RMI/Internet Inter-ORB Pro- tocol (IIOP), eXtensible Mark-up Language (XML) support, and Java Secure Socket Extension (JSSE). These functions have been added in three specifications: Java 2 Platform, Enterprise Edition (J2EE); Java 2 Platform, Standard Edition (J2SE); and Java 2 Platform, Micro Edition (J2ME). Also, the manner in which these specifications are decided has shifted from decisions made by Sun Microsystems to decisions made by an open community through a process called the Java Community Process (JCP). The main key-phrase of the latest trend in Java/EJB is Ease of Development, and J2SE 1.5 (code name Tiger) will play a central role in this trend. Prospective enhancements in the Java programming language specifications such as Generics, Enhanced for Loop, Autoboxing/Unboxing, Typesafe Enums, Varargs, Static Import, and Metadata are expected to simplify system development, learning, and mastering. With these new technologies, Java will be used by a wider range of developers and EJB-based development of enterprise systems will become more popular. 1. Introduction Si nce i ts appearance i n 1995, Java technol o- gy (i ncl udi ng Enterpri se JavaBeans [EJB]) has been evol vi ng wi th vari ous functi ons towards a technol ogy for ful l -scal e system devel opment. Frequent enhancements wi th these functi ons have l ed to a wi der Java appl i cati on area. However, these enhancements have r ai sed appl i cati on devel opers feel i ngs of i nsecuri ty about the stabi l - i ty of Java and forced them to spend more ti me l earni ng and masteri ng Java. Thi s paper ai ms to el i mi nate unnecessar y anxi ety among devel opers by l ooki ng back on the hi story of Java/EJB technol ogy and cl earl y show- i ng i ts future trend. Fi rst, i n Secti on 2, the hi story so far of Java/ EJB technol ogy i s summari zed. Secti on 3 shows the di recti on of future enhancements i n Java/EJB, mai nl y based on the themes that are currentl y bei ng di scussed i n the Java Communi ty Process (JCP). I n Secti on 4, the detai l s of the l atest ver- si on (Java 2 Pl atform, Standard Edi ti on [J2SE] 1.5), whose outl i ne has just become cl ear, are i n- troduced. Fi nal l y, Secti on 5 concl udes wi th a bri ef l ook at the future of Java/EJB. 2. History and current status of Java Java was i ntroduced by Sun Mi crosystems i n 1995 together wi th a browser, HotJava. Then, Java gai ned publ i c attenti on i n the form of Ap- pl ets, whi ch are programs runni ng on a browser, and was l ater expanded to i ncl ude, for exampl e, server-si de appl i cati ons and mobi l e appl i ances. 86 FUJ ITSU Sci. Tech. J ., 40,1,(J une 2004) S. Tasaka et al.: Latest Progress and Trends in J ava/ EJ B Technologies The major ver si on upgr ades of Java ar e shown i n Table 1. The major enhancement poi nts of each ver- si on are gi ven bel ow. 1) Versi on 1.0 Java Devel opment Ki t (JDK) 1.0 was an- nounced as the fi r st r el ease of Java wi th the fol l owi ng features: Object ori entati on Cross-pl atform support Network compati bi l i ty Because i t was a C++-l i ke l anguage, and al so because of i ts si mpl e and pure l anguage speci fi - cati ons, Java was qui ckl y and warml y accepted by devel opers, whi ch i s unusual for a new l an- guage. However, i t di d not have suffi ci ent functi ons for system devel opment. Al so, i t was di ffi cul t to use Java i n a Japanese envi ronment, because i nternati onal i zati on was not supported. 2) Versi on 1.1 Approxi matel y one year l ater, JDK 1.1 was announced. The fol l owi ng functi ons were added i n JDK 1.1: I nternati onal i zati on JavaBeans Remote Method I nvocati on (RMI ) A new event model Java Database Connecti vi ty (JDBC) Java di d not have enough functi ons to sup- port system devel opment unti l functi ons such as JavaBeans and JDBC wer e pr ovi ded i n thi s versi on. 3) Versi on 1.2 From JDK 1.2, Java was gi ven the new brand name Java 2. I n JDK 1.2, the fol l owi ng func- ti ons were added: Java Foundati on Cl asses (JFC) I nput Method Framework (I MF) Common Object Request Broker Archi tecture (CORBA) support EJB Java Pl ug-i ns After the r el ease of Java 2, EJB made i ts appear ance and mor e enter pr i se systems wer e devel oped usi ng the server-si de versi on of Java. I t woul d appear that, at fi rst, Java was expected to be effecti ve for sol vi ng the shortage of cl i ent- si de appl i cati ons on pl atforms other than Wi ndows (as i mpl i ed by the catch phrase, wri te once, run anywhere). However, server-si de Java became popul ar i n those days because of the expansi on of the I nternet. 4) Versi on 1.3 From JDK 1.3, Java and i ts rel ated functi ons were reorgani zed i nto the fol l owi ng three edi ti ons based on the target system envi ronment: Java 2 Pl atform, Enterpri se Edi ti on (J2EE); 1) Java 2 Pl at- for m, Standar d Edi ti on (J2SE); 2) and Java 2 Pl atform, Mi cro Edi ti on (J2ME). J2SE 1.3 had the fol l owi ng addi ti onal func- ti ons: HotSpot Cl i ent Vi rtual Machi ne (VM) Java Nami ng and Di rectory I nterface (JNDI ) RMI /I nternet I nter-ORB Protocol (I I OP) Securi ty enhancements After the rel ease of versi on 1.3, the way i n whi ch Java wi l l be appl i ed to enterpri se systems became cl ear wi th the edi ti ons based on target Major Java upgrades Version
Name Release date May 1995 Java (announced) January 1996 1.0 JDK 1.0 February 1997 1.1 JDK 1.1 December 1998 1.2 Java 2 (JDK 1.2) July 2000 1.3 Java 2 (J2SE 1.3, J2EE 1.2, J2ME) February 2002 1.4 Java 2 (J2SE 1.4, J2EE 1.3, J2ME) Table 1 Major version upgrades of Java. 87 FUJ ITSU Sci. Tech. J ., 40,1,(J une 2004) S. Tasaka et al.: Latest Progress and Trends in J ava/ EJ B Technologies pl atforms. I n parti cul ar, Java appl i cati on to en- terpri se systems became more popul ar after EJB 2.0 and JavaServer Pages (JSP) were announced i n J2EE. Figure 1 shows the appl i cati on model and components supported by J2EE. To make i t easi er to bui l d enterpri se systems through com- ponent-based devel opment, sever al detai l ed appl i cati on model s based on EJB have been ad- vocated by compani es and consorti ums such as the Component Consorti um for EJB, 3) whi ch has been establ i shed i n Japan. Figure 2 shows the EJB-based appl i cati on model of the Component Consorti um for EJB. At the same ti me, because of J2ME, the appl i cati on area of Java expanded to i ncl ude mobi l e appl i ances, whi ch l ed to the cur- r ent wi despr ead use of Java i n mobi l e-phone appl i cati ons. Among the enhancements i n versi on 1.3, the fol l owi ng functi ons added to EJB i n EJB 2.0 are i mportant because they can be used to desi gn and i mpl ement coarse-grai ned enti ti es and make data- base access more effi ci ent, whi ch are both necessary tasks when devel opi ng enterpri se systems: A new ar chi tectur e for contai ner-managed persi stence (CMP 2.0) Support for the management of rel ati onshi ps among enti ty beans Query syntax for sel ect methods for enti ty beans (EJB-QL) Message-dri ven beans 5) Versi on 1.4 Unti l versi on 1.3, Sun Mi crosystems deci d- ed the speci fi cati ons of Java and i ts r el ated functi ons. Si nce versi on 1.4, however, the speci fi - cati ons have been deci ded i n a more open manner. Now, new speci fi cati ons and i mprovements of ex- i sti ng speci fi cati ons ar e made based on Java Speci fi cati on Requests (JSRs) submi tted by the Java communi ty to a process cal l ed the Java Com- muni ty Process (JCP). 4) When a JSR i s submi tted to the JCP, the member compani es of the JCP di scuss whether i t shoul d be i mpl emented. I f they deci de i t shoul d be i mpl emented, an expert group i s establ i shed to deci de the fi nal speci fi cati ons for the JSR. Onl y member compani es of the JCP can submi t a JSR, but submi tted JSRs are made publ i c on the JCPs Web si te so the JCP can recei ve a wi der range of opi ni on. J2SE 1.4 was the fi rst versi on whose speci fi - cati ons were di scussed and determi ned by the JCP. The fol l owi ng functi ons were added: XML support Java Web Start A new I /O DB DB Client presentation tier Applet HTML Web browser Server presentation tier Servlet JSP Servlet container Business logic tier EJB EJB container EIS tier DBMS Business logic tier EJB container Business service component Business model component Figure 1 J2EE application model and components. Figure 2 EJB-based application model of Component Consortium for EJB. 88 FUJ ITSU Sci. Tech. J ., 40,1,(J une 2004) S. Tasaka et al.: Latest Progress and Trends in J ava/ EJ B Technologies A l oggi ng API Asserti on Java Secure Socket Extensi on (JSSE) I n thi s way, the speci fi cati ons of Java are now di scussed and evol ved wi thi n an open communi ty. 3. Future enhancements of Java A roadmap for future enhancements of Java has been r el eased. 5) The r oadmap i s shown i n Table 2. As descr i bed i n Secti on 2, the appl i cati on area of Java has become wi der and Java technol - ogy i s becomi ng more popul ar. J2ME has been adopted i n mobi l e appl i ances such as mobi l e phones. J2EE has al ready reached the l evel of de facto standard i n the devel opment of enterpri se mi ssi on-cri ti cal systems al ong wi th the ri ch en- hancement of EJB functi ons. However, Java i s sti l l di ffi cul t for begi nners to l earn and there are rel ati vel y few hi gh-l evel devel opers. For thi s reason, Java i s not so suc- cessful i n the ar ea of secti on-wi se appl i cati on, where Basi c and C#are used. On the other hand, Java i s successful i n the area of mobi l e appl i anc- es and enterpri se systems. As a resul t, for the next versi on of Java, ease of devel opment rather than functi on enhancement wi l l be the pri ori ty i ssue. Thi s coul d be the l arg- est change of pol i cy si nce Java was born. The next versi on of Java wi l l be J2SE 1.5 (code name Ti ger). For J2SE 1.5, the fol l owi ng fi ve themes wi l l be consi dered: 1) Qual i ty: compati bi l i ty wi l l be extremel y i m- portant. 2) Performance and scal abi l i ty 3) Ease of devel opment 4) Moni tori ng and manageabi l i ty 5) Desktop cl i ents JSR-176: J2SE 1.5 (Ti ger) Rel ease Contents i s bei ng devel oped i n the JCP accordi ng to these themes. Furthermore, several JSRs have been submi tted wi th r espect to the speci fi cati ons of more detai l ed functi ons (Table 3). The fi nal versi on of J2EE 1.4 was rel eased i n November 2003. EJB 2.1, i n parti cul ar among Table 2 J2SE Technology Update and Roadmap. Date Version (Code name) Summer 2004 1.5 (Tiger) Early 2005 1.5.1 (Dragonfly) After 2005 1.6 (Mustang) Table 3 JSR-176: J2SE 1.5 (Tiger) Release Contents. JSR-003 Java Management Extensions (JMX) Specification JSR-013 Decimal Arithmetic Enhancement JSR-014 Add Generic Types to the Java Programming Language JSR-028 Java SASL Specification JSR-114 JDBC Rowset Implementations JSR-133 Java Memory Model and Thread Specification Revision JSR-163 Java Platform Profiling Architecture JSR-166 Concurrency Utilities JSR-174 Monitoring and Management Specification for the Java Virtual Machine JSR-175 A Metadata Facility for the Java Programming Language JSR-199 Java Compiler API JSR-200 Network Transfer Format for Java Archives JSR-201 Extending the Java Programming Language with Enumerations, Autoboxing, Enhanced for Loops and Static Import JSR-202 Java Class File Specification Update JSR-204 Unicode Supplementary Character Support JSR-206 Java API for XML Processing (JAXP) 1.3 89 FUJ ITSU Sci. Tech. J ., 40,1,(J une 2004) S. Tasaka et al.: Latest Progress and Trends in J ava/ EJ B Technologies several consti tuent speci fi cati ons i n J2EE 1.4, has the fol l owi ng addi ti onal functi ons: 1) I mpl ementati on of Web servi ces 2) A contai ner-managed ti mer servi ce 3) An enhancement of EJB QL (ORDER BY, aggregate operators) 4) An extensi on for message-dri ven beans Ease of devel opment i s al so the major r e- mai ni ng probl em i n EJB, and the use of metadata, for exampl e, wi l l be pursued i n the standardi za- ti on acti vi ty for EJB3.0 (JSR-220). The fol l owi ng features are now under di scussi on i n JSR-220: 1) A si mpl er CMP programmi ng model 2) Devel opment and testi ng wi thout an EJB contai ner 3) More standardi zed depl oyment 4. Extension of Java programming language specifications in J2SE 1.5 The outl i ne of the l atest versi on, J2SE 1.5, has just become cl ear. Thi s chapter expl ai ns whi ch types of functi ons, especi al l y whi ch types of ex- tensi ons to the Java pr ogr ammi ng l anguage speci fi cati ons, wi l l be added i n J2SE 1.5. 6),7) The fol l owi ng extensi ons i n J2SE 1.5 have been announced: 1) Generi cs 2) Enhanced for Loop (foreach) 3) Autoboxi ng/Unboxi ng 4) Typesafe Enums 5) Varargs 6) Stati c I mport 7) Metadata These functi ons are expl ai ned i n detai l bel ow. 4.1 Generics For the current col l ecti on-type cl asses such as java.uti l .l i st, and java.uti l .Vector, extra casts are needed because al l the objects i n the col l ec- ti on are treated as the base cl ass Object. Al so, even when an object of a di fferent type i s added to the col l ecti on, an error onl y occurs at runti me. Generi cs make i t possi bl e to check the type of el ements i n col l ecti on-type cl asses at compi l e ti me by speci fyi ng the type of objects stored i n col l ec- ti on-type cl asses. Thi s functi on i s si mi l ar to Templ ate i n C++. Thi s functi on wi l l make i t possi - bl e to wri te more type-safe descri pti ons i n Java. For exampl e, when Stri ng objects are stored i nto and retri eved from ArrayLi st, i t i s currentl y necessary to cast them as fol l ows: List wordlist = new ArrayList(); wordlist.add("title"); String title = ((String) wordlist.get(0)).toUppercase(); However, when Generi cs i s used, the cast i s not needed: List<String> wordlist = new ArrayList<String>(); wordlist.add("title"); String title = wordlist.get(0).toUppercase(); Al so, because any type of object can be stored i n a Li st cl ass, even when onl y Str i ng objects shoul d be stored i n a wordl i st, I nteger objects can be added to the wordl i st as fol l ows wi thout caus- i ng errors at compi l e ti me: List wordlist = new ArrayList(); wordlist.add(new Integer(1)); Integer i = (Integer) wordlist.get(1); I f we descri be as fol l ows usi ng Generi cs: List<String> wordlist = new ArrayList<String>(); wordlist.add(new Integer(1)); Integer i = wordlist.get(1); an error occurs at compi l e ti me because the type i s speci fi ed. Thi s functi on makes the code si mpl e wi th- out annoyi ng casts and i ncreases the l evel of safety 90 FUJ ITSU Sci. Tech. J ., 40,1,(J une 2004) S. Tasaka et al.: Latest Progress and Trends in J ava/ EJ B Technologies by type checki ng at compi l e ti me. Al so, the num- ber of errors at runti me i s reduced. Generi cs has been consi dered for qui te some ti me and mi ght have been i ncl uded i n J2SE 1.4. I t wi l l fi nal l y be added i n J2SE 1.5. 4.2 Enhanced for Loop (foreach) Enhanced for Loop provi des the same func- ti on as the for each syntax i n C# and other l anguages. For exampl e, to l ook at the el ements of an array or col l ecti on one by one, we currentl y use I terator as fol l ows: void cancelAll(Collection c) { for (Iterator i = c.iterator(); i.hasNext();){ TimerTask tt = (TimerTask) i.next(); tt.cancel(); } } By descri bi ng thi s wi th Enhanced for Loop, the code becomes si mpl er: void cancelAll(Collection c){ for (Object o : c) ((TimerTask)o).cancel(); } Al so, i t i s possi bl e to descri be thi s exampl e wi th Generi cs: void cancelAll(Collection<TimerTask> c){ for (TimerTask task : c) task.cancel(); } Enhanced for Loop makes i t unnecessary to use l oop vari abl es and I terator i n code. I t i s ex- pected to decr ease the number of mi stakes i n codi ng, because i t reduces the vol ume of descri p- ti on, especi al l y when descri bi ng a nested l oop. 4.3 Autoboxing/Unboxing I n the cur r ent Java, when a var i abl e of a pri mi ti ve type, for exampl e, the i nt type, i s treat- ed as an object, i t must be conver ted to the correspondi ng wrapper cl ass, for exampl e, I nte- ger. I n J2SE 1.5, conversi on from a pri mi ti ve type to a wrapper cl ass and vi ce versa i s automati cal l y performed by Autoboxi ng/Unboxi ng. The functi on of Autoboxi ng/Unboxi ng i s al so adopted i n C#. For exampl e, the fol l owi ng descri pti on i n the current Java: // from int to Integer int i = 42; Integer x = new Interger(i); // from Integer to int Integer y = 42; int j = y.intValue(); can be si mpl y descri bed as fol l ows by usi ng Auto- boxi ng/Unboxi ng: // from int to Integer int i = 42; Integer x = i; // from Integer to int Integer y = 42; int j = y; Autoboxi ng/Unboxi ng makes i t unnecessary to use a wrapper cl ass. Al so, when combi ned wi th Generi cs, thi s functi on i s very useful when, for ex- ampl e, an I nteger needs to be stored i n a col l ecti on. 4.4 Typesafe Enums Typesafe Enums i s a famous functi on i n C, C++, Pascal , and other l anguages, and wi l l be add- ed i n J2SE 1.5. I t can be used as a l abel i n swi tch statements. Typesafe Enums can be defi ned l i ke a cl ass rather than a l i st of i ntegers. Al so, because Typesafe Enums automati cal l y gener ates VAL- UES, fami l y(), val ueOf(), and other methods, i t i s 91 FUJ ITSU Sci. Tech. J ., 40,1,(J une 2004) S. Tasaka et al.: Latest Progress and Trends in J ava/ EJ B Technologies especi al l y useful i n the Enhanced for Loop syntax. The fol l owi ng shows an exampl e of usi ng Typesafe Enums: public enum Coin{ penny(1), nickel(5), dime(10), quarter(25); Coin(int value) { this.value = value; } private final int value; public int value() { return value; } } public class CoinTest{ public static void main(String[] args){ for (Coin c : Coin.VALUES) System.out.println (c + ": t"+ c.value() +" t" + color(c)); } private enum CoinColor { copper, nickel, silver } private static CoinColor color(Coin c) { switch(c) { case penny: return CoinColor.copper; case nickel: return CoinColor.nickel; case dime: return CoinColor.silver; case quarter: return CoinColor.silver; default: throw new AssertionError("Unknown coin: " + c); } } } I n thi s exampl e, cl ass Coi nTest uses an enum defi ni ti on Coi n. The new Enhanced for Loop syn- tax i n the mai n method pri nts out the contents of the enum defi ni ti on Coi n. For exampl e, penny: 1 copper i s pri nted out for the fi rst content, pen- ny. The exampl e shows that VALUES, whi ch i s automati cal l y generated, i s used i n the Enhanced for Loop syntax. Typesafe Enums does not exi st i n the cur- rent Java. I t si mpl i fi es descri pti ons and therefore reduces the burden on devel opers. 4.5 Varargs Varargs i s a functi on that makes i t possi bl e to defi ne a method havi ng vari abl e-l ength argu- ments l i ke pri ntf and scanf i n C/C++. Cur r entl y, a functi on si mi l ar to var i abl e- l ength arguments can be descri bed usi ng an array, for exampl e, as fol l ows: Object[] args = { new Integer(9999), "tom" }; String result = MessageFormat .format("ID {0}: Name:{1}, args); By usi ng Varargs, thi s exampl e can be de- scri bed more si mpl y wi thout an array as fol l ows: String result = MessageFormat .format("ID {0}: Name:{1}, 9999, "tom"); 4.6 Static Import Stati c I mport i s a functi on that makes i t pos- si bl e to descri be stati c fi el ds and methods l i ke the other cl asses by usi ng i mport decl arati ons. Be- cause Java does not have the macr o functi ons found i n C/C++, i t i s usual to defi ne an i nterface i n whi ch onl y constants ar e defi ned. However, thi s i s an i mproper usage of an i nterface. By usi ng Stati c I mport, constants i n anoth- er cl ass can be i mpor ted by descr i bi ng i mpor t stati c as fol l ows: import static java.awt.Color.CYAN; button.setForeground(CYAN); I n Stati c I mport, not onl y constants but al so stati c methods can be i mported. 92 FUJ ITSU Sci. Tech. J ., 40,1,(J une 2004) S. Tasaka et al.: Latest Progress and Trends in J ava/ EJ B Technologies 4.7 Metadata Metadata i s exactl y the same as Attri bute i n C#. Thi s functi on makes i t possi bl e to defi ne a new attri bute for cl asses, methods, and fi el ds. For exampl e, i n the same way a devel oper can descri be the accessi bi l i ty to a cl ass or method by usi ng a decl arati on (e.g., publ i c or pri vate), a devel oper can expl i ci tl y speci fy the accessi bi l i ty to a cl ass, method, or fi el d by defi ni ng a Metadata attri bute. Metadata has two major purposes. One i s to enabl e devel opers to defi ne an attri bute cl earl y by descri bi ng a Metadata attri bute wi thi n code. The other i s to uti l i ze such i nformati on by usi ng tool s. For exampl e, when Metadata i s used to de- scri be attri bute @Remote i n order to speci fy that a method i s remote as fol l ows: import javax.xml.rpc.; public class CoffeeOrder{ @Remote public Coffee [] getPriceList(){ ... } @Remote public String orderCoffee(String name, int quantity){ ... } } a tool can gener ate the fol l owi ng sour ce code, whi ch i ncreases devel opment producti vi ty: public interface CoffeeOrderIF extends java.rmi.Remote { public Coffee [] getPriceList() throws java.rmi.RemoteException; public String orderCoffee(String name, int quantity) throws java.rmi.RemoteException; } public class CoffeeOrderImpl implements CoffeeOrderIF{ public Coffee [] getPriceList(){ ... } public String orderCoffee(String name, int quantity){ ... } } As the exampl e shows, Metadata i s not onl y an i mportant functi on from a tool vendors poi nt of vi ew, but al so a bi g hel p for devel opers. 5. Conclusion Si nce i ts appearance i n 1995, Java has been evol vi ng i nto a ful l -scal e system devel opment tech- nol ogy through the addi ti on of vari ous functi ons i n new speci fi cati ons (e.g., i nternati onal i zati on, JavaBeans, JDBC, EJB). At the same ti me, the appl i cati on area of Java has expanded to i ncl ude, for exampl e, mobi l e appl i ances and enter pr i se mi ssi on-cr i ti cal systems. Al so, the manner i n whi ch the speci fi cati ons are deci ded has shi fted from deci si ons made by Sun Mi crosystems to de- ci si ons made by an open communi ty through a process cal l ed the Java Communi ty Process (JCP). Currentl y, a si gni fi cant change of pol i cy i s occurri ng i n Java and the key phrase i s Ease of Devel opment. J2SE 1.5, whi ch wi l l appear i n the summer of 2004 (code name Ti ger) i s at the cen- ter of thi s change. The extensi on of the Java pr ogr ammi ng l anguage speci fi cati ons now pr o- posed i n J2SE 1.5 has been careful l y desi gned to real i ze a hi gh degree of Ease of Devel opment and i s al so desi gned to i mprove Ease of Learni ng and Ease of Masteri ng. Wi th these new technol ogi es, Java wi l l be used by a wi der range of devel opers and EJB-based devel opment of enterpri se systems wi l l become more popul ar. References 1) Java 2 Pl atfor m, Enter pr i se Edi ti on (J2EE) Web page. http:/ / java.sun.com/ j2ee/ 2) Java 2 Pl atfor m, Standar d Edi ti on (J2SE) Web 93 FUJ ITSU Sci. Tech. J ., 40,1,(J une 2004) S. Tasaka et al.: Latest Progress and Trends in J ava/ EJ B Technologies page. (i n Japanese). http:/ / java.sun.com/ j2se/ 3) Component Consor ti um for EJB Web page. (i n Japanese). http:/ / www.ejbcons.gr.jp/ indexi.html 4) Java Communi ty Pr ocess Web page. http:/ / jcp.org/ en/ home/ index 5) Java 2 Pl atform, Standard Edi ti on (J2SE) Update and Roadmap. http:/ / servl et.java.sun.com/ javaone/ sf2003/ conf/ sessions/ display-1540.en.jsp 6) New Language Features for Ease of Devel opment i n the Java 2 Pl atfor m, Standar d Edi ti on 1.5:A Conver sati on wi th Joshua Bl och. http:/ / j ava.sun.com/ featur es/ 2003/ 05/ bloch_qa.html 7) For thcomi ng Java Pr ogr ammi ng Language Fea- tur es. http:/ / servl et.java.sun.com/ javaone/ sf2003/ conf/ sessions/ display-3072.en.jsp Jun Ginbayashi received the B.S. and M.S. degrees in Mathematics from The University of Tokyo, Tokyo, Japan in 1981 and 1984, respectively. He also received the D.Phil. degree in Comput- ing from The University of Oxford, Ox- ford, United Kingdom in 1996 after three years study there. He joined Fujitsu Ltd., Tokyo, Japan in 1986, where he has been engaged in research, devel- opment, and promotion of development environments for business application systems. E-mail: ginbayashi.jun@jp.fujitsu.com Sumio Tasaka received the B.S. degree in Physics from Tokyo Metropolitan Uni- versity, Tokyo, Japan in 1989. He joined Fujitsu Ltd., Yokohama, Japan in 1989, where he has been engaged in research and development of development envi- ronments. E-mail: stasaka@jp.fujitsu.com