SlideShare a Scribd company logo
1 of 46
www.elmalabarista.com
      Mario Montoya

  Jefe Desarrollo apps web & móviles (iPad,iPhone)
Objetivo ?

Presentación herramienta para “web-enable” cualquier app
RETOS
(comunes en Latinoamérica)
Internet / Cloud
  “Necesitamos una app web”
Experiencia



“No se nada/poco de web”
Interoperabilidad



“Como dar acceso a nuestro sistema/crear un API?”
Obsolescencia


“Nuestra app/gente se quedo atrás!”
“Nos dicen que tenemos que usar (.NET/Java/PHP/LoQueSea)

               o no podemos competir :(”

                           Pre
                                 sió
                                       n!
Ventaja



“ES HORA DE HACER EL SALTO”
RemObjects
  Multi-Todo !
RemObjects Software
•   Herramientas para desarrolladores

•   Especializados en infraestructura

•   Data Abstract : Bases de datos multi-nivel

•   RemObjects SDK: Framework para hacer “remoting” (pero
    por mucho la mejor implementacion existente!)

•   Creadores de Delphi Prism & mas

•   remobjects.com
Multi-Todo


   ?
Multi-Lenguaje *
                       Desarrollo servidor & clientes




.NET        Delphi              Prism                   Mono     FreePascal
                        Ademas desarrollo clientes




Obj-C        JavaScript            PHP                  Python     Ruby
 * Se puede usar cualquier otro lenguaje para acceder a los servidores
Multi-Lenguaje *
                       Desarrollo servidor & clientes




.NET        Delphi              Prism                   Mono     FreePascal
                        Ademas desarrollo clientes




Obj-C        JavaScript            PHP                  Python     Ruby
 * Se puede usar cualquier otro lenguaje para acceder a los servidores
Multi-OS



OSX / iOS           Windows                     Linux

            Despliegue servidor donde quiera!
Multi-OS



OSX / iOS           Windows                     Linux

            Despliegue servidor donde quiera!
Multi-DB *



Firebird

           SQLite

           * Muchas mas sin mencionar
Multi-Protocolo*
           Comunicación


UDP       PIPES               TCP/IP     HTTP
              Transporte


  BIN               JSON               XML
           * Otros mas sin mencionar
Iluminación

       elmalabarista.com
App Web <> Sitio Web
      Use PHP/Python/Ruby/ASP
             Sitios web, paginas
      Use RemObjects
             Servidor App Web

                      elmalabarista.com
App Web?
Servidor ERP/ Facturacion
Servidor Web
Servidor Juegos
Servidor Datos
Servidor Documentos
Servidor!

                elmalabarista.com
HTML <> HTTP!
   HTML Es presentación
         Sitios web, paginas
   HTTP Es comunicación
         Servidor App Web

                   elmalabarista.com
HTTP + JSON + XML
     Universal
       Compatible con todo
     App Web sin traumas
      No tienes que cambiar de
      lenguaje!

                     elmalabarista.com
JSON + XML+SOAP
    Lentos. “Pesados”
Agrege BINARY
     jo!     Recuerda? Multi-todo
Cone
                No elija entre estándar & lento o
                propietario & rápido.

                RO puede publicar el servidor simultaneamente en
                multiples canales (TCP/HTTP, etc) y formatos (Bin,
                XML SOAP, XML-RPC, JSON, etc)
Aplicaciones 2 niveles




    Inflexible. No reutilizable. No escalable
Aplicaciones N niveles

                      Multiplique * N para escalar




       Flexible. Reutilizable. Escalable
App clientes como sea!




    No reescriba todo cuando sale un nuevo dispositivo de moda
Como funciona (Servidor)
Con el “Service Builder” se define el servicio (funciones, métodos, etc)




              http://wiki.remobjects.com/wiki/Service_Builder
Como funciona (Servidor)
Con el “Schema modeler” se define una BD virtual (abstracta) conectada a N-BD




            http://wiki.remobjects.com/wiki/Schema_Modeler
Como funciona (Servidor)
Elija Transporte + formato (típicamente HTTP + BIN + (JSON o SOAP o XML-RPC))


 var
   ROMessage: TROBinMessage;
   ROServer: TROIndyHTTPServer;
 begin
   Writeln('RemObjects SDK for Delphi - Command Line Server');
   ROMessage := TROBinMessage.Create(TComponent(nil));
   ROServer := TROIndyHTTPServer.Create(nil);
   TROMessageDispatcher(ROServer.Dispatchers.Add).Message := ROMessage;
   try
      ROServer.Active := true;
      WriteLn('Server is active, press Enter to stop.');
      Readln;
   finally
      ROServer.Free;
      ROMessage.Free;
   end;
 end.
Como funciona (Servidor)
Implementa los métodos, de forma similar a cualquier otro

uses
  {Generated:} NewLibrary_Invk;

procedure Create_NewService(out anInstance : IUnknown);
begin
  anInstance := TNewService.Create;
end;

{ NewService }
function TNewService.Sum(const A: Integer; const B: Integer): Integer;
begin
  Result := a + b;
end;

function TNewService.GetServerTime: DateTime;
begin
  result := Now;
end;
Como funciona (Servidor)
Listo. Accesible por HTTP. NO necesita IIS o Apache. Corre en linux con Freepascal
Relativity
Publica BD. Servidor N-Tier inmediato, sin codigo. Gratuito (con restricciones)




                   http://www.remobjects.com/da/relativity.aspx
Relativity
Publica BD. Servidor N-Tier inmediato, sin codigo. Gratuito (con restricciones)




                   http://www.remobjects.com/da/relativity.aspx
Como funciona (Cliente - Delphi/FPC)
 Conectase al servidor, invoque los métodos

uses
  NewLibrary_Intf;

{$R *.dfm}

function CallSum:integer;
var
  myservice: INewService;
begin
  myservice := CoNewService.Create(ROBINMessage1, ROWinInetHTTPChannel1);
  result := myservice.Sum(1, 2);
end;

function GetDate:TDateTime;
var
  myservice : INewService;
begin
  myservice := CoNewService.Create(ROBINMessage1, ROWinInetHTTPChannel1);
  res := myservice.GetServerTime;
  result:= res;
end;

      http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(Delphi)
Como funciona (Cliente - Delphi/FPC)
 Conectase al servidor, invoque los métodos

uses
  NewLibrary_Intf;

{$R *.dfm}

function CallSum:integer;
var
  myservice: INewService;
begin
  myservice := CoNewService.Create(ROBINMessage1, ROWinInetHTTPChannel1);
  result := myservice.Sum(1, 2);
end;

function GetDate:TDateTime;
var
  myservice : INewService;
begin
  myservice := CoNewService.Create(ROBINMessage1, ROWinInetHTTPChannel1);
  res := myservice.GetServerTime;
  result:= res;
end;

      http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(Delphi)
Como funciona (Cliente - XCode/iOS)
Conectase al servidor, invoque los métodos

//Conectarse
- (MyROService_Proxy *)getProxy
{
    ROClientChannel *clientChannel = [ROHTTPClientChannel channelWithTargetUrl:
[serverCombo stringValue]];
    ROMessage *message = [ROBinMessage message];
    return [MyROService_Proxy proxyWithMessage:message channel:clientChannel];
}

//Invocar
- (IBAction) sum:(id)sender
{
    int a = [aField intValue];
    int b = [bField intValue];
    int result = [[self getProxy] Sum:a:b];
    [resultField setStringValue:[NSString stringWithFormat:@"%d", result]];
}
                            http://wiki.remobjects.com/wiki/
             Writing_a_RemObjects_SDK_for_.NET_Server_and_Mac_Client_-
                           _Start_to_Finish_(Xcode_(Mac))
Como funciona (Cliente - XCode/iOS)
Conectase al servidor, invoque los métodos

//Conectarse
- (MyROService_Proxy *)getProxy
{
    ROClientChannel *clientChannel = [ROHTTPClientChannel channelWithTargetUrl:
[serverCombo stringValue]];
    ROMessage *message = [ROBinMessage message];
    return [MyROService_Proxy proxyWithMessage:message channel:clientChannel];
}

//Invocar
- (IBAction) sum:(id)sender
{
    int a = [aField intValue];
    int b = [bField intValue];
    int result = [[self getProxy] Sum:a:b];
    [resultField setStringValue:[NSString stringWithFormat:@"%d", result]];
}
                            http://wiki.remobjects.com/wiki/
             Writing_a_RemObjects_SDK_for_.NET_Server_and_Mac_Client_-
                           _Start_to_Finish_(Xcode_(Mac))
Como funciona (Cliente - NET/Mono)
Conectase al servidor, invoque los métodos



private void bSum_Click(object sender, System.EventArgs e)
{
  // Creates a IROWindowsFormsServerService proxy
  ROWindowsFormsServer.IROWindowsFormsServerService myService;
  myService = ROWindowsFormsServer.CoROWindowsFormsServerService.Create(
                                                        message, clientChannel);

    // Calls the Sum method
    int myResult = myService.Sum(1,2);

    // Displays the result
    MessageBox.Show("The server returned "+myResult.ToString());
}




      http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(.NET)
Como funciona (Cliente - NET/Mono)
Conectase al servidor, invoque los métodos



private void bSum_Click(object sender, System.EventArgs e)
{
  // Creates a IROWindowsFormsServerService proxy
  ROWindowsFormsServer.IROWindowsFormsServerService myService;
  myService = ROWindowsFormsServer.CoROWindowsFormsServerService.Create(
                                                        message, clientChannel);

    // Calls the Sum method
    int myResult = myService.Sum(1,2);

    // Displays the result
    MessageBox.Show("The server returned "+myResult.ToString());
}




      http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(.NET)
Como funciona (Cliente - JS/HTML)
 Conectase al servidor, invoque los métodos
<html>
  <head>
    <script type="text/javascript" src="RemObjectsSDK.js"></script>
    <script type="text/javascript" src="NewLibrary_intf.js"></script>
  </head>
  <body>
    <h1>RemObjects SDK client</h1>
    <a href="#" onclick="getTime();">Get time</a><br />
    <textarea id="log" rows=10 cols=60></textarea>
    <script type="text/javascript">
       var channel = new RemObjects.SDK.HTTPClientChannel("http://" + window.location.host + "/
BIN"); //IE users use JSON
       var message = new RemObjects.SDK.BinMessage();
       var service = new NewService(channel, message);

      function getTime() {
        service.GetServerTime(function(result) {
            document.getElementById("log").value += result + "n";
        }, RemObjects.UTIL.showError);
      }
    </script>
  </body>
</html>



  http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(JavaScript)
Como funciona (Cliente - JS/HTML)
 Conectase al servidor, invoque los métodos
<html>
  <head>
    <script type="text/javascript" src="RemObjectsSDK.js"></script>
    <script type="text/javascript" src="NewLibrary_intf.js"></script>
  </head>
  <body>
    <h1>RemObjects SDK client</h1>
    <a href="#" onclick="getTime();">Get time</a><br />
    <textarea id="log" rows=10 cols=60></textarea>
    <script type="text/javascript">
       var channel = new RemObjects.SDK.HTTPClientChannel("http://" + window.location.host + "/
BIN"); //IE users use JSON
       var message = new RemObjects.SDK.BinMessage();
       var service = new NewService(channel, message);

      function getTime() {
        service.GetServerTime(function(result) {
            document.getElementById("log").value += result + "n";
        }, RemObjects.UTIL.showError);
      }
    </script>
  </body>
</html>



  http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(JavaScript)
Baterías incluidas
Si lo imagina, ya lo tiene




      Balanceo Cargas        Seguridad       Encriptacion
      Failover               Código Fuente   Notificaciones
      IIS                    Ejemplos        servidor->cliente

      CGI                    Bonjour         Mas...

      Compresión             oData
Quiere saber mas?
Lista de Recursos



  Descargue trial             http://www.remobjects.com

  Vídeos            http://www.remobjects.com/tv/da.aspx

  Documentación                http://wiki.remobjects.com

  Soporte/Foros            http://connect.remobjects.com/
Gracias!
www.elmalabarista.com

More Related Content

What's hot

Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPElwin Huaman
 
introduccion al Lenguaje php
introduccion al Lenguaje phpintroduccion al Lenguaje php
introduccion al Lenguaje phprmonago
 
Micro vs Nano (servicios)
Micro vs Nano (servicios)Micro vs Nano (servicios)
Micro vs Nano (servicios)Pedro J. Molina
 
Ruby on the Rails
Ruby on the RailsRuby on the Rails
Ruby on the Rails000ari2014
 
MAnual de php básico
MAnual de php básicoMAnual de php básico
MAnual de php básicoCleote
 
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTaller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTestingUy
 
¿Me Afirmaron Que Sql No Es Un Lenguaje De Programacion, Eso Es Cierto?
¿Me Afirmaron Que Sql No Es Un Lenguaje De Programacion, Eso Es Cierto?
¿Me Afirmaron Que Sql No Es Un Lenguaje De Programacion, Eso Es Cierto?
¿Me Afirmaron Que Sql No Es Un Lenguaje De Programacion, Eso Es Cierto? melvin9wheeler19
 
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)Domingo Suarez Torres
 
SG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelSG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelDomingo Suarez Torres
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, javaFaby Marcos Solis
 
00 Php. Paginas Web Dinamicas
00 Php. Paginas Web Dinamicas00 Php. Paginas Web Dinamicas
00 Php. Paginas Web DinamicasJosé M. Padilla
 
Lenguaje de programacion con soporte de base de datos
Lenguaje de programacion con soporte de base de datosLenguaje de programacion con soporte de base de datos
Lenguaje de programacion con soporte de base de datosSimoney Llamas
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework SymfonyAlejandro Hernández
 

What's hot (19)

Manual de PHP Basico
Manual de PHP BasicoManual de PHP Basico
Manual de PHP Basico
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAP
 
introduccion al Lenguaje php
introduccion al Lenguaje phpintroduccion al Lenguaje php
introduccion al Lenguaje php
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Micro vs Nano (servicios)
Micro vs Nano (servicios)Micro vs Nano (servicios)
Micro vs Nano (servicios)
 
Ruby on the Rails
Ruby on the RailsRuby on the Rails
Ruby on the Rails
 
MAnual de php básico
MAnual de php básicoMAnual de php básico
MAnual de php básico
 
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTaller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
 
¿Me Afirmaron Que Sql No Es Un Lenguaje De Programacion, Eso Es Cierto?
¿Me Afirmaron Que Sql No Es Un Lenguaje De Programacion, Eso Es Cierto?
¿Me Afirmaron Que Sql No Es Un Lenguaje De Programacion, Eso Es Cierto?
¿Me Afirmaron Que Sql No Es Un Lenguaje De Programacion, Eso Es Cierto?
 
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 
SG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelSG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache Camel
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, java
 
00 Php. Paginas Web Dinamicas
00 Php. Paginas Web Dinamicas00 Php. Paginas Web Dinamicas
00 Php. Paginas Web Dinamicas
 
Introduccion a php
Introduccion a phpIntroduccion a php
Introduccion a php
 
Lenguaje de programacion con soporte de base de datos
Lenguaje de programacion con soporte de base de datosLenguaje de programacion con soporte de base de datos
Lenguaje de programacion con soporte de base de datos
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework Symfony
 
Guiacursophp sql
Guiacursophp sqlGuiacursophp sql
Guiacursophp sql
 

Similar to Presentacion remobjects

Servicios web
Servicios webServicios web
Servicios webitoomac02
 
Servicios web
Servicios webServicios web
Servicios webitoomac02
 
Modulo13 Web Services
Modulo13 Web ServicesModulo13 Web Services
Modulo13 Web ServicesEduardo
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando phpvictdiazm
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamicoJose Luis Crespo
 
M1 introduccion a php
M1   introduccion a phpM1   introduccion a php
M1 introduccion a phpEDUARDLARA1
 
Servidor web present formal
Servidor web present formalServidor web present formal
Servidor web present formalsaytubb
 
Apuntes materia entorno cliente servidor
Apuntes materia entorno cliente servidorApuntes materia entorno cliente servidor
Apuntes materia entorno cliente servidorMalteadas
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web modernoSebastián Rocco
 

Similar to Presentacion remobjects (20)

Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Modulo13 Web Services
Modulo13 Web ServicesModulo13 Web Services
Modulo13 Web Services
 
Servidor web
Servidor webServidor web
Servidor web
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamico
 
M1 introduccion a php
M1   introduccion a phpM1   introduccion a php
M1 introduccion a php
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Servidor web present formal
Servidor web present formalServidor web present formal
Servidor web present formal
 
Servidores web
Servidores webServidores web
Servidores web
 
servidores web
servidores webservidores web
servidores web
 
APIs REST
APIs RESTAPIs REST
APIs REST
 
Pdfwebservices
PdfwebservicesPdfwebservices
Pdfwebservices
 
Web service
Web serviceWeb service
Web service
 
Web service
Web serviceWeb service
Web service
 
Servicios web
Servicios webServicios web
Servicios web
 
Servidores
ServidoresServidores
Servidores
 
Apuntes materia entorno cliente servidor
Apuntes materia entorno cliente servidorApuntes materia entorno cliente servidor
Apuntes materia entorno cliente servidor
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
 

Recently uploaded

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Recently uploaded (10)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Presentacion remobjects

  • 1. www.elmalabarista.com Mario Montoya Jefe Desarrollo apps web & móviles (iPad,iPhone)
  • 2. Objetivo ? Presentación herramienta para “web-enable” cualquier app
  • 4. Internet / Cloud “Necesitamos una app web”
  • 6. Interoperabilidad “Como dar acceso a nuestro sistema/crear un API?”
  • 8. “Nos dicen que tenemos que usar (.NET/Java/PHP/LoQueSea) o no podemos competir :(” Pre sió n!
  • 9. Ventaja “ES HORA DE HACER EL SALTO”
  • 11. RemObjects Software • Herramientas para desarrolladores • Especializados en infraestructura • Data Abstract : Bases de datos multi-nivel • RemObjects SDK: Framework para hacer “remoting” (pero por mucho la mejor implementacion existente!) • Creadores de Delphi Prism & mas • remobjects.com
  • 13. Multi-Lenguaje * Desarrollo servidor & clientes .NET Delphi Prism Mono FreePascal Ademas desarrollo clientes Obj-C JavaScript PHP Python Ruby * Se puede usar cualquier otro lenguaje para acceder a los servidores
  • 14. Multi-Lenguaje * Desarrollo servidor & clientes .NET Delphi Prism Mono FreePascal Ademas desarrollo clientes Obj-C JavaScript PHP Python Ruby * Se puede usar cualquier otro lenguaje para acceder a los servidores
  • 15. Multi-OS OSX / iOS Windows Linux Despliegue servidor donde quiera!
  • 16. Multi-OS OSX / iOS Windows Linux Despliegue servidor donde quiera!
  • 17. Multi-DB * Firebird SQLite * Muchas mas sin mencionar
  • 18. Multi-Protocolo* Comunicación UDP PIPES TCP/IP HTTP Transporte BIN JSON XML * Otros mas sin mencionar
  • 19. Iluminación elmalabarista.com
  • 20. App Web <> Sitio Web Use PHP/Python/Ruby/ASP Sitios web, paginas Use RemObjects Servidor App Web elmalabarista.com
  • 21. App Web? Servidor ERP/ Facturacion Servidor Web Servidor Juegos Servidor Datos Servidor Documentos Servidor! elmalabarista.com
  • 22. HTML <> HTTP! HTML Es presentación Sitios web, paginas HTTP Es comunicación Servidor App Web elmalabarista.com
  • 23. HTTP + JSON + XML Universal Compatible con todo App Web sin traumas No tienes que cambiar de lenguaje! elmalabarista.com
  • 24. JSON + XML+SOAP Lentos. “Pesados”
  • 25. Agrege BINARY jo! Recuerda? Multi-todo Cone No elija entre estándar & lento o propietario & rápido. RO puede publicar el servidor simultaneamente en multiples canales (TCP/HTTP, etc) y formatos (Bin, XML SOAP, XML-RPC, JSON, etc)
  • 26. Aplicaciones 2 niveles Inflexible. No reutilizable. No escalable
  • 27. Aplicaciones N niveles Multiplique * N para escalar Flexible. Reutilizable. Escalable
  • 28. App clientes como sea! No reescriba todo cuando sale un nuevo dispositivo de moda
  • 29. Como funciona (Servidor) Con el “Service Builder” se define el servicio (funciones, métodos, etc) http://wiki.remobjects.com/wiki/Service_Builder
  • 30. Como funciona (Servidor) Con el “Schema modeler” se define una BD virtual (abstracta) conectada a N-BD http://wiki.remobjects.com/wiki/Schema_Modeler
  • 31. Como funciona (Servidor) Elija Transporte + formato (típicamente HTTP + BIN + (JSON o SOAP o XML-RPC)) var ROMessage: TROBinMessage; ROServer: TROIndyHTTPServer; begin Writeln('RemObjects SDK for Delphi - Command Line Server'); ROMessage := TROBinMessage.Create(TComponent(nil)); ROServer := TROIndyHTTPServer.Create(nil); TROMessageDispatcher(ROServer.Dispatchers.Add).Message := ROMessage; try ROServer.Active := true; WriteLn('Server is active, press Enter to stop.'); Readln; finally ROServer.Free; ROMessage.Free; end; end.
  • 32. Como funciona (Servidor) Implementa los métodos, de forma similar a cualquier otro uses {Generated:} NewLibrary_Invk; procedure Create_NewService(out anInstance : IUnknown); begin anInstance := TNewService.Create; end; { NewService } function TNewService.Sum(const A: Integer; const B: Integer): Integer; begin Result := a + b; end; function TNewService.GetServerTime: DateTime; begin result := Now; end;
  • 33. Como funciona (Servidor) Listo. Accesible por HTTP. NO necesita IIS o Apache. Corre en linux con Freepascal
  • 34. Relativity Publica BD. Servidor N-Tier inmediato, sin codigo. Gratuito (con restricciones) http://www.remobjects.com/da/relativity.aspx
  • 35. Relativity Publica BD. Servidor N-Tier inmediato, sin codigo. Gratuito (con restricciones) http://www.remobjects.com/da/relativity.aspx
  • 36. Como funciona (Cliente - Delphi/FPC) Conectase al servidor, invoque los métodos uses NewLibrary_Intf; {$R *.dfm} function CallSum:integer; var myservice: INewService; begin myservice := CoNewService.Create(ROBINMessage1, ROWinInetHTTPChannel1); result := myservice.Sum(1, 2); end; function GetDate:TDateTime; var myservice : INewService; begin myservice := CoNewService.Create(ROBINMessage1, ROWinInetHTTPChannel1); res := myservice.GetServerTime; result:= res; end; http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(Delphi)
  • 37. Como funciona (Cliente - Delphi/FPC) Conectase al servidor, invoque los métodos uses NewLibrary_Intf; {$R *.dfm} function CallSum:integer; var myservice: INewService; begin myservice := CoNewService.Create(ROBINMessage1, ROWinInetHTTPChannel1); result := myservice.Sum(1, 2); end; function GetDate:TDateTime; var myservice : INewService; begin myservice := CoNewService.Create(ROBINMessage1, ROWinInetHTTPChannel1); res := myservice.GetServerTime; result:= res; end; http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(Delphi)
  • 38. Como funciona (Cliente - XCode/iOS) Conectase al servidor, invoque los métodos //Conectarse - (MyROService_Proxy *)getProxy { ROClientChannel *clientChannel = [ROHTTPClientChannel channelWithTargetUrl: [serverCombo stringValue]]; ROMessage *message = [ROBinMessage message]; return [MyROService_Proxy proxyWithMessage:message channel:clientChannel]; } //Invocar - (IBAction) sum:(id)sender { int a = [aField intValue]; int b = [bField intValue]; int result = [[self getProxy] Sum:a:b]; [resultField setStringValue:[NSString stringWithFormat:@"%d", result]]; } http://wiki.remobjects.com/wiki/ Writing_a_RemObjects_SDK_for_.NET_Server_and_Mac_Client_- _Start_to_Finish_(Xcode_(Mac))
  • 39. Como funciona (Cliente - XCode/iOS) Conectase al servidor, invoque los métodos //Conectarse - (MyROService_Proxy *)getProxy { ROClientChannel *clientChannel = [ROHTTPClientChannel channelWithTargetUrl: [serverCombo stringValue]]; ROMessage *message = [ROBinMessage message]; return [MyROService_Proxy proxyWithMessage:message channel:clientChannel]; } //Invocar - (IBAction) sum:(id)sender { int a = [aField intValue]; int b = [bField intValue]; int result = [[self getProxy] Sum:a:b]; [resultField setStringValue:[NSString stringWithFormat:@"%d", result]]; } http://wiki.remobjects.com/wiki/ Writing_a_RemObjects_SDK_for_.NET_Server_and_Mac_Client_- _Start_to_Finish_(Xcode_(Mac))
  • 40. Como funciona (Cliente - NET/Mono) Conectase al servidor, invoque los métodos private void bSum_Click(object sender, System.EventArgs e) { // Creates a IROWindowsFormsServerService proxy ROWindowsFormsServer.IROWindowsFormsServerService myService; myService = ROWindowsFormsServer.CoROWindowsFormsServerService.Create( message, clientChannel); // Calls the Sum method int myResult = myService.Sum(1,2); // Displays the result MessageBox.Show("The server returned "+myResult.ToString()); } http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(.NET)
  • 41. Como funciona (Cliente - NET/Mono) Conectase al servidor, invoque los métodos private void bSum_Click(object sender, System.EventArgs e) { // Creates a IROWindowsFormsServerService proxy ROWindowsFormsServer.IROWindowsFormsServerService myService; myService = ROWindowsFormsServer.CoROWindowsFormsServerService.Create( message, clientChannel); // Calls the Sum method int myResult = myService.Sum(1,2); // Displays the result MessageBox.Show("The server returned "+myResult.ToString()); } http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(.NET)
  • 42. Como funciona (Cliente - JS/HTML) Conectase al servidor, invoque los métodos <html> <head> <script type="text/javascript" src="RemObjectsSDK.js"></script> <script type="text/javascript" src="NewLibrary_intf.js"></script> </head> <body> <h1>RemObjects SDK client</h1> <a href="#" onclick="getTime();">Get time</a><br /> <textarea id="log" rows=10 cols=60></textarea> <script type="text/javascript"> var channel = new RemObjects.SDK.HTTPClientChannel("http://" + window.location.host + "/ BIN"); //IE users use JSON var message = new RemObjects.SDK.BinMessage(); var service = new NewService(channel, message); function getTime() { service.GetServerTime(function(result) { document.getElementById("log").value += result + "n"; }, RemObjects.UTIL.showError); } </script> </body> </html> http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(JavaScript)
  • 43. Como funciona (Cliente - JS/HTML) Conectase al servidor, invoque los métodos <html> <head> <script type="text/javascript" src="RemObjectsSDK.js"></script> <script type="text/javascript" src="NewLibrary_intf.js"></script> </head> <body> <h1>RemObjects SDK client</h1> <a href="#" onclick="getTime();">Get time</a><br /> <textarea id="log" rows=10 cols=60></textarea> <script type="text/javascript"> var channel = new RemObjects.SDK.HTTPClientChannel("http://" + window.location.host + "/ BIN"); //IE users use JSON var message = new RemObjects.SDK.BinMessage(); var service = new NewService(channel, message); function getTime() { service.GetServerTime(function(result) { document.getElementById("log").value += result + "n"; }, RemObjects.UTIL.showError); } </script> </body> </html> http://wiki.remobjects.com/wiki/How_to_Write_a_RemObjects_SDK_Client_(JavaScript)
  • 44. Baterías incluidas Si lo imagina, ya lo tiene Balanceo Cargas Seguridad Encriptacion Failover Código Fuente Notificaciones IIS Ejemplos servidor->cliente CGI Bonjour Mas... Compresión oData
  • 45. Quiere saber mas? Lista de Recursos Descargue trial http://www.remobjects.com Vídeos http://www.remobjects.com/tv/da.aspx Documentación http://wiki.remobjects.com Soporte/Foros http://connect.remobjects.com/

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. Discount code good through the end of April.\n
  12. Discount code good through the end of April.\n
  13. Discount code good through the end of April.\n
  14. Discount code good through the end of April.\n
  15. Discount code good through the end of April.\n
  16. Discount code good through the end of April.\n
  17. Discount code good through the end of April.\n
  18. Discount code good through the end of April.\n
  19. Discount code good through the end of April.\n
  20. Discount code good through the end of April.\n
  21. Discount code good through the end of April.\n
  22. Discount code good through the end of April.\n
  23. Discount code good through the end of April.\n
  24. Discount code good through the end of April\n
  25. Discount code good through the end of April\n
  26. Discount code good through the end of April\n
  27. Discount code good through the end of April\n
  28. Discount code good through the end of April\n
  29. Discount code good through the end of April\n
  30. Discount code good through the end of April\n
  31. Discount code good through the end of April\n
  32. Discount code good through the end of April\n
  33. Discount code good through the end of April\n
  34. Discount code good through the end of April\n
  35. Discount code good through the end of April\n
  36. Discount code good through the end of April\n
  37. Discount code good through the end of April\n
  38. Discount code good through the end of April\n
  39. Discount code good through the end of April\n
  40. Discount code good through the end of April\n
  41. Discount code good through the end of April\n
  42. Discount code good through the end of April\n
  43. \n