 Hey, good afternoon, everyone. It's a little cold in here. And this is nice afternoon. And we are just meeting after the break. I saw a lot of people on the show floor still busy chatting and sipping coffee. I'm very happy you made it here. And today, together with my colleague, Shailesh, we're going to talk about a very interesting topic. So the topic is, how do I build enterprise applications using Cloud Foundry instance on my laptop? So as we all know, Cloud Foundry is mainly intended to simplify a developer's job. How do I get my application quickly built and post to Cloud Foundry instance, running wherever that is in the cloud? So let me actually start getting into the presentation. We have a lot of material to cover, not this slide, not this one. So we saw Cloud Foundry instance could be used in three different ways. One is, just to get familiarized, how does Cloud Foundry work? What is the platform behavior, where I'm interacting with the platform as a developer? What is my interface for the platform? The command line interface for pushing an application, browsing the various different services, creating a new service, binding an app to the service, all of that good stuff. So I want to get familiarized with that. And if I have an easy way to do that, like a Cloud Foundry instance running on my laptop, nothing better than that. And if the instance on my laptop is also capable of providing different services that are needed for enterprise applications, like a powerful database, different kind of services, predictive, geospatial, text processing, even better. So that's what we have here, number one. Secondly, now as we all know, real enterprise applications are not built by one developer on laptop. Obviously, ideas can emerge from one person's mind, and you might get started with a really good skeleton code. But then you need a collaborative environment for different people in a team working together, building the app. So now if we take an instance on premise, just to make it easier for development, why not? And then once your app is ready, then you can push it to the Cloud Foundry instance in the cloud. We're not saying this is the recommended method. This is the recommended methodology from SAP that we should follow this, and this is the best practice. But we find this quite useful in many cases. And we thought this is something worth sharing with the community here. So what is this Cloud Foundry instance on my laptop? So how many of you have heard of SAP HANA? Good. So a few years ago, SAP revolutionized the entire data management, the way how we build applications. It combined a database that handles asset transactions with the same database now handling your analytical queries. You don't need to have these data instances separate. You don't need to create whole warehousing down some time, and then process analytical queries. You can do all of those transactional systems. You can run your transactional systems, and you can run your queries on the same data. So that's simply for a lot of things. So I'm glad many of you heard. So I just wanted to mention a couple sentences about that, because that is a topic on its own. So we thought that the Cloud Foundry instance on the laptop should definitely have a HANA instance running. Now HANA takes care of your data management. It has very powerful engines like graph engine, text processing, predictive, geospatial. But oftentimes, you need a small app server sitting on top of it that can take care of, for example, user experience management, user interface that can take care of making some callouts that have to go to some other system. So historically, we started with having a small JavaScript engine running right next to the HANA system. But then we slowly realized that many of the developers want to use not just HANA, but maybe Java, maybe some other language. And all of that's still sitting close to the HANA database. So that is where we found out that Cloud Foundry architecture is applicable not just to the Cloud Platform in the Cloud, but for this app server that is running right next to the HANA system. And that can now support this multiple runtimes. So what you see here on the slide are basically you have the HANA system as the platform. And then we got a couple versions of JavaScript for historical reasons, really. And then you have Java runtime. And then you can add any other runtime that you wanted to. And all of this is utilizing the Cloud Foundry blueprint underneath. And then we have on top application router, which is a web application that does more than just being a web application and serving static HTML. It becomes your front end router so that it can serve the static content as well as route any incoming requests to the different runtimes. So that's the overall architecture. I think this should be familiar to many of the Cloud Foundry developers that you need different runtimes for handling your application code written in different languages and powerful backing services. In this architecture, the backing service happens to be HANA. So this is now showing how the blueprint is exactly same for the on-premise system and in-cloud system. So on the on-prem system, you got the on-prem server, the physical hardware, and things. And then you have all of these platform services needed, logging, monitoring, job scheduling, and things. Then we have the runtimes, static HTML, Java, Node, bring your own language. Then we have the backing services as HDI container, app router on top, serving to different user interfaces, mobile or desktop. And UA is handling user account and authentication. If you look at the Cloud version, it's very similar architecture. In addition to backing service being just HANA, now you can access also the other typical backing services that Cloud Foundry developers would be used to, like MongoDB, PostgreSQL, Redis, Rabbit, MQ. And you can also obviously add more services as well. And interestingly, SAP Cloud Platform runs on different infrastructure as a service provider. Today, it runs on Amazon Web Services. It also has GA for production purposes. It also runs on Microsoft as a beta offering, and we're soon to support Google Cloud Platform as well. So it is not just an option that you take and run, but actual Cloud Platform from SAP runs on these different infrastructures today. So it's a fully managed Cloud solution from SAP. So besides my main points over here, so the point is you have exactly same Cloud Foundry architecture supported on-prem and in Cloud. So with that, I would really want to directly jump into a demo of what we can do with these things. So what I wanted to show is maybe start with building a static HTML page and then directly get into the database, create a small data model. And then once you have a data model and if I wanted to build a user interface, you would need some logic in between. And in HANA, then we have multiple ways to build logic on top of that. We have support for building stored procedures, in which you can build a lot of procedural code. But if the scenario requires analytical processing, where you don't necessarily need to write a lot of code, but you still need a way to filter the data, aggregate the data, basically analytical views. And we have nice analytical modeling tools that are fully integrated with the same tooling. And then once you have all of that data and the logic sitting on top in the database, now you want to expose it to the world. Now at SAP, we have standardized on a standard for exposing functionality and data called as OData. How many of you heard of OData as a standard? Excellent. So OData is really the standard right now for accessing data and functionality. So we then would need OData provisioning system that will take this functionality in the database and make it available as a OData service. And then finally we can link back that OData into the static page that we would start with and make that pages dynamic. So that's the general scheme for this demo here. Obviously, may the demo guards be with me? Let's see how that goes. So yeah, so that's the general idea. This should give us an idea of the overall technological stack. And my colleague, Shailesh, would then come and show how this is not just a technological platform for us to play with, but SAP is actually building enterprise applications on the same stack using the same model and really is getting in cloud. He's an architect in the IoT, Leonardo organization and they're building really cool enterprise applications on the same stack. So that being said, let me shift gears. Okay, so I have a VM running here, which is running basically the HANA Express Edition. So the HANA system I talked about comes in a version called as HANA Express Edition. I thought I had a browser here with the download page, but you can easily Google HANA Express Edition. You'll get a link to download it and you can run it on your laptop. So that's what I'm running here. And then I use a simple web interface then. Oh, oh, oh, we are not seeing my screen. So I think it was basically only showing. Shailesh, do you want to look for the gentleman who was helping out with the displays? Can you help me out? Just duplicate it at that first. Thank you, have you now? Okay, so let's see this works now. Okay, so what I was showing basically is I have a VM on my laptop that is running HANA Express Edition. Then I would use a simple web-based interface to access the HANA Express Edition running on my system and do the things that I just said we can do it over here. So one of the things we would do, so in the interest of time I'm gonna build a few things and use some of the pre-deployed things so that you can get a feel of what's going on over here. So for example, what I would do is create a new project right here. And we have a specific type of project here that is pre-loaded as multi-target application. Now what is multi-target application? At SAP we got very used to this terminology, so oftentimes I forget that, I need to explain that, we call it MTA, multi-target application architecture. It essentially stands for an application having different components written in different languages. This track is about polyglot applications, remember? So you might have different components written in different languages. So when you look at the application, although there are parts written in different languages with their different target runtimes, some of the components may actually be running in database, some running in JavaScript and Java and so on and so forth. You would want to manage this MTA as a package for its end-to-end lifecycle as a single application. So unless we have this notion of MTA as part of your design right from the beginning, it gets very difficult later. You might end up deploying a really cool application but when you want to say, when you want to find out what is your application, where it is running, it gets extremely hard. So MTA meets that need. Oh, so I'm creating a new application. Let me call it as CFSummit for example. So I'm creating this application in a space. Now this terminology should be familiar to Cloud Foundry developers. There's an organization and a space that every developer works in and that's what we're using here. So I create an app and there is now a new project created for me over here. Now within that, I can very easily and quickly create, for example, an HDB module which essentially stands for Database Module. Let's call it as DB and let's accept the defaults and let us do some data modeling here. Okay, so within the DB module, let me close the other windows that have been opened. So here I can now create, for example, a new CDS artifact. Now in the interest of time, let me quickly say one word about CDS. CDS is an abstraction layer on top of Database so that you have the entire view on the data objects in a more human readable form. So it's an abstraction or the detailed database. So let me use a text editor. So here now we got a CFData as our context. Within that, let me create a couple of, I'm actually not able to edit here. So let me pick two entities here. So very simple and this is, if you browse for our HANA Express Edition download and follow the tutorial. So very simple example that has been described there. I'm using the same for, so that you also get familiar with that. So basically there are two entities, world and country. Every country belongs to a certain continent and that's a simple module that has been represented here. Now I save that and if I now go back to my module and build it, this automatically creates all those tables in the database. So you don't need to worry about what's my database user, does it have the right access, what is my schema, does it have the right isolation, am I stepping into some other areas? So all of that is taken care for you over here. Likewise over here then I can create the stored procedure on top. So let's quickly do that. The analytical view, whereby then you can say, I want to access only countries in a certain continent. So that would be another simple thing to do. So I would create new calculation view for example. How many of you are familiar with the term calculation view? Sometimes I wonder if it's SAP only term. Basically it's an analytical view. So let me call it as a my view and select the default as a category. So this allows me now to model creating the analytical view. So I got a bunch of tables. I can say give me only this data from this table and I want to have analytical view which will take certain parameter and expose certain data externally. So this is going to be a very simple analytical view. So let me just create one projection on certain table. Normally the projection on top would be used to take a look at different projections of different table and aggregate that into something to be surfaced at the top level. But over here we are going to have a simple projection where I would then add let's say some data from one of the tables. So I'm searching for what tables do we have over here. Let's pick the country table here and then let me take all of the columns as output from this table. Okay, all right, good. And then I can quickly write a filter here to say I want to select only the countries in the continent of Europe. Okay, then I can go to the top level, the aggregation which is now looking at the projection from the bottom level and then I'm going to connect that to the output. And that's about it. So this created a simple analytical view from the two tables. Obviously this doesn't do a whole lot but hopefully this gives an idea. Now then I save this data model and go back and I can build and this will take care of creating this analytical view as well. So there are various different steps that you might go through. Let me quickly show you how simple it would be by picking another project here which I created just before I walked upstage here. So I likewise, just like how I created a database module, I would create a Node.js module here. We can debug that but don't worry about that at the moment. So I will create a JavaScript module and within that by simply creating a new file with an extension called XSO data, I would be able to expose the analytical view that I just created as a OData service. And once I have that, then I would create, for example, a web module and then within the web module I can very simply use the OData JavaScript API to access that OData service which is being provisioned by a Node.js based on time which is basically exposing the analytical view in the database. So we got covered creation of data in the database, writing a stored analytical view on top of that using Node.js to expose it as OData service, consuming it from a web interface. So if all the steps, if we go through all the steps, then this is the final output that you would see over here which is basically listing the different countries in on the continent, how are we on time? So basically, I hope this gives you a good picture of what are the different parts of the architecture. And at this time, I would like to hand it over to Shailesh who is gonna show how we're using this architecture to build enterprise applications at SAP. Thanks a lot, Sanjay. So hi, so I'm working as an architect in an application called Connected Goods. So Connected Goods is basically an IoT application under Leonardo portfolio. It allows you to monitor coolers, vending machines and other kind of devices which keep sensor data and then we try to merge the sensor data with the business data. So for example, if there is a vending machine and vending machine is sending the temperature and the door is open for too long and then we have, we can create an alerts to the service engineer saying that there is something wrong with the machine or we can manage, we can also merge the transactional data. For example, there is a cooler and cooler, we can merge the correlate the door openings with the number of items sold and the transactional data can come from the other business systems like SAP or PIS systems. So just a quick glimpse of Connected Goods. So Connected Goods is an application built on Cloud Foundry using couple of microservices. And we have rules, the simple example of rule is if the temperature of the machine is greater than some threshold, then you want to create an alerts or notify the service engineer and also we want to monitor, for example, here is the application where we are monitoring the vending machines and some of the coolers. For example, and then I will click on one of the cooler to see how this cooler is behaving right now. And it will show me the real time data about the temperature, the number of times the door was open where this cooler is located and all the analytical details. And then this cooler also can be have, we can configure some rules on the schoolers to make sure this cooler behaves as normal. And there are couple of microservices that we have here. For example, rules, geospatial, for tracing the location of the cooler and also some master data, like also some other third party data which we want to bring as a part of the application. So going back into the quickly architecture slide on how Connected has some problem with the... So we have, as Sanjay explained briefly, the MTA architecture. So basically here you see there are a bunch of microservices. These are some of the microservices which are noted here. There is a user interface on the top which is the HTML file application embedded in a server by a Node.js module. And we have app router which is a part of an takes care of routing the request to an appropriate microservices based on the URL pattern or based on certain regular expressions that you can put in the URL. And then on the Cloud Foundry side, we are using HANA as a backing service. We also have Spark for big data and also UAA for the authentication and authorization. So all these are provided by also by the access layer, the HANA access A. And now I will go back to the code actually to how we have developed this application using the SAP. So going back to the runtime. So basically I'll just show you on the Cloud Foundry times. This is a running application in Cloud Foundry SAP Cloud. So these are some of the microservices that are we are running. And one of the advantage that Cloud Foundry brings us is that we can scale each of the services based on the traffic or based on the demand. For example, if you have getting a lot of data from the sensor provider, we can easily scale the ingestion layer so that we can handle too much traffic. And same for each of the other microservices. Now going back to the development environment. So here I have, I'm using WebID and one of the advantage that WebID brings me is that I can develop this app locally without having the hassle of pushing every time to Cloud Foundry. So basically I am going to some of the services. For example, I can go into the geospatial service and here you see this is just a REST API using Java and that is exposing creating a fence. And whenever the device goes out of a fence, I want to get an alert or I want to send a notification. So there are a bunch of other services using Java and Node.js and that brings us the power of both different platforms and different languages here. And then I go back to one of the CDS artifacts about the same service we have. I'm showing the very simple, easy to create a data model. So a developer can just go and create a data model using drag and drop options here. And once this is all ready, the CDS can be deployed onto either XSA, HANA, local system or to the Cloud. Similarly, here I'm showing just for the device data, we are having the data modeling and some of the analytical business case, for example, some geospatial analytics and we are already can use the calculation view. Here it's example of a business logic is shown where we are basically getting the data from multiple different tables and we are doing a complex joints and aggregations and then finally provisioning it through OData so the UI can display this OData back on the UI. Now I can quickly go into the, so one of the, another advantage that WebID brings when working on the team is that it has out of the box integration with Git. So for example, I have changed any file here. I can check in right from here and there. And then I can also check out from any Git branch. So once you are happy with the changes, you can run this application locally using HANA Express or HANA that is running on premise and what do I do now to deploy in Cloud Foundry? So basically one of the things this brings is that we have written a Cloud Foundry CLI plugin to deploy this MTA. So when I say export after this, it will generate MTA and the MTA is basically looks something like it's archive and then I can take this MTA and I can download it to my local system on the command prompt. And then I can go to my Cloud Foundry, the Cloud Foundry CLI and I can use this command called C of deploy and I can just deploy the tar file, mtar file. So this will take care of creating the database into the Cloud Foundry. Also it will create, it will deploy all the services into the Cloud Foundry landscape and also I can also have option of using the YAML file to change the host names and also change the memory and all that. So this is an example of the YAML file that we are using and this also shows you how we are binding to the different services on the backing services. Yeah. So that basically brings to conclusion what we wanted to present just to recap. Cloud Foundry is really meant to simplify a developer's task to create an application without worrying about what are the different runtimes involved, what versions of which library has to be running where, how they are connected together, how do they scale. So and in order to bring this benefit in a really, really simple form for a developer, now we got three ways in which you can use the benefit of Cloud Foundry. Have a Cloud Foundry instance running on your laptop with the very powerful HANA and other backing services available. So you can get a feel of how to use Cloud Foundry in a phase, build enterprise applications. So that is mainly to learn and experiment. Now then you can have a team and collaboratively using tooling like GitHub and others, you can build that application and when you are totally happy to push it to production, then you can use the same interface, CF Push or CF Deploy and have that application deployed in the cloud. So that's the overall model and what we have shown you here is still a slice of the overall Cloud Platform. SAP Cloud Platform then includes a plethora of other services for analytics, mobility. There's an entire suite for integration requirements, collaboration, jam, and then obviously you can add your own run times and add your own services. And all of this is available in a multi-cloud setting on different IS options that you have today and obviously it's also running in a CP data center. So that's the overall story. I hope this gives you a general idea of what SAP is doing with Cloud Foundry and how we have made it super easy for you to get started. So if you wanna get started today, it's really easy. You can browse for Google for HANA Express Edition, with that you can get a HANA system running on your laptop and then you can also get a trial version of SAP Cloud Platform. So cloudplatform.sap.com then you can sign up for a trial account and it's a perpetual trial account and within three minutes we think that you should be able to have a CF Push Code and deploy a useful application. So that's pretty much what we wanted to conclude with. We basically wanted to display our email address but anybody who is interested can obviously stop by or look up for our contacts online. Thank you for being here. And of course, if there are any questions, you can still, yep. So two things. HANA Express Edition is the downloadable HANA system that you can play with, right? That's for a local instance. Cloudplatform.sap.com is SAP's Cloud Foundry-based Cloud Platform running in various different IaaS options. So cloudplatform.sap.com, yep. Any other last question? I think we have one more presentation after this so we can obviously continue the conversation offstage as well. All right, great, thanks again.