Page navigation
- ¿Qué es la tecnología Java?
- ¿Por qué la tecnología Java es importante?
- ¿Cuáles son las tecnologías de componentes Java?
- ¿Cuál es la relación entre la tecnología Java y el desarrollo de aplicaciones Web?
- ¿Cuál es la relación entre la tecnología Java y SOA/ servicios web?
- ¿Cuál es la relación entre la tecnología Java, lenguajes dinámicos y programación funcional?
- ¿Cuál es la relación entre la tecnología Java y el desarrollo de software con código fuente abierto?
- ¿Cómo puedo mejorar mis habilidades en programación Java?
- ¿Qué herramientas y productos de IBM están disponibles para programadores Java?
¿Principiante en programación Java? Esta página proporciona una visión general de los fundamentos de la™tecnología Java y explica cuál es el papel de esa tecnología en el contexto contemporáneo del desarrollo de software. Enlaces a un contenido introductorio importante en developerWorks, otros recursos de formación, como también descargas y productos de IBM le proporcionan un rico punto de partida para más investigaciones.
¿Qué es la tecnología Java?
La tecnología Java es un lenguaje de programación y también una plataforma:
- Ellenguaje de programación Javaes un lenguaje de alto nivel, orientado a objetos. El lenguaje es inusual porque los programas Java son tantocompiladoscomointerpretados. La compilación, que ocurre una vez por programa, traduce el código Java a un lenguaje intermedio llamado Javabytecode. El Bytecode, por su turno, es analizado y ejecutado (interpretado) por Java Virtual Machine (JVM)—un traductor entre el idioma, el sistema operativo subyacente y el hardware. Todas las implementaciones del lenguaje de programación deben emular JVM, para permitir que los programas Java ejecuten en cualquier sistema que tenga una versión de JVM.
- Laplataforma Javaes una plataforma sólo de software que ejecuta sobre la base de varias plataformas de hardware. Viene en tres versiones (consulteDiferentes ediciones de la plataforma Javaa continuación). Está compuesto por JVM y la interfaz de programación de aplicaciones (API) Java—un amplio conjunto de componentes de software (clases) listos para usar que facilitan el desarrollo y despliegue de applets y aplicaciones. La API Java abarca desde objetos básicos a conexión en red, seguridad, generación de XML y servicios web. Está agrupada en bibliotecas—conocidas comopaquetes—de clases e interfaces relacionadas.
Además de la API Java, toda implementación completa de la plataforma Java incluye:
- Herramientas de desarrollo para compilar, ejecutar, supervisar, depurar y documentar aplicaciones.
- Mecanismos estándar para desplegar aplicaciones para los usuarios.
- Kits de herramientas de interfaz de usuario que permiten crear interfaces gráficas de usuario (GUIs) sofisticadas.
- Bibliotecas de integración que permiten que los programas accedan a bases de datos y manipulen objetos remotos.
También está probado que JVM es una plataforma robusta para ejecutar lenguajes que no sean Java. Por ejemplo: Groovy, Scala e implementaciones especiales de Ruby y Python ofrecen a los desarrolladores la versatilidad de programar para JVM en un lenguaje dinámico o funcional. (Para obtener más informaciones, consulte¿Cuál es la relación entre la tecnología Java, lenguajes dinámicos y programación funcional?a continuación.)
La tecnología Java fue desarrollada por Sun Microsystems. Java Community Process (JCP), una organización abierta de desarrolladores y titulares de licencias de Java en todo el mundo, desarrolla y revisa especificaciones tecnológicas, implementaciones de referencia y kits de compatibilidad tecnológica de la tecnología Java. En 2007, Sun puso a disposición la mayor parte de su tecnología Java central como software con código fuente abierto bajo la licencia general pública GNU versión 2 (GPLv2). (Para obtener más informaciones, consulte¿Cuál es la relación entre la tecnología Java y el desarrollo de software con código fuente abierto? a continuación.)
¿Por qué la tecnología Java es importante?
El principal beneficio del lenguaje Java es la portabilidad de las aplicaciones Java entre plataformas de hardware y sistemas operativos—posible por que la JVM instalada en cada plataforma entiende el mismo bytecode.
La escalabilidad del lenguaje y de la plataforma Java es impresionante. Es fácil escribir aplicaciones (o adaptarlas a partir de aplicaciones Java ya existentes) para dispositivos con recursos limitados. Al escalar, el lenguaje es una estructura ideal para la programación Web en el servidor, ampliando la capacidad computacional de un usuario desde el desktop hasta los recursos de la Web. Ya que fue diseñado para ejecutar con seguridad en redes, el lenguaje permite ese nivel de seguridad al operar en Internet. Los componentes Web son soportados por plataformas de tiempo de ejecución denominadascontenedores Web, cuyos servicios incluyen asignación de solicitudes, seguridad, concurrencia, gestión de ciclo de vida y acceso a APIs como las de nombramiento, transacciones y e-mail. En el extremo superior, losservidores de aplicaciones Javaactúan como contenedores Web para componentes Java, XML y servicios web que pueden interactuar con bases de datos y proporcionar contenido Web dinámico; también proporcionan un entorno de despliegue de aplicaciones para aplicaciones empresariales, con posibilidades de gestión de transacciones, seguridad, agrupación en clúster, rendimiento, disponibilidad, conectividad y escalabilidad.
Al soportar estándares abiertos en la empresa, la tecnología Java abre la puerta para el uso de XML y servicios web para ayudar a compartir informaciones y aplicaciones entre líneas de negocios (consulte¿Cuál es la relación entre la tecnología Java y SOA/ servicios web?a continuación). La tecnología Java actúa como la "espina dorsal" de varios productos y servicios de consultoría técnica de IBM (consulte¿Qué herramientas y productos de IBM están disponibles para programadores Java?a continuación) y es crítica para iniciativas clave de IBM:
- Aprenda más acerca de la filosofía de IBM deArquitectura Orientada a Servicios - SOAy cómo SOA ayuda a los usuarios a crear aplicaciones compuestas que utilizan funcionalidad de varias fuentes dentro y fuera de la empresa para soportar procesos empresariales horizontales. Para ayudarle en su iniciación a SOA, IBM ofrecePuntos de entrada de SOA basados en negocios y basados en TI.
- LaGestión de Procesos Empresariales de IBM posibilitada por SOAofrece un enfoque al cambio estratégico que es completo y basado en componentes. Las ofertas se basan en un software flexible, extensible y basado en estándares abiertos—que incluye tecnología Java—e infraestructura de hardware.
- El Proyecto Zeroes un proyecto incubadora de IBM enfocado en el desarrollo ágil de aplicaciones Web 2.0 que siguen SOA.
Diferentes ediciones de la plataforma Java
Las tres ediciones de la plataforma Java facilita el proceso para que desarrolladores de software, prestadores de servicios y fabricantes de dispositivos enfoquen mercados específicos:
- Java SE (Plataforma Java, Standard Edition). Java SE permite desarrollar y desplegar aplicaciones Java en desktops y servidores, como también en entornos incorporados y en tiempo real. Java SE incluye clases que soportan el desarrollo de servicios web Java y proporciona la base para la Plataforma Java, Enterprise Edition (Java EE). Java SE 6 ("Mustang") es la versión actual de la plataforma Java SE. Muchos desarrolladores Java usan Java SE 5, también conocido como Java 5.0 o "Tiger."
- Las columnasTaming Tigerproporcionan una excelente visión general de Java SE 5. Muchas aplicaciones Java ya existentes se basan en Java SE 5, y la mayoría de los conceptos en esta serie son relevantes para la programación Java SE 6.
- "Monitor and diagnose performance in Java SE 6" describe las mejoras de rendimiento y supervisión en Java SE 6.
- "Create rich applications with JavaFX Script" presenta un lenguaje de script que opera sobre la base de Java SE 6 y facilita la codificación interfaces de usuario sofisticadas.
- El artículo en dos partes "Invoke dynamic language dynamically" presenta una API Java SE 6 API que habilita el código Java a ejecutar códigos de script dinámico y viceversa. (Consulte¿Cuál es la relación entre la tecnología Java, lenguajes dinámicos y programación funcional?a continuación para obtener más informaciones acerca del uso de lenguajes de script con la plataforma Java.)
- Las columnasTaming Tigerproporcionan una excelente visión general de Java SE 5. Muchas aplicaciones Java ya existentes se basan en Java SE 5, y la mayoría de los conceptos en esta serie son relevantes para la programación Java SE 6.
- Java EE (Plataforma Java, Enterprise Edition). La versión empresarial ayuda a desarrollar y desplegar aplicaciones Java en el servidor que son portables, robustas, escalables y seguras. Basado en Java SE, Java EE proporciona APIs de comunicaciones, servicios web, modelos de componentes y gestión para implementar aplicaciones SOA y Web 2.0 de nivel empresarial.
- "Get to know Java EE 5" y "Java EE 5: Power and productivity with less complexity" le presentan la versión más reciente de la plataforma Java EE.
- Consulte laSerie Springpara aprender sobre una infraestructura muy utilizada para crear aplicaciones Java EE livianas y robustas.
- Las columnasJ2EE pathfinderamplían su conocimiento de Java EE.
- La serie de artículosGetting on the open road: Migrate to the Java platformse destina a ayudar a los desarrolladores de aplicaciones .NET, cliente/ servidor Windows, y ASP a pasar a usar la plataforma Java EE.
- "Get to know Java EE 5" y "Java EE 5: Power and productivity with less complexity" le presentan la versión más reciente de la plataforma Java EE.
- Java ME (Plataforma Java, Micro Edition). Java ME proporciona un entorno para aplicaciones que operan en una gama amplia de dispositivos móviles e incorporados, como teléfonos móviles, PDAs, STBs de TV e impresoras. La plataforma Java ME incluye interfaces de usuario flexibles, un modelo robusto de seguridad, una gama amplia de protocolos de red incorporados y amplio soporte para aplicaciones conectadas en red y offline que pueden ser descargadas dinámicamente. Las aplicaciones basadas en las especificaciones de Java ME se escriben una única vez para una gama amplia de dispositivos, pero aprovechan las posibilidades nativas de cada dispositivo.
- Aprenda más en laserie en cuatro partescon dos tutoriales y dos artículos adjuntos que enfocan J2ME y Mobile Information Device Profile (MIDP).
- Otro recurso útil es el tutorial en dos partes "Build smart J2ME mobile applications."
- Aprenda más en laserie en cuatro partescon dos tutoriales y dos artículos adjuntos que enfocan J2ME y Mobile Information Device Profile (MIDP).
¿Cuáles son las tecnologías de componentes Java?
La zona de developerWorks sobre tecnología Java mantiene un glosario completo de lastecnologías estándar de componentes Java. Lo que sigue es una lista parcial de componentes, paquetes opcionales y extensiones para cada edición de la plataforma—las partes complejas que constituyen el todo—completa con una breve descripción y un enlace a un recurso para demostrar su lugar en el mundo del desarrollo Java.Note que muchos de los siguientes recursos están disponibles en las tres ediciones.
Tecnologías en Java SE:
- Java Foundation Classes (Swing)(JFC) es un conjunto de bibliotecas de clases Java que soportan la creación de GUIs y funcionalidad de gráficos para aplicaciones de cliente basadas en Java. (Consulte el tutorial "Introduction to Swing"; "Dynamic interface design with Swing" y "Enhance the accessibility of your GUIs" también le ayudará en su iniciación a Swing.)
- JavaHelpes un sistema de ayuda extensible, independiente de plataforma, que habilita a los desarrolladores y autores a incorporar ayuda online en applets, componentes, aplicaciones, sistemas operativos y dispositivos para proporcionar documentación online basada en la Web. (Consulte "Lend a helping hand to your Java applications.")
- Java Native Interface(JNI) permite que el código Java que opera dentro de una JVM interopere con aplicaciones y bibliotecas escritas en otros lenguajes de programación. (Consulte "Handling events from native objects in Java code.")
- Java Platform Debugger Architecture(JPDA) es la infraestructura de soporte de depuración para Java SE. (Consulte "The future of software development.")
- Java 2D APIes un conjunto de clases para imágenes y gráficos 2D avanzados que proporciona un amplio soporte a la composición de imágenes e imágenes de canal alfa, un conjunto de clases para proporcionar una definición exacta del espacio de colores y conversión y un conjunto de operadores de imagen orientados a la pantalla. (Consulte el tutorial "Introduction to Java 2D.")
- Java Web Startayuda a simplificar el despliegue de aplicaciones Java al permitir que los usuarios descarguen y lancen aplicaciones con funcionalidad completa (como hojas de cálculo) con un único clic, sin tener que pasar por los procedimientos de instalación. (Consulte "Java Web Start.")
- Certification Path APIproporciona un conjunto de APIs para crear, construir y verificar vías de certificación (también conocidas como "cadenas de certificado") para establecer con seguridad la correlación entre una clave pública y un asunto. (Consulte "Generate certificate chains for testing Java applications.")
- Java Database Connectivity(JDBC) es una API que permite acceder a la mayoría de las fuentes de datos tabulares desde dentro del código Java, al proporcionar conectividad cruzada de DBMS a una gama amplia de bases de datos SQL y acceso a otras fuentes de datos tabulares, como hojas de cálculo o archivos planos. (Consulte "What's new in JDBC 3.0" y el tutorial "Understanding JDBC.")
- Java Advanced Imaging(JAI) es una API que proporciona un conjunto de interfaces orientadas a objetos y soporta un modelo de programación simple de alto nivel que permite a los desarrolladores manipular imágenes fácilmente. (Consulte"Govern your images with JSP code.")
- Java Authentication and Authorization Service(JAAS) es un paquete que permite que los servicios autentiquen y hagan cumplir controles del acceso de los usuarios al implementar una versión Java de la infraestructura Pluggable Authentication Module (PAM) estándar al soportar la autorización basada en los usuarios. (Consulte "Java security with JAAS and JSSE" y "Java authorization internals"; pruebe el tutorial "Java security, Part 2: Authentication and authorization.")
- Java Cryptography Extension(JCE) es un conjunto de paquetes que proporciona una infraestructura e implementaciones para algoritmos de cifrado, generación y acuerdo de claves y código de autenticación de mensajes (MAC). Proporciona soporte de cifrado para cifras simétricas, asimétricas, de bloqueo y de secuencia (stream) y soporta secuencias seguras y objetos sellados. (Consulte el tutorial "Java security: Crypto basics.")
- Java Data Objects(JDO) es una abstracción de persistencia de un modelo Java estándar basado en interfaz que permite a los programadores almacenar directamente sus instancias del modelo de dominio Java en el almacenamiento persistente (base de datos), que puede reemplazar métodos como entrada/ salida directa de archivos, serialización, JDBC y beans de entidad de persistencia administrada por bean EJB (BMP) o beans de entidad administrados por contenedor(CMP). (Consulte el tutorial "Hands-on Java Data Objects".
- Java Management Extensions(JMX) proporciona herramientas para crear aplicaciones distribuidas, basadas en la Web, modulares y dinámicas para administrar y supervisar dispositivos, aplicaciones y redes basadas en servicios. (Consulte "Using Java platform management beans.")
- Java Media Framework(JMF) permite que se agreguen audio, video y otros tipos de multimedia basados en tiempo a aplicaciones y applets Java. (Consulte el tutorial "Java Media Framework basics.")
- Java Naming and Directory Interface(JNDI) proporciona a las aplicaciones Java una interfaz unificada para varios servicios de nombramiento y directorios en la empresa, lo que permite la conectividad sin problemas a servicios empresariales heterogéneos de nombramiento y directorios. (Consulte "Industrial-strength JNDI optimization" y pruebe también "Navigate the JNDI maze.")
- Java Secure Socket Extensions(JSSE) es un conjunto de paquetes que permite comunicaciones seguras en Internet, al implementar una versión Java de los protocolos SSL (capa de sockets seguros) y TLS (seguridad de la capa de transporte) e incluir la funcionalidad de cifrado de datos, autenticación de servidores, integridad de mensajes y autenticación opcional de clientes. (Consulte "Java security with JAAS and JSSE" y pruebe también el tutorial "Using JSSE for secure socket communication.")
- Java Speech API(JSAPI) incluye las especificaciones Grammar Format (JSGF) y Markup Language (JSML) y permite que las aplicaciones Java incorporen tecnología de habla a las interfaces de usuario. JSAPI define una API para varias plataformas para soportar reconocedores de comandos y control, sistemas de dictado y sintetizadores de habla. (Consulte esta sección de "The Java 2 user interface.")
- Java 3Des una API que los desarrolladores pueden usar para incorporar fácilmente gráficos 3D escalables e independientes de plataforma a aplicaciones Java, al proporcionar un conjunto de interfaces orientadas a objeto que soportan un modelo de programación simple y de alto nivel. (Consulte el tutorial "Java 3D joy ride.")
- El recurso de metadatospermite marcar clases, interfaces, campos y métodos que tienen determinados atributos para que puedan ser procesados en formas especiales por herramientas de desarrollo y de despliegue o bibliotecas de tiempo de ejecución. (Consulte "Annotations in Tiger, Part 1: Add metadata to Java code.")
- La API Java Content Repositoryes una API para acceder a repositorios de contenido en Java SE independientemente de la implementación. El repositorio de contenido es un sistema de gestión de informaciones de alto nivel que es un superconjunto de repositorios de datos convencionales. (Consulte "Introducing the Java Content Repository API.")
- Enumeracionesson un tipo que permite representar datos específicos como constantes, en una forma segura para los tipos. (Consulte "Getting started with enumerated types.")
- Genéricosle permiten definir clases con parámetros de tipos abstractos que usted especifica en el momento de la instanciación. (Consulte "Introduction to generic types in JDK 5.0" y lea "Spice up collections with generics and concurrency" para ver cómo los genéricos facilitan el trabajo con colecciones en Java SE 6.)
- Las Utilidades de Concurrenciason un conjunto de utilidades de nivel mediano que proporcionan una funcionalidad que normalmente es necesaria en programas concurrentes. (Consulte el tutorial "Concurrency in JDK 5.0.")
- Java API for XML Processing(JAXP) permite que las aplicaciones Java analicen y transformen documentos XML independientemente de la implementación específica de procesamiento XML y ofrece la flexibilidad de intercambiar procesadores XML sin cambiar el código de la aplicación.Java API for XML Binding(JAXB) le permite automatizar la correlación entre documentos XML y objetos Java. (Consulte el tutorial en tres partes "XML programming in Java technology"; profundice su conocimiento de JAXP con "All about JAXP, Part 1" y "All about JAXP, Part 2" explore más en la serie de artículosPractical data binding; consulte también la zonade developerWorks sobre XML.)
- SOAP with Attachments API for Java(SAAJ) permite que los desarrolladores produzcan y consuman mensajes en conformidad con la especificación SOAP 1.1 y la nota SOAP with Attachments. (Lea "Send and receive SOAP messages with SAAJ".)
Tecnologías en J2EE:
- La tecnología Enterprise JavaBeans(EJB) usa un modelo de componente para simplificar el desarrollo de aplicaciones de middleware con soporte automático de servicios como transacciones, seguridad y conectividad de base de datos. (Consulte el tutorial "Getting started with Enterprise JavaBeans technology," que presenta la tecnología; consulte la serieEJB best practices; vea "Design enterprise applications with the EJB 3.0 Java Persistence API.")
- La especificación de Portletsdefine un conjunto de APIs para computación en portales Java, que trata de las áreas de agregación, personalización, presentación y seguridad. (Consulte "What's new in the Java Portlet Specification V2.0 (JSR 286)?")
- JavaMailes una API que proporciona una serie de clases abstractas que modelan un sistema de correo. (Consulte el tutorial "Fundamentals of JavaMail API.")
- Java Message Service(JMS) es una API que permite el desarrollo de aplicaciones portables y basadas en mensajes para la plataforma Java al definir un conjunto común de conceptos de mensajería y estrategias de programación para todos los sistemas de mensajería compatibles con la tecnología JMS. (Consulte el tutorial "Introducing the Java Message Service.")
- JavaServer Faces(JSF) proporciona un modelo de programación que ayuda a crear aplicaciones Web al ensamblar componentes reutilizables de interfaz de usuario en una página, al conectar esos componentes a una fuente de datos de aplicación y conectar los eventos generados por los clientes a manejadores de eventos en el servidor. (Consulte el tutorial en dos partes "Getting Started with JavaServer Faces" y explore la serie de columnasJSF for nonbelievers.
- JavaServer Pages(JSP) permite que desarrolladores Web desarrollen rápidamente y mantengan fácilmente páginas Web dinámicas e independientes de plataforma con interfaces de usuario separadas y generación de contenido para que los diseñadores puedan cambiar el diseño de la página sin cambiar el contenido dinámico. La tecnología usa etiquetas semejantes a las de XML que encapsulan la lógica que genera el código para la página. (Consulte el tutorial "Introduction to JavaServer Pages technology" y vea también la serieJSP best practices.)
- Standard Tag Library for JavaServer Pages(JSTL) es un conjunto de etiquetas personalizadas que habilitan varias funciones comunes de Web sites en un formato estandarizado. (Consulte "Update your JSP pages with JSTL" y vea la serie de artículos con cuatro partes "A JSTL primer.")
- Los Java Servletsamplían y mejoran el alcance de los servidores Web al proporcionar un método basado en componentes e independiente de plataforma para crear aplicaciones basadas en la Web sin las limitaciones de rendimiento de los programas CGI. (El tutorial "Introduction to Java Servlet technology" debe proporcionar una buena iniciación.)
- J2EE Connector Architecture(JCA) define una arquitectura estándar para conectar plataformas J2EE a sistemas heterogéneos de Sistemas Empresariales de Información (EIS) al definir un conjunto de mecanismos escalables, seguros y transaccionales, que habilitan un proveedor de EIS a proporcionar un adaptador de recursos estándar que se conecta a un servidor de aplicaciones. (Consulte "Understanding JCA transactions"; "Choosing among JCA, JMS, and Web services for EAI"; "Integrate remote enterprise information systems with JCA, JMS, and Web services" y el tutorial "Introduction to the J2EE Connector Architecture.")
- J2EE Management Specification(JMX) define un modelo de informaciones de gestión para la plataforma J2EE. El modelo de gestión J2EE fue diseñado para ser interoperable con varios protocolos y sistemas de gestión e incluye correlaciones estándar entre el modelo y el Common Information Model (CIM), una base informaciones de gestión (MIB) de SNMP y el modelo de objetos Java a través de un componente EJB residente en el servidor, el J2EE Management EJB Component (MEJB). (Consulte "From black boxes to enterprises: Management, JMX 1.1 style.")
- La API Java Transaction(JTA) es una API de alto nivel, independiente de implementación y de protocolo que permite que aplicaciones y servidores de aplicaciones accedan a transacciones.Java Transaction Service(JTS) especifica la implementación de un gestor de transacciones que soporta JTA e implementa la correlación entre Java y la especificación OMG Object Transaction Service (OTS) 1.1 en el nivel inferior a la API. JTS propaga las transacciones a través del protocolo de Internet Inter-ORB(IIOP). (Consulte "Understanding JTS—An introduction to transactions.")
Tecnologías en J2ME:
- Mobile Information Device Profile(MIDP) es una de las dos configuraciones que constituyen el entorno de tiempo de ejecución Java para los dispositivos de información con limitaciones de recursos. MIDP proporciona la funcionalidad central de la aplicación, incluyendo la interfaz de usuario, conectividad de red, almacenamiento de datos local y gestión del ciclo de vida de aplicaciones. (Consulte el tutorial "Implementing Push technology with J2ME and MIDP" vea "Better MIDlets by design," "Custom GUI development with MIDP 2.0" y el tutorial "MIDlet development with the Wireless Toolkit.")
- Connected Device Configuration(CDC) es una infraestructura basada en estándares para crear y entregar aplicaciones que se pueden compartir entre una gama de dispositivos conectados en red incorporados y del consumidor. (Consulte "Securing wireless J2ME.")
- Mobile 3D Graphics API for J2ME (M3G)es una API liviana e interactiva de gráficos 3D que funciona junto con J2ME y MIDP como un paquete opcional. (Consulte el artículo en dos partes "3D graphics for Java mobile devices.")
¿Cuál es la relación entre la tecnología Java y el desarrollo de aplicaciones Web?
El lenguaje Java viene siendo desde hace mucho un pilar del desarrollo Web y, en los años recientes, hubo una explosión de infraestructuras y herramientas que optimizan el desarrollo Web en Java y facilita la creación de aplicaciones Web 2.0 ricas e interactivas.
Aprenda más sobre el desarrollo Web en el lenguaje Java:
- La serie de columnasMastering Grailses una guía referente a Grails, una estructura moderna de desarrollo Web escrita en Groovy. Grails integra perfectamente el código Java legado y al mismo tiempo agrega la flexibilidad y el dinamismo de un lenguaje de script. (Para obtener más informaciones acerca de Groovy, consulte¿Cuál es la relación entre la tecnología Java, lenguajes dinámicos y programación funcional?a continuación.)
- Ajax, una metodología de programación que usa scripts en el servidor para intercambiar datos que usan scripts en el cliente para intercambiar datos con el servidor Web, permite actualizaciones más rápidas de las páginas sin recargar las páginas varias veces. Comprenda cómo Ajax se aplica a usted como desarrollador Java en el artículo con varias partes "Ajax and Java development made simpler" y la serieAjax for Java developers. Además visite en developerWorks elcentro de recursos sobre Ajaxpara aprender mucho más sobre Ajax.
- JavaServer Faces (JSF) proporciona un modelo de programación que ayuda a crear aplicaciones Web al ensamblar componentes reutilizables de interfaz de usuario en una página, al conectar esos componentes a una fuente de datos de aplicación y conectar los eventos generados por los clientes a manejadores de eventos en el servidor. (Consulte el tutorial en dos partes "Getting Started with JavaServer Faces" y explore la serie de columnasJSF for nonbelievers.
- Eclipse Web Tools Platform (WTP) amplia el muy conocido IDE Eclipse con herramientas para desarrollar aplicaciones Web Java. (Consulte el tutorial "An introduction to the Eclipse Web Tools Platform V1.0.")
- También puede visitar lazona sobre desarrollo Web en developerWorkspara ver muchos otros recursos excelentes sobre el desarrollo de aplicaciones Web.
¿Cuál es la relación entre la tecnología Java y SOA/ servicios web?
Una arquitectura orientada a servicios es un modelo de componente que relaciona las unidades funcionales de una aplicación (conocidas comoservicios; por eso,servicios web) a través de interfaces y contratos bien definidos entre los servicios. Se define la interfaz en forma neutra, independientemente del hardware, sistema operativo y lenguaje de programación en el cual se implementa el servicio, lo que permite que servicios construidos en sistemas diferentes interactúen el uno con el otro en una forma uniforme y universal. Las SOAs son un modelo alternativo flojamente acoplado para los modelos más convencionales, que son acoplados fuertemente y orientados a objetos.
Los servicios web resultantes permiten que se definan las normas y los procesos empresariales en XML, para que las aplicaciones de software puedan comunicarse independientemente de la plataforma y del lenguaje. La tecnología XML hace los datos portables y facilita la creación de mensajes, mientras que la tecnología Java hace el código portable. El hecho de que XML y el lenguaje Java funcionan bien en conjunto hace que sean una combinación ideal para crear y desplegar servicios web.
Aprenda más sobre eso:
- Las páginasPrincipiantes en SOA y servicios webyPrincipiantes en XML (US)en developerWorks le orientarán acerca de esas tecnologías complejas.
- La serie "Java Web services" explora las infraestructuras de servicios web y nuevas capas de funcionalidad construidas sobre la base de los servicios web.
- "Build a RESTful Web service" presenta el elegante estilo arquitectónico de servicios web llamado Representational State Transfer (REST) y muestra cómo usar una infraestructura Java para crear servicios web con RESTful.
- Entender las APIs Java para RPC basada en XML (JAX-RPC) es un paso importante para escribir servicios web eficientes y efectivos en el lenguaje Java. El tutorial "Build an RPC service and client using JAX-RPC" es un excelente punto de partida.
- JAX-WS es el heredero de JAX-RPC. El tutorial "Design and develop JAX-WS 2.0 Web services" ofrece una introducción práctica a esa nueva API.
- La serie de artículos "SCA application development" es una guía deService Component Architecture(SCA), una especificación que describe un modelo para la creación de aplicaciones y sistemas a través de SOA.
- "Introduction to Service Data Objects" presenta la infraestructuraService Data Objects(SDO) que simplifica el modelo de programación de datos Java EE para aplicaciones basadas en SOA.
¿Cuál es la relación entre la tecnología Java, lenguajes dinámicos y programación funcional?
Muchos aspirantes a desarrollador Java tienen mucha experiencia en otros lenguajes. Además, incluso los desarrolladores Java experimentados reconocen que Java no es el lenguaje de programación ideal paratodaslas necesidades de desarrollo. Afortunadamente, el soporte de JVM a varios lenguajes permite que la plataforma Java aproveche la agilidad y los dispositivos de los lenguajes de script modernos y de los lenguajes funcionales para crear prototipos o ciertos tipos de aplicaciones.
Aprenda más sobre eso:
Cruzar la raya
Otras infraestructuras están influenciando la forma de construcción de las infraestructuras Java, y los conceptos que los otros lenguajes usan pueden contribuir a su programación Java. La serie de columnasCrossing borderstrata de conceptos y técnicas de programación que son distintas del desarrollo Java pero, aun así, son muy relevantes para el mismo.
- El lenguaje de script Groovy pone los dispositivos y las bibliotecas con las cuales los desarrolladores Java están más familiarizados en una infraestructura de desarrollo ágil que no requiere compilación, facilita las construcciones sintácticas y permite el uso de los scripts dentro de aplicaciones Java normales. Vea lo que Groovy puede hacer en la serie de columnasPractically Groovy.
- La API de script Java, nueva en Java SE 6 y compatible con las versiones anteriores hasta Java SE 5, proporciona una forma simple de invocar docenas de lenguajes de script a través de un conjunto pequeño de interfaces y clases concretas. También permite leer e invocar scripts externos en el tiempo de ejecución, lo que permite cambiar el comportamiento de una aplicación en ejecución. Lea más acerca de eso en el artículo con dos partes "Invoke dynamic languages dynamically."
- ¿Es un aficionado de la programación funcional?La serie de columnas The busy Java developer's guide to Scalapresenta Scala, un lenguaje de programación que combina técnicas funcionales y orientadas a objetos para JVM.
- JVM cuenta con el soporte de lenguajes alternativos desde hace mucho. Consulte la serie de columnasalt.lang.jrepara aprender más sobre el uso de implementaciones de Rexx, Ruby, JavaScript, Python y otras lenguajes en la plataforma Java.
¿Cuál es la relación entre la tecnología Java y el desarrollo de software con código fuente abierto?
Variosproyectos de código fuente abiertoamplían la tecnología Java con bibliotecas, herramientas, infraestructuras, aplicaciones y servidores de aplicaciones para ayudar a los programadores a aprovechar esa tecnología potente. Varias tecnologías de código fuente abierto fueran incorporadas a la plataforma Java propiamente dicha, y otras son las favoritas de los desarrolladores Java (y, en algunos casos, estándares de facto).
Aprenda acerca de algunas tecnologías importantes de código fuente abierto para programación Java:
- LaApache Software Foundationes la organización que representa una gama de proyectos de código fuente abierto predominantemente basados en Java. He aquí una muestra:
- Apache Strutses una infraestructura para crear aplicaciones Web Java Web basadas en el patrón de diseño applications based on the Modelo Vista Controlador (MVC). (Consulte "Best practices for Struts development.")
- Apache Shalees una infraestructura moderna para el desarrollo de aplicaciones Web—el sucesor de Apache Struts—basado en la tecnología JavaServer Pages. (La serie de artículosAll hail Shalepresenta Shale.)
- Apache Antes la herramienta de compilación que es el estándar de facto para el desarrollo Java. (Consulte el tutorial "Apache Ant 101: Make Java builds a snap" e "Invoking Apache Ant programmatically.")
- La herramienta de compilaciónApache Mavenfue diseñada para superar los retos de los proyectos de software modernos que requieren colaboración dinámica entre equipos de proyectos y dependen de una mezcla de componentes creados y mantenidos globalmente. (Consulte el tutorial "Introduction to Apache Maven".)
- Apache Tomcates un contenedor Web muy conocido que soporta servlets y la tecnología JavaServer Pages. (El tutorial "Tomcat for beginning Web developers" le ayudará en su iniciación a Tomcat.)
- El proyectoApache Geronimoestá construyendo un servidor de aplicaciones Java EE totalmente compatible basado enteramente en componentes con código fuente abierto. (Conozca Geronimo en "Get started with Geronimo" y visite en developerWorkslos recursos del proyecto Apache Geronimopara obtener informaciones acerca de Geronimo.)
- Apache Derbyes una base de datos relacional implementado totalmente en el lenguaje Java. (Comience por "Developing with Apache Derby—Hitting the Trifecta: Introduction to Apache Derby" y visite en developerWorkslos recursos del proyecto Apache Derbypara aprender mucho más acerca de Derby.)
- Apache Strutses una infraestructura para crear aplicaciones Web Java Web basadas en el patrón de diseño applications based on the Modelo Vista Controlador (MVC). (Consulte "Best practices for Struts development.")
- Eclipsees una plataforma de desarrollo abierto neutra con relación a proveedores y un conjunto de infraestructuras de aplicaciones para crear software. La plataforma Eclipse fue escrita en el lenguaje Java y proporciona una infraestructura basada en plug-in que facilita la creación, integración y uso de herramientas de software. (IBM es un miembro fundador de Eclipse y participa activamente en la Junta de Representantes de Eclipse.org y sus subcomités de trabajo.) Aprenda más acerca de algunas de las tecnologías de componente de la plataforma para el desarrollo Java:
- AspectJes una extensión orientada a aspectos para el lenguaje Java que se puede usar para modularizar temas comunes a varias áreas, como registro y manejo de excepciones. (Consulte el tutorial "An introduction to AOP" e investigue más en la serieAOP at work.)
- ElStandard Widget Toolkit(SWT) es un kit de herramientas de interfaz de usuario destinado a proporcionar el acceso eficiente y portable a los recursos de interfaz de usuario del sistema operativo subyacente. (Consulte "A gentle introduction to SWT and JFace: How to create a simple SWT application.")
- Mylynes un rastreador de tareas sofisticado para usuarios de Eclipse. (Consulte "Mylyn 2.0, Part 1: Integrated task management" y "Mylyn 2.0, Part 2: Automated context management"" para ver una guía completa sobre Mylyn.
- LaEclipse Test and Performance Tools Platform(TPTP) suministra infraestructuras y servicios para herramientas de prueba y rendimiento. (Consulte el tutorial "Introduction: Eclipse Test and Performance Tools Platform.")
- LaEclipse Web Tools Platform(WTP) amplía la plataforma Eclipse con herramientas para desarrollar aplicaciones Web Java EE. (Consulte el tutorial "An introduction to the Eclipse Web Tools Platform V1.0.")
- AspectJes una extensión orientada a aspectos para el lenguaje Java que se puede usar para modularizar temas comunes a varias áreas, como registro y manejo de excepciones. (Consulte el tutorial "An introduction to AOP" e investigue más en la serieAOP at work.)
- La muy conocidainfraestructura Springes una infraestructura en capas para el desarrollo de aplicaciones Java EE:
- Consulte la serieSpringy el tutorial "Introduction to Spring 2 and JPA" para obtener informaciones detalladas.
- Spring Security—anteriormente conocido como Acegi Security System for Spring—es una solución de seguridad potente y flexible para aplicaciones empresariales desarrolladas con la infraestructura Spring. Aprenda más en el artículo de cuatro partes "Securing Java applications with Acegi".
- Consulte la serieSpringy el tutorial "Introduction to Spring 2 and JPA" para obtener informaciones detalladas.
- Alabrir el códigode la plataforma Java, Sun Microsystems sembró tres nuevos proyectos comunitarios bajo el nombre globaljava.net:
¿Cómo puedo mejorar mis habilidades en programación Java?
Puede tomar dos caminos para mejorar sus habilidades: un curso(para certificación o sólo para aprender) o el autoaprendizaje (y, por supuesto, practicar la escrita del código). Además de aprovechar el conocimiento de desarrolladores experimentados, vía de los cursos o de la certificación puede ofrecer una prueba concreta a los posibles empleadores de que usted tiene las habilidades necesarias para construir la tecnología que necesitan. Además, al experimentar por su propia cuenta y usar los recursos disponibles, mejora sus habilidades en la tecnología Java. Los siguientes recursos deben ayudar, no importando la vía que elija:
- Tutoriales y artículos
- developerWorks ofrece una gama detutoriales prácticos, basados en Java—la segunda mejor forma de aprender (la mejor sería escribir el código por su propia cuenta...). Los tutoriales de Roy Miller "Introduction to Java programming" e "Intermediate Java programming" son una introducción completa que ayudará en su iniciación.
- Las seriesMagic with MerlinyTaming Tigerson referencias excelentes para perfeccionar su conocimiento en programación Java.
- Traducir la teoría del diseño a aplicaciones prácticas es el enfoque de la serieJava theory and practice.
- Conviene a los programadores Java diseñar aplicaciones con detección de errores y prueba integradas. developerWorks ofrece un conjunto de columnas sobre depuración en Java (que enfocan una herramienta denominada bug patterns) llamadoDiagnosing Java code. Son otros artículos útiles sobre este tema:Testing with leverageartículos de Brian Goetz y "Kill bugs dead" del mismo autor.
- developerWorks ofrece una gama detutoriales prácticos, basados en Java—la segunda mejor forma de aprender (la mejor sería escribir el código por su propia cuenta...). Los tutoriales de Roy Miller "Introduction to Java programming" e "Intermediate Java programming" son una introducción completa que ayudará en su iniciación.
- Juegos
- Robocodees un simulador de batallas robóticas fácil de usar, basado en tecnología Java, que le enseña al programar mientras proporciona horas de puro entretenimiento. Para ver una introducción a Robocode, lea "Rock 'em, sock 'em Robocode!" y eche un vistazo a"Secrets from the Robocode masters: A collection of hints, tips, and advice from the Robocode masters."
- CodeRuler,CodeRallyyCodeInvaders Challengeson juegos de programación en tiempo real, basados en Java y en la plataforma Eclipse. Lea "Conquer medieval kingdoms with CodeRuler" para ver una introducción a CodeRuler.
- Robocodees un simulador de batallas robóticas fácil de usar, basado en tecnología Java, que le enseña al programar mientras proporciona horas de puro entretenimiento. Para ver una introducción a Robocode, lea "Rock 'em, sock 'em Robocode!" y eche un vistazo a"Secrets from the Robocode masters: A collection of hints, tips, and advice from the Robocode masters."
- Entrenamiento técnico IBM
- Elija desde una gama decursos de Java online, en aula y basados en multimediaofrecidos por IBM Global Services.
- Elija desde una gama decursos de Java online, en aula y basados en multimediaofrecidos por IBM Global Services.
- Entrenamiento para Certificación
- Si piensa en certificar sus habilidades en Java, puede realizar varios exámenes. Visite el sitioJava Certificationpara buscar recursos de entrenamiento para certificación.
- IBM ofrececertificación profesionalen tecnologías relacionadas como desarrollo WebSphere (para aplicaciones empresariales Java), software IBM Rational, DB2, XML y SOA.
- Si piensa en certificar sus habilidades en Java, puede realizar varios exámenes. Visite el sitioJava Certificationpara buscar recursos de entrenamiento para certificación.
- Foros
- Para adoptar un enfoque aún más interactivo para aprender a usar el lenguaje Java, use losforos de discusión de Java, moderados por expertos con años de experiencia concreta en la creación de tecnologías relacionadas con Java.
- Para adoptar un enfoque aún más interactivo para aprender a usar el lenguaje Java, use losforos de discusión de Java, moderados por expertos con años de experiencia concreta en la creación de tecnologías relacionadas con Java.
¿Qué herramientas y productos de IBM están disponibles para programadores Java?
IBM está en la vanguardia como uno de los mayores innovadores en el uso de la tecnología Java. La sección a continuación destaca herramientas y productos que IBM ofrece a los desarrolladores Java.
- Descargas gratis:
- La suiteKick-start Your Java Apps—DB2 Express-C, WebSphere Application Server Community Edition y el IDE Eclipse IDE—le ofrece todo lo que necesita para poner en marcha aplicaciones Web y servicios web Java simples todavía hoy.
- IBM ofrece Java Developer Kitspara crear y probar applets y aplicaciones Java SE y aplicaciones Java ME en plataformas muy utilizadas, incluyendo Windows, Linux y AIX.
- IBM Development Package for Eclipsees una herramienta de desarrollo sin soporte basada en Eclipse que permite a los desarrolladores crear y ejecutar aplicaciones Java con su entorno de desarrollo listo para ejecutar y listo para usar.
- Proyectos de lanzamiento simultáneo de EclipseDescargue paquetes gratis de software Eclipse de código abierto desde developerWorks, incluyendo los proyectos de lanzamiento simultáneo Callisto y Europa.
- Java technology on alphaWorkses un almacenamiento virtual de tecnologías emergentes generadas por IBM y relacionadas con Java, incluyendo APIs, entornos de desarrollo integrado y kits de desarrollo, componentes, implementaciones de referencia y utilidades. He aquí algunos de ellos:
- Analysis and Generation of Ant Build File. Una herramienta que ayuda a analizar y generar un archivo de compilación Ant comprobable para proyectos de Java EE y SCA desarrollados a través de IDEs Eclipse, Rational y WebSphere.
- IBM Pattern Modeling and Analysis Tool for Java Garbage Collector. Una herramienta que analiza el rastreo GC detallado y el uso del almacenamiento dinámico Java y recomienda configuraciones clave basadas en la modelación de patrones de uso del almacenamiento dinámico Java.
- IBM Thread and Monitor Dump Analyzer for Java. Una herramienta que permite identificar colgaduras, puntos muertos, contención de recursos y cuellos de botella en hebras Java.
- HeapAnalyzer. Una herramienta gráfica para descubrir posibles fugas en el almacenamiento dinámico Java.
- Abstract User Interface Markup Language Toolkit. Herramientas de desarrollo y APIs que permiten crear aplicaciones de GUI que operan en los entornos Java Swing y HTML.
- Toolkit for MPEG-4. Un conjunto de clases Java y APIs with con ejemplos de aplicaciones para generar contenido MPEG-4 para usar en dispositivos compatibles con ese tipo de archivo.
- Secure Shell Library for Java. Una implementación liviana del protocolo Secure Shell (SSH-2) del Grupo de Tareas de Ingeniería de Internet (IETF) para inicio de sesión remoto seguro y otros servicios de red seguros en una red sin seguridad.
- Fluid Sync. Una infraestructura que facilita el desarrollo de aplicaciones de colaboración y aplicaciones para varios dispositivos.
- La suiteKick-start Your Java Apps—DB2 Express-C, WebSphere Application Server Community Edition y el IDE Eclipse IDE—le ofrece todo lo que necesita para poner en marcha aplicaciones Web y servicios web Java simples todavía hoy.
- Las herramientas de IBM Rationalse basan en la plataforma Eclipse 3.0 y pueden facilitar el desarrollo, la prueba y el despliegue de aplicaciones de alta calidad. Las herramientas de Rational para desarrolladores Java incluyen:
- Rational Method Composer, una plataforma configurable de procesos de desarrollo de software.
- Herramientas de gestión de configuración de software comoClearCaseyClearQuest.
- Herramientas de prueba comoRational Robot,TestManageryTest RealTime.
- Herramientas de requisitos y análisis comoRequisitePro.
- Herramientas de desarrollo y modelación comoRational Software Modeler,Rational Systems Developer,PurifyPlusyRose Technical Developer.
- Rational Application Developer for WebSphere Software, una herramienta de desarrollo rápido de aplicaciones para desarrollar, analizar, probar, perfilar y desplegar aplicaciones Web, SOA, Java, J2EE y de portal en la plataforma IBM WebSphere.
- Rational Method Composer, una plataforma configurable de procesos de desarrollo de software.
- WebSphere Application Serveres un servidor de aplicaciones completo, con certificación Java EE, que proporciona la infraestructura segura, escalable y flexible que las empresas necesitan para tener una arquitectura orientada a servicios. Aprenda más acerca de las herramientas de desarrollo Java para la familia WebSphere:
- Visite la páginaPrincipiantes en WebSpherey el resto de los recursos técnicos sobre Websphereen developerWorkspara aprender todo sobre esa plataforma clave de integración de software de IBM.
- WebSphere Enterprise Service Busproporciona conectividad de servicios web, mensajería de JMS e integración orientada a servicios para impulsar su arquitectura SOA.
- WebSphere Process Server y WebSphere Integration Developerproporcionan una plataforma rica de integración de procesos para servicios empresariales basados en SOA.
- WebSphere sMashes una plataforma para crear y ejecutar aplicaciones dinámicas basadas en Web 2.0 a través de principios de SOA, basada en el Proyecto Zero.
- Visite el área deherramientas de desarrollo WebSpherepara obtener las más recientes informaciones técnicas y de "cómo hacer" para usar las herramientas WebSphere para crear, probar y desplegar aplicaciones Java EE en escala empresarial.
- Rational Application Developer for WebSphere Softwarees una herramienta de desarrollo rápido de aplicaciones para desarrollar, analizar, probar, perfilar y desplegar aplicaciones Web, SOA, Java, J2EE y de portal en la plataforma IBM WebSphere.
- Lazona de WebSphere Portalproporciona portlets, herramientas, tutoriales y noticias para desarrolladores que usan la tecnología WS Portal.
- WebSphere MQes un servicio de programación de aplicaciones que permite la comunicación entre programas de aplicaciones.
- WebSphere MQ Everyplacepermite el acceso a datos empresariales para trabajadores móviles y dispositivos remotos con entrega asegurada de los mensajes.
- Branch Transformation Toolkit for WebSphere Studioes una infraestructura de aplicaciones y un conjunto de herramientas especializadas basadas en Eclipse que aceleran la fase de compilación para aplicaciones de transacciones de front-office con varias capas.
- WebSphere Message Brokerproporciona un Bus de Servicios Empresariales (ESB) avanzado que proporciona conectividad y transformación universal de datos para servicios y aplicaciones basados en estándares y sin estándares para impulsar SOAs.
- Visite la páginaPrincipiantes en WebSpherey el resto de los recursos técnicos sobre Websphereen developerWorkspara aprender todo sobre esa plataforma clave de integración de software de IBM.
- Los softwares deGestión de Informaciones de IBMsoftware son una familia potente de servidores de sistemas de gestión de bases de datos relacionales (RDBMS) junto con softwares para almacenamiento de datos, análisis de datos, minería de datos, gestión de activos de multimedia, gestión de contenido empresarial e integración de informaciones. Los softwares de Gestión de Informaciones de IBMsoportan la programación Java, incluyendo aplicaciones de cliente, posibilidades en el servidor y herramientas para facilitar el desarrollo y el despliegue:
- DB2 UDBes la opción natural para una empresa abierta y basada en estándares.
- Los softwares de IBM Informixproporciona un rendimiento superior a las bases de datos en entornos con muchas transacciones.
- Los softwares de Integración de Informaciones de IBMintegran y transforman los datos para mejorar la productividad, flexibilidad y el rendimiento, para que tenga las informaciones correctas para su empresa.
- DB2 UDBes la opción natural para una empresa abierta y basada en estándares.