Este documento presenta Linxter 101Cloud Messaging. La introducción describe los componentes clave de Linxter como el ISB y el SDK. Explica cómo funciona el marco de mensajería en la nube mediante la creación de programas, instancias de programas y canales de comunicación. También muestra ejemplos de código abierto y concluye que Linxter encapsula la complejidad de WCF para centrarse en lo que realmente importa.
2. Agenda Introducción Los Componentes Cómofunciona: Panorama general Demostración Hello World Linxter Messenger Vida de unaMensaje Canales de Comunicación Ejemplos de CódigoAbierto Conclusión
5. Cloud Messaging Linxteres: Fácil de usar Firewall friendly Cloud middleware framework Proporciona: Seguridad Confiable Bien gobernados Asincrónica…
6. Reducir las dolores de cabeza con comunicación Encapsula las complejidades de WCF y elimina las barreras técnicas comunes tales como: Message Polling Transactional Queues Endpoint Reconfiguration Encryption and authentication Internet Connection Retries Non-repudiation File Chunking
21. Messaging Activities Encontrar personas Enviar una solicitud de conexión Aceptación de la solicitud de conexión Enviar un mensaje (1 destinatario o más) Estado de la mensaje Recibirunamensaje
22. Vida de unamensaje Dos llamadas a métodos hacer mucho CreateMessage() SendNow() o StartScheduledSend()
33. Canales de Comunicación Creating Requests Manually Automatically Programmatically Handling Received Requests Automatically Accept Require Approval by Web Manager Account Require Approval by Program Instance
35. Ejemplos de CódigoAbierto Hello World Quick Starts 1 through 4 Boat Battle (aka Battleship) Linxter Messenger Performance Tester MonitorGrid* MS SQL Integration sample* More to come…
36. Conclusión On-ramp to Cloud Messaging Encapsula las complejidades de WCF Utilizarlascapacidadesexistentes de .NET Centrarse en lo que realmente importa
Hola! Mi llamo Felipe Ferreira. Soy un ingeniero de sistemas en Linxter, y yo no hablo español muy bien, so perdón pelos errores que voy a cometer. No dude en preguntar si no entiende algo o tienes alguna duda. Pero estoy muy contento de estar aquí hoy, porque no soy un chico de marketing hablando con usted. Soy un técnico, especializado en tecnología Microsoft como muchos otros aquí… Soy un MCT, microsoftcertifiedtrainer, especializado en bases de datos SQL Server y cuando no estoy trabajando en Linxter estoy a ministrar clases de SQL Server, hacer presentaciones y servicios de consultoría. También participo activamente en los foros de discusión de Microsoft Brasil y soy líder de un Microsoft UserGroup de .Net FrameworkPero ahora hablaremos acerca de una tecnología que es algo nuevo para la mayoría de las personas... CloudMessaging.. O mensajería en la nube. Estamos viendo un gran aumento sobre este tema este año. especialmente con la proximidad de Windows Azure, que facilitará mover sus aplicaciones fuera de su empresa para la nube, y Linxter puede ayudarle también,con la interconexión de las aplicaciones, facilitando la comunicación de sus aplicaciones
Esta es nuestra Agenda. Pero no voy a gastar mucho tiempo aquí. Yo voy hablar una pequeña introducción sobre el asunto, hablar sobre los componentes y cómo todo trabaja junto, la tecnología utilizada para crear Linxter y luego hacer una demonstración utilizando aplicaciones de código abierto
In the very near future, everything will become an IP addressable endpoint, opening the door to innovation, as developers create new products and services that build off of the interconnection of things.The goal of Linxter was to provide an easy to use communications framework which provided secure, reliable and dynamic communication for connecting distributed apps and integrating distributed systems.En un futuro muy próximo, todo se convertirá en un dispositivo IP, abriendola puerta a la innovación, conforme los desarrolladores crean nuevos productos y servicios que hará la interconexión de las cosas.El objetivo de Linxter era proporcionar un framework de comunicación fácil de usar que proporciona comunicación segura, confiable y dinámica para la conexión de aplicaciones distribuidas e integración de sistemas distribuidos.
To better understand Linxter, it is helpful to understand the evolution of traditional message-oriented middleware to cloud messaging.PeroqueparaentendermejorLinxter, esútilentender la evolución de middleware tradicionalorientado a mensajeshasta el cloud messagingMiddlewareThe term commonly used for a software system that sits “in the middle of” things, and is used to connect distributed components or applications. Examples include database systems, telecommunications software, transaction monitors, and messaging-and-queuing software.En primer lugar, tenemos middleware, el término Middleware se utiliza comúnmente para un sistema de software que se encuentra "en medio de" las cosas y se utiliza para conectar componentes distribuidos o aplicaciones. Los ejemplos incluyen aplicaciones de telecomunicaciones, monitores de transacción, etc.Message-oriented Middleware (MOM)A client/server infrastructure technology that enables the development of distributed applications by providing an asynchronous messaging framework which can be used for intra- and inter-application communication. Examples include IBM WebSphere MQ (MQSeries), Microsoft MSMQ, Oracle Fusion, and TIBCO Rendezvous. MOM is a specialized field.Duespués, sucedió MessageOriented Middleware - Una tecnología de infraestructura de cliente/servidor que permite el desarrollo de aplicaciones distribuidas, proporcionando un framework de mensajería asincrónico que puede utilizarse tanto para la comunicación internay la comunicación entre aplicaciones. Por ejemplo, IBM WebSphere MQ (MQSeries), Microsoft MSMQ y Oracle Fusion. MOM es un campo especializado.Message-oriented Cloud Middleware (Cloud Messaging)Is the logical evolution of traditional message-oriented middleware solutions: making them available as a service, reducing complexity, and eliminating the need for new infrastructure..Cloud messaging is not simply the hosting of traditional solutions in-the-cloud. It is the re-architecting of a core, complex infrastructure technology into an easy-to-use service (not just as-a-service). This is Linxter.Es la evoluciónlógica de lassoluciones middleware tradicionalesorientada a mensajes: vamos a ponerlos a disposicióncomo un servicio, reducir la complejidad y eliminando la necessidad de nuevasinfraestructuras.Cloud Messaging no essimplesmente la hospedaje de lassolucionestradicionales en la nube. Es la reestructuración de unatecnologia central y unainfraestructuracompleja en un serviciofácil de usar. Se trata de Linxter.
So, you might asking, what is Linxter? This is the most succinct and technically accurate description I have for you:Linxter is an easy to use, firewall friendly cloud middleware framework providing secure, reliable, well-governed, asynchronous messaging.Now, this is not just a bunch of buzz words. These are specific keywords and each have specific meanings which we delve into with more detail a little later in the presentation.Por lo tanto, usted podría preguntar, ¿qué es Linxter? Este es el más sucinta y técnicamenteprecisa descripción que tengo para usted:Linxter es un cloud middleware framework fácil de usar, amistoso a los firewalls, proporcionando un intercambio de datos seguro, confiable, bien gobernados y asincrónicaAhora, esto no es sólo un montón de (buzzwords) de palabras de moda. Estas son keywords (palabras clave) específicas y cada uno tienen significados específicos que profundice en con más detalle un poco más adelante en la presentación.
Off-load communication headachesLinxter is an information broker that enables and governs message-based data exchange between any .NET applications or services that can connect to the Internet. Using your existing .NET skills and Linxter, you can quickly and easily connect distributed apps and integrate distributed systems. In addition to encapsulating the complexities of Windows Communication Foundation (WCF), Linxter eliminates common technical barriers, such as:No infrastructure. No specialized coding. No… really.Complexity is not just moved off of your servers and into the cloud — it is eliminated. All of the communication plumbing is provided in an easy-to-use configurable environment that gives you granular control over how your programs interconnect and interact.Linxteres unintermediarioquepermite y regula el intercambio de datosbasados en mensajes entre lasaplicaciones.Net. Utilizandosuhabilidadesexistentes de .NET, es posible rápida y fácilmente conectar aplicaciones distribuidas y integrar sistemas distribuidos. Además de encapsular las complejidades de Windows CommunicationFoundation (WCF), Linxter elimina las barreras técnicas comunes en unaaplicaciondistribuida * Message Polling * Transactional Queues * Endpoint Reconfiguration * Encryption and authentication * Internet Connection Retries * Non-repudiation * File ChunkingNo hay infraestructura. Sin codificación especializada. Nada... realmente.Complejidad no sólo se mueve fuera de sus servidores y en la nube — complejedadés eliminada. Toda la infraestructura de comunicación viene en un entorno configurable, fácil de usar, que le da control detallado de cómo sus programas se comunicam e interactúan.No sé ustedes, pero realmente me gusta de una palabra: la productividad todo lo que me hace ser más productivo es una buena cosa para mí. Si yo podría clonar a mí mismo y tener 2 de mi trabajando, al mismo tiempo, sería impresionante! pero, mientras que esto no es posible ahora, veremos que Linxter nos puede ayudar a ser más productivos eliminando la complejidad de la comunicación en una aplicación distribuida, y no estoy hablando sólo de eliminar la complejidad de la configuración de un ambiente distribuido, Estoy hablando de eliminar los costos de este ambiente, la eliminación de la gestión y el mantenimiento de este entorno enorme dentro de su empresa. pero vamos a seguir y ver lo componentes y como funciona Linxter
Linxter is a ubiquitous communications technology and can be used in many different kinds of applications… you would use it any time you need to move data around securely and reliably.Linxter es una tecnología de comunicación omnipresente y puede utilizarse en muchos tipos diferentes de aplicaciones… usted podría utilizar siempre que es necesario mover datos de forma segura y confiableThe app screenshots in this slide, these are open source samples that we created and available for download at LinxterDeveloper.com:Las imajes son ejemplos de código abierto que creamos y están disponibles para download en: LinxterDeveloper.comBoat Battle, un juego de guerra naval para dos jugadores. Es el primer juego multiplayer queutilizamensajes en la nubeparacommunicacionLinxter Messenger, unaapplicacion de mensajeriainstantánea. vamos a ver esto con más detalles en breveMonitorGrid, unaaplicacion web paramonitorarservidores y susrecursos. Run BoatBattle – we will walk through this open source sample in the next sessionRun LinxterMessenger
tenemos 3 componentes que se basa nuestro productoLinxter ISB:Linxter Internet Service Bus son serviciosalojados en nuestrosdatacenters, sonun conjunto de servicios de back-end que procesam las mensajes entre sus aplicaciones. Es nuestra infrastructura internaLinxter SDK: El Linxter Software Development Kit contiene la API que los desarrolladores utilicen para integrar los programas con el Linxter ISB.Linxter Web Manager: El Linxter Web Manager es la interfaz webparaadministrarsusprogramashabilitados y los desarrolladores asociados con su empresa. The current SDK for .NET is supported on Windows XP, Server 2003, Server 2008, and Vista and Windows 7.El actual SDK para .NET es compatible con Windows XP, Server 2003, Server 2008, Vista y Windows 7.Future versions of the SDK will support Silverlight, Windows Mobile, Java,JavaME and C++.Las futurasversionesserá compatible con Silverlight, Windows Mobile, Java, JavaME y C++
The Linxter SDK encapsulates all the details of how to communicate with the Internet Service Bus.El Linxter SDK y su API encapsula todos los detalles de cómo comunicarse con el Internet Service Bus ( ISB )Como haviadito el ISB esun conjunto de servicios de back-end, que incluyen los siguientes servicios:Inbound service - controlalasmessajesenviadasporinstancias de programasOutbound service - Es aquí donde las instancias del programa recuperammensajes que se dirigen a ellos.Object store service - trata de la transferencia de archivosanexos.Hostname service - controla los links utilizados por las instancias del programa para llamar a los servicios.Registration service - controla el registro de instancias del programa y la nueva emisión de fichas de registro.¿por qué hablo esto en lugar de mostrar el código de las aplicaciones que utilizan el SDK? porque quiero que ustedes comprenda cómo funciona esto y cómo garantizamos que su mensaje llegará en su destinoThe services are designed to be autonomous, interoperable, and scalable. Location transparency is another important aspect, allowing multiple data centers to be set up around the globe, with various kinds of redundancy.Los servicios están diseñados para ser autónomos, interoperable y escalable. Transparencia de ubicación es otro aspecto importante, que permite varios datacenters que se creará en todo el mundo, con diferentes tipos de redundanciaThe ISB services used by our Platform-as-a-Service packages are duplicated in sets of three. This allows for an instance of a service to be brought down for a scheduled restart or maintenance, while two remain up and running.We employ this practice to mitigate the risk of a second service instance becoming unexpectedly unavailable while the one has been temporarily brought down. If such a circumstance occurs, the third instance is still available.Los servicios ISB utilizados por nuestros paquetes de Platform-as-a-Service se duplican en conjuntos de tres. Esto permite que una instancia de un servicio puede ser derribado para un reinicio programado o mantenimiento, mientras que dos siguen funcionando. Empleamos esta práctica para mitigar el riesgo de una segunda instancia de servicio puede inesperadamente no estar disponible.. Si se produce tal circunstancia, la tercera instancia todavía está disponible. Private Cloud package users can designate the number of duplicate service sets used by their ISB. They can increase or decrease them as needed. Los usuarios de paquete Private Cloud pueden designar el número de conjuntos de servicios duplicados utilizado por su ISB. Se puede aumentar o disminuir según sea necesario.
The Linxter ISB is built on the Microsoft Platform stack:y ahora… cómo hemos construido Linxter?El ISB se basa 100% en la pila de la plataforma Microsoft:And I forgot to include one stack…the one of sweat, tears, ulcers and sleepless nights. Anyone here spent time with MSMQ, WCF and C# in a large scale implementation?Y me olvidé de incluir un item… el uno de sudor, lágrimas, úlceras y noches de insomnio. ¿Hay alguien aquí pasó un tiempo trabajando con MSMQ, WCF y C# en una aplicación a gran escala?I’m curious what was your experience?¿Estoy curioso lo que ha sido tu experiencia? ¿esfácil?
Before we delve into the Big Picture of how it works, it is important we cover a few terms:Antes de que se profundice en el panorama de cómo funciona, es importante que cubrimos la terminología:Program: When you register a program to the ISB, you are not storing any code there. You are registering its name and its communication configuration settings that are used by all instances of it. Each program registered is given a Program ID for a unique identifier.Al registrar un programa en el ISB, no va a almacenar cualquier código allí. Se va a registrar su nombre y su configuración de comunicación que se utiliza en todas las instancias del programa. Cada programa registrado se da un ProgramID, su identificador únicoProgram Instance: An installed copy of a program. There may be many instances of the same program running at one time, on multiple machines or on one machine, by multiple users or by one user. Each program instance is uniquely identified by a Program Instance ID.Una copia de un programa instalado. Puede haber muchas instancias del mismo programa ejecutándose en un momento, en varias máquinas o en una máquina, por varios usuarios o por un usuario. Cada instancia del programa se identifica por unProgramInstanceIDCommunication Channel: A digital contract that enables and governs message-based data exchange between instances of Linxter enabled programs.Un contrato digital, que permite y que rige el intercambio de datos basados en mensajes entre las instancias de programas
OK, so now, lets go over how Linxter works from a high level perspective. Ok. Hemos visto lo que es Linxter y cómo fue construido, ahora vamos a ver cómo funciona y ver en acciónVeamos un panorama del framework
It all starts with registering a program to the ISB, where you give your program a name and decide on the configuration settings that will be used by all instances of it. Each registered program is uniquely identified by a Program ID. At anytime you can update the program’s configuration settings.Todo comienza con el registro de un programa en el ISB, donde se dan el nombre de su programa y decide sobre la configuración a se utilizar por todas las instancias del programa. Cada programa registrado se identifica por un ProgramID. En cualquier momento usted puede actualizar la configuración del programa
Next, you integrate the Linxter API into your development project using either our quick-and-easy wizard integration template or using a command-line process for finite control. Once integrated, you implement the Linxter methods, properties and events your program needs to use.A continuación usted iráintegrar la API en su proyecto de desarrollo mediante nuestro asistente o mediante un proceso de la línea de comandos, se usted preferir. Una vez integrado, implementará los métodos del Linxter SDK, propiedades y eventos que su programa necesita utilizar. You now deploy your Linxter enabled program. The particular approach you choose to deploy your program is going to depend on whether it is a client or web application, or a web service.Ahora es implementar el programa. El enfoque particular que decida implementar va a depender si es un cliente windows o aplicación web o un web service.
When an instance of your program is first run, it registers itself to the ISB using the RegisterProgramInstance() method, and receives its Program Instance ID, and pulls down its configuration settings.Cuando una instancia de su programa se ejecute por primera vez, es necesario se registrar a la ISB mediante el método RegisterProgramInstance() y recibe su ProgramInstance ID y extrae su configuración.