- 论坛徽章:
- 0
|
What is Java technology?
Why is Java technology important?
What are the Java component technologies?
How does Java technology relate to SOA/Web services?
How can I improve my Java programming skills?
The developerWorks Java technology zone contains hundreds of articles, tutorials, and tips to help a developer make the most of the Java-language technology and related applications, but sifting through the volumes of resources can be overwhelming for developers trying to find a place to start learning about Java technology. developerWorks offers this page to provide an overview of Java technology basics within the overall context of the language (especially as it pertains to application development and e-business). This resource delivers starting points in the form of relevant developerWorks articles, tutorials and tips, IBM learning services education, Webcasts, workshops, and IBM products for further investigation.
What is Java technology?
Java technology (version 2) is both an object-oriented programming language and a platform developed by Sun Microsystems. Java technology is based on the concept of a single Java virtual machine (JVM) -- a translator between the language and the underlying software and hardware. All implementations of the programming language must emulate the JVM, thus enabling Java programs to run on any system that has a version of the JVM.
The Java programming language is unusual because Java programs are both compiled (translated into an intermediate language called Java bytecodes) and interpreted (bytecodes parsed and run by the JVM). Compilation occurs once, while interpretation happens each time the program is run. Compiled bytecode is a form of optimized machine code for the JVM; the interpreter is an implementation of the JVM.
The Java platform, which comes in three versions (see Multiple versions of the Java platform below), consists of the JVM and the Java Application Programming Interface (API), a large collection of ready-made software components to ease the development and deployment of applets and applications, including robust, secure and interoperable enterprise applications. The Java API is grouped into libraries of related classes and interfaces; the libraries are known as packages.
Multiple versions of the Java platform
As Java technology soared in popularity, developers clamored for something simpler. Sun Microsystems addressed this need by creating three versions of the Java platform -- the Standard Edition, the Enterprise Edition, and the Micro Edition.
Learn more about it:
• J2SE (Java 2 Standard Edition). The standard Java 2 SDK, tools, runtimes, and APIs for developers who write, deploy, and run applets and applications in the Java programming language. The Magic with Merlin columns provide an excellent overview of J2SE version, 1.4. And for those ready to tangle with the latest version, J2SE 1.5 (also known as "Tiger"), the Magic with Merlin author is penning a new series, Taming Tiger.
• J2EE (Java 2 Enterprise Edition). The enterprise version simplifies the construction and deployment of multitier enterprise applications by basing them on standardized modular components, by providing a complete set of services to those components, and by handling many details of application behavior automatically, without complex programming. The J2EE pathfinder columns will add to your knowledge of J2EE.
• J2ME (Java 2 Micro Edition). This version is a highly optimized Java runtime environment that specifically addresses the consumer space, the range of small (physically and in memory capability) devices from smart phones or pagers to the set-top box. Learn more in the comprehensive four-part series of two tutorials and two companion articles that focus on J2ME and the Mobile Information Device Profile (MIDP). (You can also find many J2ME resources in the developerWorks Wireless technology section.)
What are the Java component technologies?
Managing the alphabet soup of Java technologies acronyms is probably as large a job as managing the progress of the language through the Java Community Process. Following is a partial list of components, optional packages, and extensions for each version of the language -- in other words, the intricate parts that make up the whole of the platform -- complete with a short deion and a link to a resource to demonstrate its place in the Java development world. Note that many of the following resources are available across the Editions.
Technologies in J2SE:
• Java Access Bridge for Microsoft Windows acts as a bridge that allows Windows-based assistive technology to interact with the Java Accessibility API. (See "Coding for accessibility.")
• JavaBeans Component Architecture is a platform-neutral specification that defines a set of standard component software APIs for the Java platform. (See "Reflecting, introspecting, and customizing JavaBeans.")
• Javadoc is a tool for generating API 文档ation in HTML from doc comments in source code. (See "I have to 文档 THAT?.")
• Java Foundation Classes (Swing) (JFC) is a set of Java class libraries provided to support building GUIs and graphics functionality for Java-based client applications. (See "The Java 2 user interface.")
• Java Platform Debugger Architecture (JPDA) is the debugging support infrastructure for Java 2. JPDA includes three layered APIs:
o JDI (Java Debug Interface), a high-level programming-language interface that includes support for remote debugging.
o JDWP (Java Debug Wire Protocol) defines the format of information and requests transferred between the debugging process and the debugger front-end.
o JVMDI (Java Virtual Machine Debug Interface) is a low-level native interface that defines the services a JVM must provide for debugging.
(See "The future of software development.")
• Java 2D API is a set of classes for advanced 2D graphics and imaging that provides extensive support for image compositing and alpha channel images, a set of classes to provide accurate color space definition and conversion, and a set of display-oriented imaging operators. (See the tutorial "Introduction to Java 2D.")
• Java Web Start lets you simplify deployment of Java applications by giving you the ability to download and launch full-featured applications (like spreadsheets) with a single click and without going through installation procedures. (See "Java Web Start.")
• Java Database Connectivity (JDBC) is an API that lets you access most tabular data sources from within Java, providing cross-DBMS connectivity to a wide range of SQL databases and access to other tabular data sources, such as spreadsheets or flat files. (See "What's new in JDBC 3.0.")
• Remote Method Invocation (RMI) provides a bootstrapping naming service, doesn't 无效 无效s, and uses object serialization to let programmers create distributed Java technology-based applications in which the methods of remote Java objects can be invoked from other Java virtual machines, potentially on different hosts. (See the tutorial "Java distributed objects: Using RMI and CORBA.")
• Java Advanced Imaging (JAI) is an API that provides a set of object-oriented interfaces that support a simple, high-level programming model which allows developers to manipulate images easily. (See "Govern your images with JSP code.")
• Java Authentication and Authorization Service (JAAS) is a package that enables services to authenticate and enforce access controls on users by implementing a Java version of the standard Pluggable Authentication Module (PAM) framework and by supporting user-based authorization. (See "Java security with JAAS and JSSE"; try the tutorial "Java security, Part 2: Authentication and authorization"; "Extend JAAS for class instance-level authorization" is another good source of information.)
• Java Cryptography Extension (JCE) is a set of packages that provides a framework and implementations for encryption, key generation and agreement, and Message Authentication Code (MAC) algorithms. It provides encryption support for symmetric, asymmetric, block, and stream ciphers, and supports secure streams and sealed objects. (See the tutorial "Java security: Crypto basics.")
• Java Data Objects (JDO) is a standard interface-based Java model abstraction of persistence that allows application programmers to directly store their Java domain model instances into the persistent store (database), potentially replacing such methods as direct file I/O, serialization, JDBC and EJB Bean Managed Persistence (BMP), or Container Managed Persistence (CMP) Entity Beans. (See the tutorial "Hands-on Java Data Objects"; for a deeper examination, try "Object-relation mapping without the container.")
• Java Management Extensions (JMX) provides tools for building distributed, Web-based, modular and dynamic applications for managing and monitoring devices, applications, and service-driven networks. JMX Remote extends the JMX specification by offering the ability to standardize the means to access these agents remotely. (See the three-part "From black boxes to enterprises: JMX 1.1 style.")
• Java Media Framework (JMF) enables audio, video, and other time-based media to be added to Java applications and applets. (See the tutorial "Java Media Framework basics.")
• Java Naming and Directory Interface (JNDI) is a standard extension that provides Java applications with a unified interface to multiple naming and directory services in the enterprise, enabling seamless connectivity to heterogeneous enterprise naming and directory services. (See "Industrial-strength JNDI optimization"; also try "Navigate the JNDI maze.")
• Java Secure Socket Extensions (JSSE) is a set of packages that enables secure Internet communications, implementing a Java version of SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols and including functionality for data encryption, server authentication, message integrity, and optional client authentication. (See "Java security with JAAS and JSSE"; also try the tutorial "Using JSSE for secure socket communication.")
• Java Speech API (JSAPI) -- which includes the Grammar Format (JSGF) and Markup Language (JSML) specifications -- allows Java applications to incorporate speech technology into user interfaces. JSAPI defines a cross-platform API to support command and control recognizers, dictation systems and speech synthesizers. (See this section of "The Java 2 user interface.")
• Java 3D is an API developers can use to easily incorporate scalable, platform-independent 3D graphics into Java applications by providing a set of object-oriented interfaces that support a simple, high-level programming model. (See the tutorial "Java 3D joy ride.")
Technologies in J2EE:
• Java API for XML Processing (JAXP) supports processing of XML 文档s using DOM, SAX, and XSLT by letting applications parse and transform XML 文档s independent of a particular XML processing implementation and by giving developers the flexibility to swap between XML processors without making application code changes. (See "Explore online XML data with Java programming.")
• Java API for XML Registries (JAXR) provides a uniform and standard API for accessing different kinds of XML registries (an enabling infrastructure for building, deploying, and discovering Web services). (See Java technology standards.)
• Java API for XML-based RPC (JAX-RPC) enables developers to develop SOAP-based interoperable and portable Web services. (See Java technology standards.)
• SOAP with Attachments API for Java (SAAJ) enables developers to produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note. (Start with "Send and receive SOAP messages with SAAJ"; "Get ahead with Java Web services" has information on this and the previous three technologies; for more on XML technologies, try the developerWorks XML section.)
• Common Object Request Broker Architecture (CORBA) is the open standard for heterogeneous computing that complements Java by providing a distributed objects framework, services to support that framework, and interoperability with other languages. (See the tutorial "Java distributed objects: Using RMI and CORBA"; "RMI-IIOP in the enterprise" is another good info source)
• ECperf is a benchmark designed to measure the performance and scalability of Web-business systems. It includes: the EJB components that constitute the application; the Web client that uses JSP for single user/interactive testing; schemas and load programs; makefiles and deployment deors; and the driver program to implement the run rules and simulate the client load. (See Java technology standards.)
• Enterprise JavaBeans (EJB) is a technology that uses a component model to simplify the development of middleware applications by providing automatic support for services such as transactions, security, database connectivity, and more. (See the tutorial "Getting started with Enterprise JavaBeans technology," which introduces the technology; also, see the series EJB best practices.)
• Java Authorization Contract for Containers (Java ACC) is a specification that defines the installation and configuration of authorization providers for use by containers. Java ACC defines the interfaces that a provider must make available to allow container deployment tools to create and manage permission collections corresponding to roles. (See the tutorial "Developing accessible GUIs with Swing.")
• JavaMail is an API that provides a set of abstract classes that model a mail system. (See the tutorial "Fundamentals of JavaMail API.")
• Java Message Service (JMS) is an API that adds a provider framework that enables the development of portable, message-based applications for the Java platform by defining a common set of messaging concepts and programming strategies that will be supported by all JMS technology-compliant messaging systems. (See "Get the message: Messaging in J2EE 1.4"; "Enterprise messaging with JMS"; "Implementing vendor-independent JMS solutions"; and the tutorial "Introducing the Java Message Service.")
• JavaServer Faces (JSF) provides a programming model that helps developers craft Web applications by assembling reusable UI components in a page, connecting these components to an application data source, and wiring client-generated events to server-side event handlers. (See JSF for nonbelievers, UI development with JavaServer Faces"; "Integrating Struts, Tiles, and JavaServer Faces"; and the Faces Component Catalog of reusable components and Faces tools.)
• JavaServer Pages (JSP) lets Web developers rapidly develop and easily maintain dynamic, platform-independent Web pages with separate user interfaces and content generation so designers can change the page layout without altering the dynamic content. The technology uses XML-like tags that encapsulate the logic that generates the content for the page. (See the tutorial "Introduction to JavaServer Pages technology"; also, see the series JSP best practices.)
• Java Servlets are Java's way to extend and enhance the reach of Web servers. They do this by providing a component-based, platform-independent method for building Web-based applications without the performance limitations of CGI programs. (There is plenty of information about servlets on developerWorks. Roy Miller's Introduction to Java Servlet technology should get you started.)
• J2EE Connector Architecture (JCA) defines a standard architecture for connecting J2EE platforms to heterogeneous EISs (Enterprise Information Systems) by defining a set of scalable, secure, and transactional mechanisms, enabling an EIS vendor to provide a standard resource adapter that plugs into an application server. (See "Choosing among JCA, JMS, and Web services for EAI"; "Integrate remote enterprise information systems with JCA, JMS, and Web services"; and the tutorial "Introduction to the J2EE Connector Architecture.")
• J2EE Management Specification (JMX) defines a management information model for the J2EE platform, the J2EE Management Model. The model is designed to be interoperable with many management systems and protocols, and includes standard mappings of the model to the Common Information Model (CIM), an SNMP Management Information Base (MIB), and to the Java object model through a server resident EJB component, the J2EE Management EJB Component (MEJB). (See "From black boxes to enterprises: Management, JMX 1.1 style.")
• Java Transaction API (JTA) is a high-level, implementation- and protocol-independent API that allows applications and application servers to access transactions. Java Transaction Service (JTS) specifies the implementation of a Transaction Manager which supports JTA and implements the Java mapping of the OMG Object Transaction Service (OTS) 1.1 specification at the level below the API. JTS propagates transactions using the Internet Inter-ORB Protocol (IIOP). (See "Understanding JTS -- An introduction to transactions.")
Technologies in J2ME:
• Connected Limited Device Configuration (CLDC) is one of two configurations that make up the Java runtime environment for resource-constrained mobile information devices. CLDC outlines the most basic set of libraries and virtual machine features that must be present in each implementation of a J2ME environment which includes the K virtual machine (KVM). (See "Know no limits: Approaches to mobile device constraints")
• Mobile Information Device Profile (MIDP) is one of two configurations that make up the Java runtime environment for resource-constrained mobile information devices. MIDP provides the core application functionality, including the user interface, network connectivity, local data storage, and application lifecycle management. (See the tutorial "Implementing Push technology with J2ME and MIDP.")
• Connected Device Configuration (CDC) is a standards-based framework for building and delivering applications that can be shared across a range of network-connected consumer and embedded devices. (See "Securing wireless J2ME.")
• The developerWorks Wireless technology section contains several articles and tutorials on J2ME-related technologies.
Java networking technologies:
• JAIN is a set of Java-based APIs that enable the rapid development of next generation telecom products and services. JSLEE is an event-driven component-based container technology, designed for high performance, asynchronous, fault tolerant application servers. (See Java technology standards.)
• Java Metadata Interface (JMI) is a specification that implements a dynamic, platform-neutral infrastructure that enables the creation, storage, access, discovery, and exchange of metadata. It is based on the Meta Object Facility (MOF) specification from the Object Management Group (OMG) and consists of a set of basic modeling artifacts described using UML (Unified Modeling Language). (See Java technology standards.)
• JavaGroups is a software toolkit (API library) for designing, implementing, and experimenting with distributed system solutions. (See "High-impact Web tier clustering, Part 1" and Part 2.)
• Jini is an open architecture for creating highly adaptive network-centric services for both hardware and software. Jini system architecture consists of three categories: programming model, infrastructure, and services. (See "Jini networking technology, the next step.")
• JXTA is a set of open protocols that allows any connected device on the network to communicate and collaborate in a P2P manner. JXTA peers create a virtual network where any peer can interact with other peers and resources directly, even when some of the peers and resources are behind firewalls and NATs or are on different network transports. (See "Making P2P interoperable: The JXTA story;" also try "JXTA 2: A high-performance, massively scalable P2P network.")
Windows-based assistive technology to interact with the Java Accessibility API. (See "Coding for accessibility.")
• JavaBeans Component Architecture is a platform-neutral specification that defines a set of standard component software APIs for the Java platform. (See "Reflecting, introspecting, and customizing JavaBeans.")
• Javadoc is a tool for generating API 文档ation in HTML from doc comments in source code. (See "I have to 文档 THAT?.")
• Java Foundation Classes (Swing) (JFC) is a set of Java class libraries provided to support building GUIs and graphics functionality for Java-based client applications. (See "The Java 2 user interface.")
• Java Platform Debugger Architecture (JPDA) is the debugging support infrastructure for Java 2. JPDA includes three layered APIs:
o JDI (Java Debug Interface), a high-level programming-language interface that includes support for remote debugging.
o JDWP (Java Debug Wire Protocol) defines the format of information and requests transferred between the debugging process and the debugger front-end.
o JVMDI (Java Virtual Machine Debug Interface) is a low-level native interface that defines the services a JVM must provide for debugging.
(See "The future of software development.")
• Java 2D API is a set of classes for advanced 2D graphics and imaging that provides extensive support for image compositing and alpha channel images, a set of classes to provide accurate color space definition and conversion, and a set of display-oriented imaging operators. (See the tutorial "Introduction to Java 2D.")
• Java Web Start lets you simplify deployment of Java applications by giving you the ability to download and launch full-featured applications (like spreadsheets) with a single click and without going through installation procedures. (See "Java Web Start.")
• Java Database Connectivity (JDBC) is an API that lets you access most tabular data sources from within Java, providing cross-DBMS connectivity to a wide range of SQL databases and access to other tabular data sources, such as spreadsheets or flat files. (See "What's new in JDBC 3.0.")
• Remote Method Invocation (RMI) provides a bootstrapping naming service, doesn't 无效 无效s, and uses object serialization to let programmers create distributed Java technology-based applications in which the methods of remote Java objects can be invoked from other Java virtual machines, potentially on different hosts. (See the tutorial "Java distributed objects: Using RMI and CORBA.")
• Java Advanced Imaging (JAI) is an API that provides a set of object-oriented interfaces that support a simple, high-level programming model which allows developers to manipulate images easily. (See "Govern your images with JSP code.")
• Java Authentication and Authorization Service (JAAS) is a package that enables services to authenticate and enforce access controls on users by implementing a Java version of the standard Pluggable Authentication Module (PAM) framework and by supporting user-based authorization. (See "Java security with JAAS and JSSE"; try the tutorial "Java security, Part 2: Authentication and authorization"; "Extend JAAS for class instance-level authorization" is another good source of information.)
• Java Cryptography Extension (JCE) is a set of packages that provides a framework and implementations for encryption, key generation and agreement, and Message Authentication Code (MAC) algorithms. It provides encryption support for symmetric, asymmetric, block, and stream ciphers, and supports secure streams and sealed objects. (See the tutorial "Java security: Crypto basics.")
• Java Data Objects (JDO) is a standard interface-based Java model abstraction of persistence that allows application programmers to directly store their Java domain model instances into the persistent store (database), potentially replacing such methods as direct file I/O, serialization, JDBC and EJB Bean Managed Persistence (BMP), or Container Managed Persistence (CMP) Entity Beans. (See the tutorial "Hands-on Java Data Objects"; for a deeper examination, try "Object-relation mapping without the container.")
• Java Management Extensions (JMX) provides tools for building distributed, Web-based, modular and dynamic applications for managing and monitoring devices, applications, and service-driven networks. JMX Remote extends the JMX specification by offering the ability to standardize the means to access these agents remotely. (See the three-part "From black boxes to enterprises: JMX 1.1 style.")
• Java Media Framework (JMF) enables audio, video, and other time-based media to be added to Java applications and applets. (See the tutorial "Java Media Framework basics.")
• Java Naming and Directory Interface (JNDI) is a standard extension that provides Java applications with a unified interface to multiple naming and directory services in the enterprise, enabling seamless connectivity to heterogeneous enterprise naming and directory services. (See "Industrial-strength JNDI optimization"; also try "Navigate the JNDI maze.")
• Java Secure Socket Extensions (JSSE) is a set of packages that enables secure Internet communications, implementing a Java version of SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols and including functionality for data encryption, server authentication, message integrity, and optional client authentication. (See "Java security with JAAS and JSSE"; also try the tutorial "Using JSSE for secure socket communication.")
• Java Speech API (JSAPI) -- which includes the Grammar Format (JSGF) and Markup Language (JSML) specifications -- allows Java applications to incorporate speech technology into user interfaces. JSAPI defines a cross-platform API to support command and control recognizers, dictation systems and speech synthesizers. (See this section of "The Java 2 user interface.")
• Java 3D is an API developers can use to easily incorporate scalable, platform-independent 3D graphics into Java applications by providing a set of object-oriented interfaces that support a simple, high-level programming model. (See the tutorial "Java 3D joy ride.")
Technologies in J2EE:
• Java API for XML Processing (JAXP) supports processing of XML 文档s using DOM, SAX, and XSLT by letting applications parse and transform XML 文档s independent of a particular XML processing implementation and by giving developers the flexibility to swap between XML processors without making application code changes. (See "Explore online XML data with Java programming.")
• Java API for XML Registries (JAXR) provides a uniform and standard API for accessing different kinds of XML registries (an enabling infrastructure for building, deploying, and discovering Web services). (See Java technology standards.)
• Java API for XML-based RPC (JAX-RPC) enables developers to develop SOAP-based interoperable and portable Web services. (See Java technology standards.)
• SOAP with Attachments API for Java (SAAJ) enables developers to produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note. (Start with "Send and receive SOAP messages with SAAJ"; "Get ahead with Java Web services" has information on this and the previous three technologies; for more on XML technologies, try the developerWorks XML section.)
• Common Object Request Broker Architecture (CORBA) is the open standard for heterogeneous computing that complements Java by providing a distributed objects framework, services to support that framework, and interoperability with other languages. (See the tutorial "Java distributed objects: Using RMI and CORBA"; "RMI-IIOP in the enterprise" is another good info source)
• ECperf is a benchmark designed to measure the performance and scalability of Web-business systems. It includes: the EJB components that constitute the application; the Web client that uses JSP for single user/interactive testing; schema 脚本s and load programs; makefiles and deployment de脚本ors; and the driver program to implement the run rules and simulate the client load. (See Java technology standards.)
• Enterprise JavaBeans (EJB) is a technology that uses a component model to simplify the development of middleware applications by providing automatic support for services such as transactions, security, database connectivity, and more. (See the tutorial "Getting started with Enterprise JavaBeans technology," which introduces the technology; also, see the series EJB best practices.)
• Java Authorization Contract for Containers (Java ACC) is a specification that defines the installation and configuration of authorization providers for use by containers. Java ACC defines the interfaces that a provider must make available to allow container deployment tools to create and manage permission collections corresponding to roles. (See the tutorial "Developing accessible GUIs with Swing.")
• JavaMail is an API that provides a set of abstract classes that model a mail system. (See the tutorial "Fundamentals of JavaMail API.")
• Java Message Service (JMS) is an API that adds a provider framework that enables the development of portable, message-based applications for the Java platform by defining a common set of messaging concepts and programming strategies that will be supported by all JMS technology-compliant messaging systems. (See "Get the message: Messaging in J2EE 1.4"; "Enterprise messaging with JMS"; "Implementing vendor-independent JMS solutions"; and the tutorial "Introducing the Java Message Service.")
• JavaServer Faces (JSF) provides a programming model that helps developers craft Web applications by assembling reusable UI components in a page, connecting these components to an application data source, and wiring client-generated events to server-side event handlers. (See JSF for nonbelievers, UI development with JavaServer Faces"; "Integrating Struts, Tiles, and JavaServer Faces"; and the Faces Component Catalog of reusable components and Faces tools.)
• JavaServer Pages (JSP) lets Web developers rapidly develop and easily maintain dynamic, platform-independent Web pages with separate user interfaces and content generation so designers can change the page layout without altering the dynamic content. The technology uses XML-like tags that encapsulate the logic that generates the content for the page. (See the tutorial "Introduction to JavaServer Pages technology"; also, see the series JSP best practices.)
• Java Servlets are Java's way to extend and enhance the reach of Web servers. They do this by providing a component-based, platform-independent method for building Web-based applications without the performance limitations of CGI programs. (There is plenty of information about servlets on developerWorks. Roy Miller's Introduction to Java Servlet technology should get you started.)
• J2EE Connector Architecture (JCA) defines a standard architecture for connecting J2EE platforms to heterogeneous EISs (Enterprise Information Systems) by defining a set of scalable, secure, and transactional mechanisms, enabling an EIS vendor to provide a standard resource adapter that plugs into an application server. (See "Choosing among JCA, JMS, and Web services for EAI"; "Integrate remote enterprise information systems with JCA, JMS, and Web services"; and the tutorial "Introduction to the J2EE Connector Architecture.")
• J2EE Management Specification (JMX) defines a management information model for the J2EE platform, the J2EE Management Model. The model is designed to be interoperable with many management systems and protocols, and includes standard mappings of the model to the Common Information Model (CIM), an SNMP Management Information Base (MIB), and to the Java object model through a server resident EJB component, the J2EE Management EJB Component (MEJB). (See "From black boxes to enterprises: Management, JMX 1.1 style.")
• Java Transaction API (JTA) is a high-level, implementation- and protocol-independent API that allows applications and application servers to access transactions. Java Transaction Service (JTS) specifies the implementation of a Transaction Manager which supports JTA and implements the Java mapping of the OMG Object Transaction Service (OTS) 1.1 specification at the level below the API. JTS propagates transactions using the Internet Inter-ORB Protocol (IIOP). (See "Understanding JTS -- An introduction to transactions.")
Managing the alphabet soup of Java technologies acronyms is probably as large a job as managing the progress of the language through the Java Community Process. Following is a partial list of components, optional packages, and extensions for each version of the language -- in other words, the intricate parts that make up the whole of the platform -- complete with a short de脚本ion and a link to a resource to demonstrate its place in the Java development world. Note that many of the following resources are available across the Editions.
Technologies in J2SE:
• Java Access Bridge for Microsoft Windows acts as a bridge that allows Windows-based assistive technology to interact with the Java Accessibility API. (See "Coding for accessibility.")
• JavaBeans Component Architecture is a platform-neutral specification that defines a set of standard component software APIs for the Java platform. (See "Reflecting, introspecting, and customizing JavaBeans.")
• Javadoc is a tool for generating API 文档ation in HTML from doc comments in source code. (See "I have to 文档 THAT?.")
• Java Foundation Classes (Swing) (JFC) is a set of Java class libraries provided to support building GUIs and graphics functionality for Java-based client applications. (See "The Java 2 user interface.")
• Java Platform Debugger Architecture (JPDA) is the debugging support infrastructure for Java 2. JPDA includes three layered APIs:
o JDI (Java Debug Interface), a high-level programming-language interface that includes support for remote debugging.
o JDWP (Java Debug Wire Protocol) defines the format of information and requests transferred between the debugging process and the debugger front-end.
o JVMDI (Java Virtual Machine Debug Interface) is a low-level native interface that defines the services a JVM must provide for debugging.
(See "The future of software development.")
• Java 2D API is a set of classes for advanced 2D graphics and imaging that provides extensive support for image compositing and alpha channel images, a set of classes to provide accurate color space definition and conversion, and a set of display-oriented imaging operators. (See the tutorial "Introduction to Java 2D.")
• Java Web Start lets you simplify deployment of Java applications by giving you the ability to download and launch full-featured applications (like spreadsheets) with a single click and without going through installation procedures. (See "Java Web Start.")
• Java Database Connectivity (JDBC) is an API that lets you access most tabular data sources from within Java, providing cross-DBMS connectivity to a wide range of SQL databases and access to other tabular data sources, such as spreadsheets or flat files. (See "What's new in JDBC 3.0.")
• Remote Method Invocation (RMI) provides a bootstrapping naming service, doesn't 无效 无效s, and uses object serialization to let programmers create distributed Java technology-based applications in which the methods of remote Java objects can be invoked from other Java virtual machines, potentially on different hosts. (See the tutorial "Java distributed objects: Using RMI and CORBA.")
• Java Advanced Imaging (JAI) is an API that provides a set of object-oriented interfaces that support a simple, high-level programming model which allows developers to manipulate images easily. (See "Govern your images with JSP code.")
• Java Authentication and Authorization Service (JAAS) is a package that enables services to authenticate and enforce access controls on users by implementing a Java version of the standard Pluggable Authentication Module (PAM) framework and by supporting user-based authorization. (See "Java security with JAAS and JSSE"; try the tutorial "Java security, Part 2: Authentication and authorization"; "Extend JAAS for class instance-level authorization" is another good source of information.)
• Java Cryptography Extension (JCE) is a set of packages that provides a framework and implementations for encryption, key generation and agreement, and Message Authentication Code (MAC) algorithms. It provides encryption support for symmetric, asymmetric, block, and stream ciphers, and supports secure streams and sealed objects. (See the tutorial "Java security: Crypto basics.")
• Java Data Objects (JDO) is a standard interface-based Java model abstraction of persistence that allows application programmers to directly store their Java domain model instances into the persistent store (database), potentially replacing such methods as direct file I/O, serialization, JDBC and EJB Bean Managed Persistence (BMP), or Container Managed Persistence (CMP) Entity Beans. (See the tutorial "Hands-on Java Data Objects"; for a deeper examination, try "Object-relation mapping without the container.")
• Java Management Extensions (JMX) provides tools for building distributed, Web-based, modular and dynamic applications for managing and monitoring devices, applications, and service-driven networks. JMX Remote extends the JMX specification by offering the ability to standardize the means to access these agents remotely. (See the three-part "From black boxes to enterprises: JMX 1.1 style.")
• Java Media Framework (JMF) enables audio, video, and other time-based media to be added to Java applications and applets. (See the tutorial "Java Media Framework basics.")
• Java Naming and Directory Interface (JNDI) is a standard extension that provides Java applications with a unified interface to multiple naming and directory services in the enterprise, enabling seamless connectivity to heterogeneous enterprise naming and directory services. (See "Industrial-strength JNDI optimization"; also try "Navigate the JNDI maze.")
• Java Secure Socket Extensions (JSSE) is a set of packages that enables secure Internet communications, implementing a Java version of SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols and including functionality for data encryption, server authentication, message integrity, and optional client authentication. (See "Java security with JAAS and JSSE"; also try the tutorial "Using JSSE for secure socket communication.")
• Java Speech API (JSAPI) -- which includes the Grammar Format (JSGF) and Markup Language (JSML) specifications -- allows Java applications to incorporate speech technology into user interfaces. JSAPI defines a cross-platform API to support command and control recognizers, dictation systems and speech synthesizers. (See this section of "The Java 2 user interface.")
• Java 3D is an API developers can use to easily incorporate scalable, platform-independent 3D graphics into Java applications by providing a set of object-oriented interfaces that support a simple, high-level programming model. (See the tutorial "Java 3D joy ride.")
Technologies in J2EE:
• Java API for XML Processing (JAXP) supports processing of XML 文档s using DOM, SAX, and XSLT by letting applications parse and transform XML 文档s independent of a particular XML processing implementation and by giving developers the flexibility to swap between XML processors without making application code changes. (See "Explore online XML data with Java programming.")
• Java API for XML Registries (JAXR) provides a uniform and standard API for accessing different kinds of XML registries (an enabling infrastructure for building, deploying, and discovering Web services). (See Java technology standards.)
• Java API for XML-based RPC (JAX-RPC) enables developers to develop SOAP-based interoperable and portable Web services. (See Java technology standards.)
• SOAP with Attachments API for Java (SAAJ) enables developers to produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note. (Start with "Send and receive SOAP messages with SAAJ"; "Get ahead with Java Web services" has information on this and the previous three technologies; for more on XML technologies, try the developerWorks XML section.)
• Common Object Request Broker Architecture (CORBA) is the open standard for heterogeneous computing that complements Java by providing a distributed objects framework, services to support that framework, and interoperability with other languages. (See the tutorial "Java distributed objects: Using RMI and CORBA"; "RMI-IIOP in the enterprise" is another good info source)
• ECperf is a benchmark designed to measure the performance and scalability of Web-business systems. It includes: the EJB components that constitute the application; the Web client that uses JSP for single user/interactive testing; schema 脚本s and load programs; makefiles and deployment de脚本ors; and the driver program to implement the run rules and simulate the client load. (See Java technology standards.)
• Enterprise JavaBeans (EJB) is a technology that uses a component model to simplify the development of middleware applications by providing automatic support for services such as transactions, security, database connectivity, and more. (See the tutorial "Getting started with Enterprise JavaBeans technology," which introduces the technology; also, see the series EJB best practices.)
• Java Authorization Contract for Containers (Java ACC) is a specification that defines the installation and configuration of authorization providers for use by containers. Java ACC defines the interfaces that a provider must make available to allow container deployment tools to create and manage permission collections corresponding to roles. (See the tutorial "Developing accessible GUIs with Swing.")
• JavaMail is an API that provides a set of abstract classes that model a mail system. (See the tutorial "Fundamentals of JavaMail API.")
• Java Message Service (JMS) is an API that adds a provider framework that enables the development of portable, message-based applications for the Java platform by defining a common set of messaging concepts and programming strategies that will be supported by all JMS technology-compliant messaging systems. (See "Get the message: Messaging in J2EE 1.4"; "Enterprise messaging with JMS"; "Implementing vendor-independent JMS solutions"; and the tutorial "Introducing the Java Message Service.")
• JavaServer Faces (JSF) provides a programming model that helps developers craft Web applications by assembling reusable UI components in a page, connecting these components to an application data source, and wiring client-generated events to server-side event handlers. (See JSF for nonbelievers, UI development with JavaServer Faces"; "Integrating Struts, Tiles, and JavaServer Faces"; and the Faces Component Catalog of reusable components and Faces tools.)
• JavaServer Pages (JSP) lets Web developers rapidly develop and easily maintain dynamic, platform-independent Web pages with separate user interfaces and content generation so designers can change the page layout without altering the dynamic content. The technology uses XML-like tags that encapsulate the logic that generates the content for the page. (See the tutorial "Introduction to JavaServer Pages technology"; also, see the series JSP best practices.)
• Java Servlets are Java's way to extend and enhance the reach of Web servers. They do this by providing a component-based, platform-independent method for building Web-based applications without the performance limitations of CGI programs. (There is plenty of information about servlets on developerWorks. Roy Miller's Introduction to Java Servlet technology should get you started.)
• J2EE Connector Architecture (JCA) defines a standard architecture for connecting J2EE platforms to heterogeneous EISs (Enterprise Information Systems) by defining a set of scalable, secure, and transactional mechanisms, enabling an EIS vendor to provide a standard resource adapter that plugs into an application server. (See "Choosing among JCA, JMS, and Web services for EAI"; "Integrate remote enterprise information systems with JCA, JMS, and Web services"; and the tutorial "Introduction to the J2EE Connector Architecture.")
• J2EE Management Specification (JMX) defines a management information model for the J2EE platform, the J2EE Management Model. The model is designed to be interoperable with many management systems and protocols, and includes standard mappings of the model to the Common Information Model (CIM), an SNMP Management Information Base (MIB), and to the Java object model through a server resident EJB component, the J2EE Management EJB Component (MEJB). (See "From black boxes to enterprises: Management, JMX 1.1 style.")
• Java Transaction API (JTA) is a high-level, implementation- and protocol-independent API that allows applications and application servers to access transactions. Java Transaction Service (JTS) specifies the implementation of a Transaction Manager which supports JTA and implements the Java mapping of the OMG Object Transaction Service (OTS) 1.1 specification at the level below the API. JTS propagates transactions using the Internet Inter-ORB Protocol (IIOP). (See "Understanding JTS -- An introduction to transactions.")
Technologies in J2ME:
• Connected Limited Device Configuration (CLDC) is one of two configurations that make up the Java runtime environment for resource-constrained mobile information devices. CLDC outlines the most basic set of libraries and virtual machine features that must be present in each implementation of a J2ME environment which includes the K virtual machine (KVM). (See "Know no limits: Approaches to mobile device constraints")
• Mobile Information Device Profile (MIDP) is one of two configurations that make up the Java runtime environment for resource-constrained mobile information devices. MIDP provides the core application functionality, including the user interface, network connectivity, local data storage, and application lifecycle management. (See the tutorial "Implementing Push technology with J2ME and MIDP.")
• Connected Device Configuration (CDC) is a standards-based framework for building and delivering applications that can be shared across a range of network-connected consumer and embedded devices. (See "Securing wireless J2ME.")
• The developerWorks Wireless technology section contains several articles and tutorials on J2ME-related technologies.
Java networking technologies:
• JAIN is a set of Java-based APIs that enable the rapid development of next generation telecom products and services. JSLEE is an event-driven component-based container technology, designed for high performance, asynchronous, fault tolerant application servers. (See Java technology standards.)
• Java Metadata Interface (JMI) is a specification that implements a dynamic, platform-neutral infrastructure that enables the creation, storage, access, discovery, and exchange of metadata. It is based on the Meta Object Facility (MOF) specification from the Object Management Group (OMG) and consists of a set of basic modeling artifacts described using UML (Unified Modeling Language). (See Java technology standards.)
• JavaGroups is a software toolkit (API library) for designing, implementing, and experimenting with distributed system solutions. (See "High-impact Web tier clustering, Part 1" and Part 2.)
• Jini is an open architecture for creating highly adaptive network-centric services for both hardware and software. Jini system architecture consists of three categories: programming model, infrastructure, and services. (See "Jini networking technology, the next step.")
• JXTA is a set of open protocols that allows any connected device on the network to communicate and collaborate in a P2P manner. JXTA peers create a virtual network where any peer can interact with other peers and resources directly, even when some of the peers and resources are behind firewalls and NATs or are on different network transports. (See "Making P2P interoperable: The JXTA story;" also try "JXTA 2: A high-performance, massively scalable P2P network.")
How does Java technology relate to SOA/Web services?
A service-oriented architecture is a component model that relates the functional units of an application (known as services, hence Web services) through well-defined interfaces and contracts between the services. The interface is defined in a neutral manner independent of the hardware, operating system, and programming language in which the service is implemented, allowing services constructed on different systems to interact with each other in a uniform, universal manner. SOAs are a loosely-coupled alternative model to the more traditional, tightly-coupled, object-oriented models.
The resulting Web services allow business rules and processes to be defined in XML so software applications can communicate in a platform- and programming language-independent manner. XML technology makes data portable and facilitates the creation of messages, while Java technology makes code portable. The fact that XML and the Java language work well together makes them an ideal combination to build and deploy Web services.
Learn more about it:
• The "New to SOA and Web services" and "New to XML" pages on developerWorks will help you get oriented in these complex technologies.
• You may also want to visit the developerWorks Web architecture zone for excellent technical advice enabling your enterprise.
How can I improve my Java programming skills?
There are two routes to take to improve your skills -- take a course (for certification or just for the learning) or teach yourself (and of course, practice by writing code). Besides tapping the knowledge of experienced developers, the certification path can offer tangible proof to prospective employers that you possess the skills needed to build the technology they require. And by experimenting on your own, using available resources, you sharpen your skills in various areas of Java technology. The following resources should help either endeavor.
Learn more about it:
• For a comprehensive introduction to the Java language, Roy Miller's Introduction to Java programming and Intermediate Java programming tutorials should get you started.
• If those tutorials seem a little daunting, you might want to try out Robocode. Robocode is an easy-to-use robotics battle simulator built on Java technology that teaches you to program while providing hours of pure entertainment. For an introduction to Robocode, read "Rock 'em, sock 'em Robocode!"
• The Magic with Merlin and Taming Tiger series are excellent references for sharpening your Java programming claws.
• If you're a C/C++ programmer new to Java, the "Java programming for C/C++ developers" tutorial can help get you up to speed by comparing and contrasting Java programming concepts with those of C/C++.
• If you're thinking about certifying your Java skills, there are several exams you can take. In an effort to help you prep for the exams, our friends at Whizlabs have developer step-by-step guides, including Sun Certified Java Programmer (SCJP) 1.4, Sun Certified Web Component Developer (SCWCD), and Sun Certified Business Component Developer (SCBCD) . Coming soon is their guide for the Sun Certified Enterprise Architect.
• IBM offers professional certification in such related technologies as WebSphere development (for enterprise Java applications), DB2, XML, e-business, and Linux.
• If you haven't heard of Extreme Programming or XP, a philosophy of application design that incorporates continuous-stage testing, writing tests before the code, on-site customer 无效, refactoring (improving code without changing functionality), and more, this article can deliver a good tool for writing Java applications. (The practices are detailed in Demystifying Extreme Programming: "XP distilled" revisited, Part 2.)
• Translating design theory into practical application(s) is the focus of the Java theory and practice series.
• Java programmers are wise to design applications with integrated bug detection and testing, so developerWorks offers a collection of columns on Java debugging (focusing on a tool known as bug patterns) called Diagnosing Java code.
• developerWorks offers a world of hands-on, Java-based tutorials -- the next best learning experience to writing the code yourself.
• For an even more interactive approach to learning how to use the Java language, dive into the Java discussion forums, moderated by noted experts with years of real-world experience in crafting Java-related technology.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/40351/showart_315598.html |
|