A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SDK Openbus - Java Tecgraf PUC-Rio Setembro de 2013.

Apresentações semelhantes


Apresentação em tema: "SDK Openbus - Java Tecgraf PUC-Rio Setembro de 2013."— Transcrição da apresentação:

1 SDK Openbus - Java Tecgraf PUC-Rio Setembro de 2013

2 Passo 1: Obtendo o SDK Openbus
A última versão do SDK Java do Openbus pode ser obtida em: Precisaremos também do JDK 1.6 ou superior

3 Libs do SDK Openbus 2.0.0.0 Openbus: Jacorb: SCS: ANT:
openbus-sdk-core jar openbus-sdk-legacy jar openbus-sdk-demo-util jar Jacorb: jacorb-3.1.jar slf4j-api jar slf4j-jdk jar SCS: scs-core jar ANT: ant jar ant-launcher jar

4 Passo 2: Preparando os stubs e skeletons
Usaremos como base a mesma IDL do exemplo StockMarket mostrado no exercício do SCS Compilar a IDL Compilar o código Java das classes geradas pelo compilador IDL e das classes que implementam as facetas descritas na IDL

5 Passo 3: Implementando as facetas do componente
O componente StockSeller possui duas facetas: StockServer StockExchange As classes StockServerImpl e StockExchangeImpl implementam, respectivamente, cada uma dessas facetas Opcionalmente, para compartilhar o estado entre as duas facetas, teremos implementada a classe StockSellerContext de contexto do componente

6 Passo 4: Implementando um Servidor
Um programa servidor se encarrega de: realizar a conexão por certificado criar o componente que implementa as facetas necessárias registrar uma oferta de serviço instalar um ShutdownHook para desconectar do barramento antes de finalizar a aplicação iniciar a execução do ORB

7 Fluxo principal do servidor
public static void main(String[] args) throws IOException, InvalidName, AdapterInactive, SCSException { // Lê arquivo de propriedades Properties props = loadProperties(); // Cria um assistente do OpenBus final Assistant assistant = connectWithOpenBus(props); final ORB orb = assistant.orb(); POA poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); poa.the_POAManager().activate(); // Dispara uma thread para garantir o recebimento de chamadas pelo ORB Thread run = new Thread() { @Override public void run() { orb.run(); } }; run.start(); // Adiciona uma thread a ser executada em caso de término do processo. Essa thread faz a desconexão com o // barramento. Thread shutdown = new Thread() { assistant.shutdown(); orb.shutdown(true); orb.destroy(); Runtime.getRuntime().addShutdownHook(shutdown); // Cria componente IComponent component = createComponent(orb, poa); // Registra o serviço no barramento ServiceProperty[] serviceProperties = new ServiceProperty[] { new ServiceProperty(“my property", “<value>") }; assistant.registerService(component, serviceProperties);

8 Fazer a conexão por certificado
private static Assistant connectWithOpenBus(Properties props) { String host = props.getProperty("host.name"); int port = Integer.parseInt(props.getProperty("host.port")); String entity = props.getProperty("seller.name"); String privateKeyFile = props.getProperty("seller.key"); PrivateKey privateKey = null; try { privateKey = OpenBusPrivateKey. createPrivateKeyFromFile(privateKeyFile); } catch (Exception e) { System.out.println("O caminho da chave privada deve apontar para uma chave válida."); e.printStackTrace(); System.exit(1); return Assistant.createWithPrivateKey(host, port, entity, privateKey);

9 Registrar a oferta de serviço
ServiceProperty[] serviceProperties = new ServiceProperty[] { new ServiceProperty("offer.domain", "Demo Hello") }; assistant.registerService(component, serviceProperties);

10 Instalar o ShutdownHook
Thread shutdown = new Thread() { @Override public void run() { assistant.shutdown(); orb.shutdown(true); orb.destroy(); } }; Runtime.getRuntime().addShutdownHook(shutdown);

11 Iniciar a execução do ORB
Thread run = new Thread() { @Override public void run() { orb.run(); } }; run.start();

12 Passo 5: Implementando o Cliente
O programa cliente se encarrega de: Conectar com o Openbus através de usuário e senha Buscar pelo(s) serviço(s) que procura Utilizar o(s) serviço(s)

13 Conectando com usuário e senha
final Assistant assistant = Assistant.createWithPassword(host, port, login, password.getBytes());

14 Procurando pelas facetas
private static IComponent findStockSeller(Assistant assistant, String offerEntity) { // busca por serviço ServiceProperty[] properties = new ServiceProperty[3]; properties[0] = new ServiceProperty("openbus.offer.entity", offerEntity); properties[1] = new ServiceProperty( "openbus.component.interface", StockServerHelper.id()); properties[2] = new ServiceProperty( "openbus.component.interface", StockExchangeHelper.id()); ServiceOfferDesc[] services = new ServiceOfferDesc[0]; try { services = assistant.findServices(properties, -1); } catch (ServiceFailure e) {…} catch (TRANSIENT e) {…} catch (COMM_FAILURE e) {…} catch (NO_PERMISSION e) { if (e.minor == NoLoginCode.value) {…} catch (Throwable e) {…} // analiza as ofertas encontradas for (ServiceOfferDesc offerDesc : services) { if (offerDesc.service_ref._non_existent()) { System.out.println(“Um serviço encontrado encontra-se indisponível."); continue; return offerDesc.service_ref; System.out.println("Nenhuma oferta válida foi encontrada."); System.exit(1);


Carregar ppt "SDK Openbus - Java Tecgraf PUC-Rio Setembro de 2013."

Apresentações semelhantes


Anúncios Google