Mostrando postagens com marcador API. Mostrar todas as postagens
Mostrando postagens com marcador API. Mostrar todas as postagens

OSGi: Open Services Gateway Initiative

Recentemente, a RedHat lançou o programa JBoss Open Choice, que basicamente é uma modalidade de suporte para ambientes "leves" Java. Isto é, sem um servidor JEE completo. Estes ambientes, não são necessáriamente de pequeno porte. Conheço soluções JSE, que são 24x7 e processam milhões de transações diáriamente.

Mais informações sobre o JBoss Open Choice no blog do Edgar Silva:
http://edgarsilva.com.br/2009/06/08/jboss-open-choice-para-quem-precise-de-suporte/

Na lista de tecnologias do programa aparece a OSGi. Com a aprovação da JSR-291, a OSGi foi oficializada como um padrão da plataforma Java. Apesar de sua origem ser os dispositivos embarcados, esta tecnologia está crescendo nos servidores, se tornando uma opção para desenvolvimento de componentes. Já faz algum tempo que a RedHat vem investindo em OSGi. Por exemplo, mudou a arquitetura do JBoss para Microcontainer (baseado em OSGi), lançou o JbossOSGi e agora este suporte. Para quem acha que nunca usou esta tecnologia, saiba que os plugins do Eclipse seguem este padrão. Abaixo falo um pouco sobre a tecnologia e neste sábado (13/06), vou ministrar uma palestra sobre assunto no Tchelinux Caxias 2009.

OSGi é o nome da tecnologia, mas também dá o nome ao consorcio que agrupa empresas de tecnologia como Ericsson, Siemens, Motorola, IBM, Oracle, entre outros. O objetivo desta iniciativa foi criar uma especificação aberta para o desenvolvimento, configuração e gerenciamento de serviços para a Plataforma Java. Com isto, ela oferece um padrão para montagem dinâmica de sistemas baseados em componentes. Tornando possível a definição de componentes, fazendo o controle de visibilidade de seus recursos, o gerenciamento de dependências com outros componentes e suas versões, o controle do seu ciclo de vida, entre outros. Os componentes são chamados de bundles na especificação da OSGi.
O resultado desta especificação foi um padrão onde um bundle exporta serviços e a API que ele fornece. Este bundle pode encontrar outros serviços utilizando o registro de serviços do OSGi. No modelo, um bundle é como uma aplicação distribuída em um arquivo JAR, com seu arquivo de manifesto que, além de exportar pacotes, pode disponibilizar serviços. Este manifesto fornece ao framework informações da classe que ativa o bundle, versão, os pacotes externos Java e quais partes da sua API estão disponíveis para os demais bundles.

Arquitetura OSGi

O framework OSGi gerencia de forma dinâmica as modificações dos bundles no ambiente, validando dependências entre bundles e serviços. Ele possui mecanismos para controlar a instalação, ativação, desativação, atualização e remoção de bundles físicos. Proporciona um modelo de programação onde a especificação do serviço é feita através de interfaces Java, separando a especificação de sua execução.

Java: Swing, AWT ou SWT? Por que não QT?

O Qt é uma biblioteca multi-plataforma, para desenvolvimento de interfaces gráficas de aplicações. Ele é mais conhecido pelos desenvolvedores e usuários de Linux, por sua utilização no KDE, excelente sistema de gerenciamento de janelas. O Qt Jambi é a biblioteca para que o Qt seja utilizado com Java. Esta biblioteca é bem completa e possui muitos recursos para desenvolvimento de GUI's. Esta disponível a opção de desenvolvimento com o Eclipse.
Clique no link e confira...




http://doc.trolltech.com/qtjambi-4.3.2_01/com/trolltech/qt/qtjambi-index.html

Android: Lançado novo SDK com mudanças na API

Conforme foi anunciado, o Google lançou a nova versão do SDK do Android. Ele vem com novidades como: nova interface, animações, codecs, entre outros. Abaixo algumas das alterações na API.

Pacotes removidos:
android.graphics.glutils -> temporariamente indisponível
android.speech.recognition -> temporariamente indisponível
com.google.android.xmppService -> renomeado para com.google.android.gtalkservice
org.apache.commons.codec
org.apache.commons.codec.binary
org.apache.commons.codec.language
org.apache.commons.codec.net
org.apache.commons.httpclient -> use org.apache.http.*
org.apache.commons.httpclient.auth -> use org.apache.http.*
org.apache.commons.httpclient.cookie -> use org.apache.http.*
org.apache.commons.httpclient.methods -> use org.apache.http.*
org.apache.commons.httpclient.methods.multipart -> use org.apache.http.*
org.apache.commons.httpclient.params -> use org.apache.http.*
org.apache.commons.httpclient.protocol -> use org.apache.http.*
org.apache.commons.httpclient.util -> use org.apache.http.*


Novos Pacotes:
android.awt
android.content.pm
android.graphics.drawable.shapes
android.telephony.gsm.stk
android.test.mock
com.google.android.gtalkservice -> substituí com.google.android.xmppService.
org.apache.http
org.apache.http.auth
org.apache.http.auth.params
org.apache.http.client
org.apache.http.client.methods
org.apache.http.client.methods.multipart
org.apache.http.client.params
org.apache.http.client.protocol
org.apache.http.client.utils
org.apache.http.conn
org.apache.http.conn.params
org.apache.http.conn.ssl
org.apache.http.conn.util
org.apache.http.cookie
org.apache.http.cookie.params
org.apache.http.entity
org.apache.http.impl
org.apache.http.impl.auth
org.apache.http.impl.client
org.apache.http.impl.conn
org.apache.http.impl.conn.tsccm
org.apache.http.impl.cookie
org.apache.http.impl.entity
org.apache.http.impl.io
org.apache.http.io
org.apache.http.message
org.apache.http.params
org.apache.http.protocol
org.apache.http.util
org.apache.http.util.concurrent


Pacotes Alterados:
android
android.app
android.content
android.database
android.database.sqlite
android.graphics
android.graphics.drawable
android.hardware
android.location
android.media
android.net
android.opengl
android.os
android.provider
android.telephony
android.telephony.gsm
android.text
android.text.method
android.text.style
android.util
android.view
android.view.animation
android.webkit
android.widget
com.google.android.maps
java.lang
java.lang.annotation
java.lang.reflect
java.math
java.net
java.security
java.util
java.util.concurrent
java.util.regex
java.util.zip
javax.microedition.khronos.opengles
javax.net.ssl
javax.sound.sampled
org.bluez


http://code.google.com/android/migrating/m3-to-m5/changes.html
http://code.google.com/android/migrating/m3-to-m5/m5-api-changes.html
http://code.google.com/android/download.html

Java: em busca da JVM multi-linguagem

Sun quer aumentar o alcance da JVM (Java Virtual Machine). O projeto "Da Vinci Machine" tem como objetivo ser uma tecnologia para facilitar a implementação de outras linguagens dentro da JVM.

Muitas linguagens já foram implementadas na JVM, mas este projeto visa facilitar e aumentar a compatibilidade com as outras linguagens. A JVM foi projetada para trabalhar com a linguagem Java e existem peculiaridades de outras linguagens que dificultam a sua implementação. Recursos da "Da Vinci Machine" estão previstos para JDK 7.




http://www.nytimes.com/idg/IDG_002570DE00740E18002573E1007BAFDF.html?ref=technology

Android: a vez do NetBeans

Os fãs do NetBeans estão trabalhando para que seja possível desenvolver aplicações Android com ele. O Undroid é um plugin para o NetBeans 6, que apesar de não estar acabado, possui recursos como Smart Código, Refactoring, debug, entre outros.




http://undroid.nolimit.cz/

Novo SDK do Android

Durante o Android Workshop (Munich) foi anunciado que será lançado um novo SDK nas próximas semanas.
E o melhor é que não será simplesmente uma versão para corrigir bugs. Serão incluídas novas API's e melhoradas as já existentes. No plugin do Eclipse serão adicionadas novas funcionalidades. Mas o que está causando mais curiosidade é o anuncio de uma nova interface (GUI) para o Android. É esperar para ver....

http://jars.de/java/android-workshop-in-munich

Android vs Java: comparando as API´s

Apesar de desenvolvermos aplicações para o Android em Java, este não possui uma JVM. Ele utiliza a VM Dalvik que tem um subset do Java SE, isto é, não possuí a API completa. A VM Dalvik é otimizada para dispositivos com pouca capacidade de memória e não utiliza os arquivos padrão bytecode.
Um exemplo é a ausência do pacote javax.swing, pois o Android possui uma API própria para tratamento de GUI. Abaixo uma lista dos pacotes JSE suportados e não suportados pelo Android.

Suportados:

  • java.io - File and stream I/O
  • java.lang (except java.lang.management) - Language and exception support
  • java.math - Big numbers, rounding, precision
  • java.net - Network I/O, URLs, sockets
  • java.nio - File and channel I/O
  • java.security - Authorization, certificates, public keys
  • java.sql - Database interfaces
  • java.text - Formatting, natural language, collation
  • java.util (including java.util.concurrent) - Lists, maps, sets, arrays, collections
  • javax.crypto - Ciphers, public keys
  • javax.net - Socket factories, SSL
  • javax.security (except javax.security.auth.kerberos, * javax.security.auth.spi, and javax.security.sasl)
  • javax.sound - Music and sound effects
  • javax.sql (except javax.sql.rowset) - More database interfaces
  • javax.xml.parsers - XML parsing
  • org.w3c.dom (but not sub-packages) - DOM nodes and elements
  • org.xml.sax - Simple API for XML

Não suportados:

  • java.applet
  • java.awt
  • java.beans
  • java.lang.management
  • java.rmi
  • javax.accessibility
  • javax.activity
  • javax.imageio
  • javax.management
  • javax.naming
  • javax.print
  • javax.rmi
  • javax.security.auth.kerberos
  • javax.security.auth.spi
  • javax.security.sasl
  • javax.swing
  • javax.transaction
  • javax.xml (except javax.xml.parsers)
  • org.ietf.*
  • org.omg.*
  • org.w3c.dom.* (sub-packages)
Também são suportados outros pacotes que não são da JSE:
  • org.apache.commons.codec - Utilities for encoding and decoding
  • org.apache.commons.httpclient - HTTP authentication, cookies, methods, and protocol
  • org.bluez - Bluetooth support
  • org.json - JavaScript Object Notation

Fonte: http://blogs.zdnet.com/Burnette/?p=504