Tiven Wang
  • Apache Camel - Testing Testing is a crucial activity in any piece of software development or integration. Typically Camel Riders use various different technologies wired together in a variety of patterns with different expression languages together with different forms of Bean Integration and Dependency Injection so its very easy for things to go wrong! (smile) . Testing is the crucial weapon to ensure that things work as you would expect.
  • Spring Boot - Apache Camel This article shows how to work with a simple Apache Camel application using Spring Boot.
  • Spring Boot - Caching The Spring Framework provides support for transparently adding caching to an application. At its core, the abstraction applies caching to methods, reducing thus the number of executions based on the information available in the cache. The caching logic is applied transparently, without any interference to the invoker.
  • Try Cloud Foundry 13 - Logs Loggregator is the next generation system for aggregating and streaming logs and metrics from all of the user apps and system components in an Elastic Runtime deployment. Loggregator uses Google’s protocol buffers along with gRPC to deliver logs.
  • Try Cloud Foundry 12 - Config Server Config Server for Pivotal Cloud Foundry (PCF) is an externalized application configuration service, which gives you a central place to manage an application’s external properties across all environments.
  • Testing Reactive Applications How to verify that the Reactive applications you build are elastic, resilient, and responsive. Testing is covered first because of the importance of proving Reactive capabilities. Just as Test-Driven Design (TDD) allows you to ensure that you are writing logic that meets your requirements from the outset, you must focus on putting into place the infrastructure required to verify elasticity, resilience, and responsiveness.
  • SAP HANA Database SAP HANA is an in-memory, column-oriented, relational database management system developed and marketed by SAP SE. Its primary function as database server is to store and retrieve data as requested by the applications. In addition, it performs advanced analytics (predictive analytics, spatial data processing, text analytics, text search, streaming analytics, graph data processing) and includes ETL capabilities as well as an application server.
  • Microservices - API Gateway Implement an API gateway that is the single entry point for all clients. The API gateway handles requests in one of two ways. Some requests are simply proxied/routed to the appropriate service. It handles other requests by fanning out to multiple services.
  • Microservices - Circuit Breaker 访问远程服务时, 比依赖超时时间更好一些的方式是一种叫断路器(Circuit Breaker)的模式. Circuit Breaker 就像一位交通警察, 在前方道路畅通的情况下, 他会放行; 当前方道路由于各种原因拥堵时, 他会告诉你前方道路不通请回; 如果他是个更智能的交警的话, 还会告诉你前方道路部分拥堵, 只允许部分车辆通过, 比如实行单双号.
  • Stream Processing Stream processing is a computer programming paradigm, equivalent to dataflow programming, event stream processing, and reactive programming, that allows some applications to more easily exploit a limited form of parallel processing. The stream processing paradigm simplifies parallel software and hardware by restricting the parallel computation that can be performed. Given a sequence of data (a stream), a series of operations (kernel functions) is applied to each element in the stream.
  • Aliyun - API Signature 阿里云各个服务会对每个访问请求进行身份验证,所以无论使用 HTTP 还是 HTTPS 协议提交请求,都需要在请求中包含签名(Signature)信息。DirectMail 通过使用 Access Key ID 和 Access Key Secret 进行对称加密的方法来验证请求的发送者身份。Access Key ID 和 Access Key Secret 由阿里云官方颁发给访问者(可以通过阿里云官方网站申请和管理),其中 Access Key ID 用于标识访问者的身份;Access Key Secret 是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密,只有阿里云和用户知道。
  • Redis Redis
  • Microservices - Architecture Microservice architecture (MSA) is an approach to building software systems that decomposes business domain models into smaller, consistent, bounded-contexts implemented by services. These services are isolated and autonomous yet communicate to provide some piece of business functionality. Microservices are typically implemented and operated by small teams with enough autonomy that each team and service can change its internal implementation details (including replacing it outright!) with minimal impact across the rest of the system.
  • Hadoop Hadoop
  • Microservices - Load Balancing 在微服务架构中每个服务都可能有多个运行实例, 那么服务消费者在调用服务时怎么定位应该把请求发送给哪个实例呐? 这就是负载均衡 Load Balancing 要做的事情。Load Balancing 可以在服务端也可以是在消费端。
  • Reactive Design Patterns - Reactive Manifesto 以响应式系统方式构建的系统更加灵活,松耦合和可扩展。这使得它们更容易被开发,而且经得起变化的考验。它们对于系统失败表现出显著的包容性,并且当失败真的发生时,它们能用优雅的方式去应对,而不是放任灾难的发生。响应式系统是高度灵敏的,能够给用户以有效的交互式的反馈。
  • Microservices - Service Discovery Clients of a service use either Client-side discovery or Server-side discovery to determine the location of a service instance to which to send requests. Why use Service Discovery?
  • Try Cloud Foundry 10 - Service Discovery Service Registry for Pivotal Cloud Foundry (PCF) provides your applications with an implementation of the Service Discovery pattern, one of the key tenets of a microservice-based architecture. Trying to hand-configure each client of a service or adopt some form of access convention can be difficult and prove to be brittle in production. Instead, your applications can use the Service Registry to dynamically discover and call registered services.
  • Microservices - Restful API Client RestTemplate provides higher level methods that correspond to each of the six main HTTP methods that make invoking many RESTful services a one-liner and enforce REST best practices.
  • The blogging platform - Medium For a long time, the blogging platform options have been Blogger and WordPress. Each has had its pros and cons, but as technology has developed around the blogging world, new options have emerged. One size doesn’t fit all needs on blogging platforms and new, nuanced options have been a long time coming! Today we are coming Tumblr versus Medium. Both are exciting blogging venues for different reasons. As you read the comparisons, consider what format and platform will best serve your needs!
  • Try Cloud Foundry 9 - Message Broker A message broker is an architectural pattern for message validation, transformation and routing. It mediates communication amongst applications, minimizing the mutual awareness that applications should have of each other in order to be able to exchange messages, effectively implementing decoupling.
  • Microservices - Restful API HATEOAS HATEOAS (Hypermedia as the Engine of Application State) is a constraint of the REST application architecture. A hypermedia-driven site provides information to navigate the site’s REST interfaces dynamically by including hypermedia links with the responses. This capability differs from that of SOA-based systems and WSDL-driven interfaces.
  • Microservices - Restful API Spring Restful Representational state transfer (REST) or RESTful web services is a way of providing interoperability between computer systems on the Internet. REST-compliant Web services allow requesting systems to access and manipulate textual representations of Web resources using a uniform and predefined set of stateless operations. Other forms of Web service exist, which expose their own arbitrary sets of operations such as WSDL and SOAP.
  • Try Cloud Foundry 8 - Spring Cloud Connector Spring Cloud Connectors simplifies the process of connecting to services and gaining operating environment awareness in cloud platforms such as Cloud Foundry and Heroku, especially for Spring applications. It is designed for extensibility: you can use one of the provided cloud connectors or write one for your cloud platform, and you can use the built-in support for commonly-used services (relational databases, MongoDB, Redis, RabbitMQ) or extend Spring Cloud Connectors to work with your own services.
  • Try Cloud Foundry 7 - Spring Boot Spring Boot - Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.
  • SAP Hybris Cloud for Customer Engage your customers in more meaningful ways with SAP Hybris Cloud for Customer. This cloud CRM portfolio brings sales, customer service, and social CRM together – to help your team form powerful personal connections that drive customer engagement across all channels. Take advantage of rich predictive insight, flawless execution and contextual customer experience relevant to your industry.
  • CSS Flexible Box Layout CSS Flexible Box Layout is a module of CSS that defines a CSS box model optimized for user interface design.
  • TypeScript Language Overview TypeScript is a superset of JavaScript which primarily provides optional static typing, classes and interfaces. One of the big benefits is to enable IDEs to provide a richer environment for spotting common errors as you type the code. For a large JavaScript project, adopting TypeScript might result in more robust software, while still being deployable where a regular JavaScript application would run.
  • ZeroNet Decentralized websites using Bitcoin crypto and the BitTorrent network. No single point of failure: Site remains online so long as at least 1 peer is serving it. No hosting costs: Sites are served by visitors. Impossible to shut down: It’s nowhere because it’s everywhere. Fast and works offline: You can access the site even if Internet is unavailable.
  • Training JavaScript - 3. Angular for Frontend Development Angular (commonly referred to as ‘Angular 2+’ or ‘Angular 2’) is a TypeScript-based open-source front-end web application platform led by the Angular Team at Google and by a community of individuals and corporations to address all of the parts of the developer’s workflow while building complex web applications. Angular is a complete rewrite from the same team that built AngularJS.
  • Async JavaScript and ReactiveX RxJS RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code.
  • Training JavaScript - 2. Create Server by Node.js (JavaScript version) Node.js is an open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side. Historically, JavaScript was used primarily for client-side scripting, in which scripts written in JavaScript are embedded in a webpage’s HTML, to be run client-side by a JavaScript engine in the user’s web browser. Node.js enables JavaScript to be used for server-side scripting, and runs scripts server-side to produce dynamic web page content before the page is sent to the user’s web browser.
  • Training JavaScript - 1. Foundation JavaScript, often abbreviated as ‘JS’, is a high-level, dynamic, untyped, interpreted run-time language. It has been standardized in the ECMAScript language specification. Alongside HTML and CSS, JavaScript is one of the three core technologies of World Wide Web content production; the majority of websites employ it, and all modern Web browsers support it without the need for plug-ins. JavaScript is a multi-paradigm language, since it supports prototype-based with first-class functions, imperative, and functional programming paradigms.
  • Try Cloud Foundry 6 - Multi Tenancy Multitenancy is an approach in which an instance of an application is used by different customers and thus dropping software development and deployment costs when compared to a single-tenant solution where multiple parts would need to be touched in order to provision new clients or update existing tenants. Cloud Foundry supports Multi Tenancy using Identity Zone Management APIs of UAA
  • Try Cloud Foundry 5 - UAA OAuth2 This article explains how to use Cloud Foundry APIs from a user application using the built in identity management solution in the User Account and Authentication Service (UAA). The UAA acts (amongst other things) as an OAuth 2.0 Authorization Server, granting access tokens to Client applications for them to use when accessing Resource Servers in the platform, such as the Cloud Controller. This article describes the responsibilities of a Client application and the mechanics of setting one up.
  • Try Cloud Foundry 4 - Custom Routes and Domains This topic try how routes and domains work in Cloud Foundry, and how developers and administrators configure routes and domains for their applications using the Cloud Foundry Command Line Interface (cf CLI).
  • Cloud Foundry - The Cloud-Native Platform Cloud Foundry is a platform for running applications and services. Its purpose is to change the way applications and services are deployed and run by reducing the develop to deployment cycle time. Cloud Foundry directly leverages cloud-based resources so that applications running on the platform can be infrastructure unaware. It provides a contract to run cloud-native applications predictably and reliably.
  • Cloud Foundry - The Cloud-Native Platform Cloud Foundry is a platform for running applications and services. Its purpose is to change the way applications and services are deployed and run by reducing the develop to deployment cycle time. Cloud Foundry directly leverages cloud-based resources so that applications running on the platform can be infrastructure unaware. It provides a contract to run cloud-native applications predictably and reliably.
  • Version Control with Git Powerful Tools and Techniques for Collaborative Software Development. Although some familiarity with revision control systems will be good background material, a reader who is not familiar with any other system will still be able to learn enough about basic Git operations to be productive in a short while. More advanced readers should be able to gain insight into some of Git’s internal design and thus master some of its more powerful techniques.
  • Unit Test by Spring MVC Test Framework Testing is an integral part of enterprise software development. Dependency Injection should make your code less dependent on the container than it would be with traditional Java EE development. This topic introduce how to create Unit Test by Spring MVC Test Framework for Java project on HCP
  • How to Store Media Files in MongoDB with Node.js application I want to store a large number of media files in a mongo database, but I don’t know if it is a good practice. I would like to know the problems and concerns of doing it in this way. In this topic I will introduce how to store media files in MongoDB with Node.js application
  • Building Microservices Distributed systems have become more fine-grained in the past 10 years, shifting from code-heavy monolithic applications to smaller, self-contained microservices. But developing these systems brings its own set of headaches. With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and evolving microservice architectures. Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You’ll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.
  • Apply Spring Data JPA to Java Project on HCP Spring Data’s mission is to provide a familiar and consistent, Spring-based programming model for data access while still retaining the special traits of the underlying data store. Spring Data JPA, part of the larger Spring Data family, makes it easy to easily implement JPA based repositories. This module deals with enhanced support for JPA based data access layers. It makes it easier to build Spring-powered applications that use data access technologies.
  • Apply Spring Architecture to Java Project on HCP The Spring Framework is an application framework and inversion of control container for the Java platform. The framework’s core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBeans (EJB) model. I will show you how to apply Spring Frameworks to Java project on HANA Cloud Platform.
  • Persistence Service for Java Maven Project on HCP The Java Persistence API (JPA) is a Java specification for accessing, persisting, and managing data between Java objects / classes and a relational database. JPA was defined as part of the EJB 3.0 specification as a replacement for the EJB 2 CMP Entity Beans specification. In this topic I will show you how to create persistence service for Java project on HCP using Java Persistence API (JPA) and it’s implementation EclipseLink
  • Maven Commands Maven is a build automation tool used primarily for Java projects. Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
  • Setup Java Maven Project for HANA Cloud Platform SAP HANA Cloud Platform is an open platform-as-a-service that provides unique in-memory database and application services. It is the proven cloud platform that enables you to rapidly develop new applications or extend existing ones. Enabling anyone to extend SAP applications in minutes, all in the cloud.
  • What's CDS Core Data Services (CDS) is an infrastructure that can be used by developers to create the underlying (persistent) data model which the application services expose to UI clients. CDS is just SQL + Annotation. Annotation is just a Note / Explanation / Comment. Annotation is explained by Evaluation Runtime (Engine). Engine is one of SADL / BOPF / Analytic Manager / Enterprise Search / ABAP / HANA …
  • CDS based Virtual Data Model (VDM) The concept of the Virtual Data Model (VDM) has been introduced with HANA Live two years ago. Meanwhile CDS (Core Data Services) offers the ability to define database views independent of the application platform. ABAP CDS views are currently managed via ABAP. In future they will also support native-HANA access. As such CDS models contribute to the massive simplification of the suite stack towards the envisioned two-tier architecture. VDM views defined with the ABAP CDS technology are not restricted to read-only analytical use-cases, but will be used e.g. within search and transactional applications, too. Most of the key modeling principles for CDS views outlined below are taken from the already existing guidelines for the VDM based on HANA calculation views.
  • From a CDS View to an OData Service for Analytics HANA content can be modeled in the HANA database based on the replicated and local data. Basically, HANA content will consumed in the ABAP layer through transient InfoProviders on Operational Data Providers (ODPs). Based on the transient providers, BEx Queries are defined. These Queries serve as a central consumption entity. They are exposed via EasyQuery to allow access via OData for HTML5 UIs and native mobile applications or external access from reports via the BusinessObjects BI Platform.
  • HANA XS Classic part 1 - XS Data Services XS Data Services (XSDS) are a JavaScript library for the XS engine to consume SAP HANA artifacts that have been defined using Core Data Services (CDS), the central data modeling concept of HANA. The XSDS library supports the import of CDS entities and their associations and offers managed and unmanaged manipulation of such instances. With additional features such as transaction handling, lazy navigation, support for custom types and views, and incremental query building XSDS offers a level of convenience that makes writing native HANA applications with XS a breeze.
  • HANA Default Client When accessing the HANA views directly (or via analytical tools like Lumira or BOC), a proper client needs to be maintained at the HANA database user.
  • Git Commands Git (/ɡɪt/) is a version control system (VCS) for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for software development, but it can be used to keep track of changes in any files. As a distributed revision control system it is aimed at speed, data integrity, and support for distributed, non-linear workflows.
  • OAuth2 with YaaS OAuth 2 is an authorization framework that enables applications to obtain limited access to user accounts on an HTTP service, such as Facebook, GitHub, and YaaS. YaaS is a microservices ecosystem helping businesses to rapidly augment and build new, highly flexible solutions. In this article I will show you how to create OAuth2 client and how to use OAuth2 services in YaaS Platform
  • Getting Started with YaaS YaaS (Hybris as a Service) is a microservices ecosystem helping businesses to rapidly augment and build new, highly flexible solutions. Two role in YaaS, one is provider, another is consumer. As a provider, add new microservice-based features to your products or create your own services and apps from scratch. As a business, subscribe to YaaS services and add new capabilities to your applications. Let’s get started with YaaS
  • HANA Cloud Integration SAP HANA Cloud Integration easily exchange data in real-time with SAP HANA Cloud Platform, integration services. Integrate processes and data between cloud apps, 3rd party applications and on-premises solutions with this open, flexible, on-demand integration system running as a core service on SAP HANA Cloud Platform.
  • Super-cluster plugin on Baidu Map Marker聚合在地图应用的很多场景中有着广泛使用,不同的地图提供商一般都有提供相应的 marker cluster 功能或插件,比较常用的如 Marker Clustering plugin for Leaflet。对于百度地图在其官方开源库中也提供了聚合插件 MarkerClusterer 标记聚合器,但性能不尽如人意。这里我们来研究使用 Mapbox 的 supercluster 插件做百度地图上的标记聚合功能。
  • Analysis of AQI on Map using D3.js and Turf.js 市面上常见的空气质量指数(AQI)展现方式都是简单的标记某个测量位置的测量值,我们想更加全局地把握观察AQI的分布,这里我们研究使用几个不同的统计方式在地图上展现AQI的区分分布效果。沃洛诺伊图(Voronoi Diagram)是根据多个点对空间进行分割的算法,比较适合我们根据监测点计算其所覆盖的区域。
  • Use Baidu Map Provider in Leaflet.js 百度地图 Baidu Map 的墨卡托投影映射 Mercator Projection 和经纬度坐标与 Tile Url 都有加偏移,本文介绍如何继承和修改 Leaflet.js 原有 Class 使之适应百度地图的算法,将百度地图展示于 Leaflet.js 框架上
  • Introduction to CDS on HANA and ABAP Part 3 - Unit Test “Core data services (CDS) is an infrastructure for defining and consuming semantically rich data models in SAP HANA.” 单元测试(Unit Test)在ABAP程序开发中已经非常重要,通常的ABAP Unit Test我们并不陌生。但是在代码重心下移至数据库层的模式下我们该如何对ABAP CDS Entities单元测试?本文简要介绍在ABAP中如何使用CDS Test Double Framework进行CDS Entities单元测试的
  • Introduction to CDS on HANA and ABAP Part 2 - Authorization Check “Core data services (CDS) is an infrastructure for defining and consuming semantically rich data models in SAP HANA.” 相较于ABAP的authorization check,CDS Views增加了隐式的数据级别的权限定义:Data Control Language (DCL)。本文简要介绍如何使用DCL控制用户从CDS View中访问限定数据
  • Introduction to CDS on HANA and ABAP part 1 “Core data services (CDS) is an infrastructure for defining and consuming semantically rich data models in SAP HANA.” 它诞生于SAP HANA数据库的出现,后来又被应用到ABAP Dictionary上。
  • HANA Cloud Connector SAP HANA Cloud Platform, cloud connector is a simple on-premises integration agent that allows highly secure and reliable connectivity between your cloud applications and on-premises systems.
  • How to config Fiori App in Launchpad 本文介绍如何将Fiori应用配置到Launchpad上去,其中包括HANA Cloud Platform版,HANA Respository版及ABAP版
  • SCP Cloud Foundry 1 - Getting Started 很多公司的云平台都提供了Cloud Foundry服务,本文介绍如何在Hybris YaaS上创建Project,如何在HANA Cloud platform HCP上的Cloud Foundry services上创建Application,和一些基础的CF命令
  • How to handle Timezone in SAP HANA, ABAP OData and UI5 本文主要介绍如何在SAP的系列软件中包括Fiori UI5, ABAP, OData, HANA,如何处理不同时区UTC用户使用统一时间timestamp数据。How to handle Timezone in SAP HANA, ABAP OData and UI5
  • Angular.js 1.x Introduction AngularJS is a structural framework for dynamic web apps. It lets you extend HTML’s syntax to express your application’s components in a clear and concise manner. AngularJS is what HTML would have been, had it been designed for applications. It attempts to minimize the mismatch between document centric HTML and what an application needs by creating new HTML constructs.
  • 用Turf分析各省高考生密度 用Turf和Nodejs并使用GeoJSON标准文件做全国各省高考报考人数的密度分析,并在Carto地图上进行可视化。
  • SAP Fiori and UI5 Introduction SAP Fiori是为了给企业级应用带来更好的用户体验的一种设计语言。SAP Fiori通过基于用户角色和业务过程的设计原则简化了业务操作流程。SAP Fiori是一站式ERP解决方案向面向用户任务的轻量级程序转变的典范。为了加速全球数字经济的转型,SAP正在把这一设计语言应用到其领先的技术平台。本文介绍SAP Fiori的概念和设计原则,以及其与SAP UI5的关系,并对比其与市场上其他设计语言的异同比如Google的Material Design
  • ABAP Development for SAP HANA SAP HANA内存数据库作为SAP未来很长一段时间内新产品的基石被广泛应用在各种新产品中,ABAP作为SAP传统产品的技术基础有着其成熟的开发模式和应用架构,两者相结合(AMDP,CDS,ADBC)也成为SAP很多产品的技术架构。本文以循序渐进的方式介绍ABAP开发针对HANA数据库有哪些特性,以及各自在应用程序中扮演的角色。
  • HANA Multiple Languages and Translation SAP HANA platform及相关的产品如SAPUI5、ABAP有多种开发对象Object的多语言Multiple Languages及翻译Translation问题,本文介绍HANA涉及到的多语言功能和翻译工具,及SAPUI5和ABAP的多语言的使用,并且介绍实际场景中需要注意的一些问题。最后特别说明对中文不同标识的处理方式。
  • HANA New Features to support Microservices 作为传统老牌企业管理软件供应商SAP在新技术应用方面总是慢一步。面对日益增长的企业数据量和业务系统复杂度,SAP受到了来自竞争对手的压力意欲改变自己传统的应用系统架构。HANA作为SAP未来一段时间下一代系统的基石,也在不断改变和完善自身功能,以适应新兴的系统设计模式和架构理念,其中一项即是对Microservices设计思想的支持。本篇将介绍SAP HANA增加了哪些支持Microservices的开发功能,并不涉及太多Microservices和SOA的理论。
  • HANA Spatial in Action 地理空间(geospatial)信息及地图(map)在人们的日常生活和生产中使用越来越广泛。作为程序开发者,深入理解和正确的应用地理空间理论会给我们各种系统带来质的变化。依托HANA内存数据库强大高效的计算能力,HANA Spatial功能可以为基于地理空间信息的大数据分析提供有力的支持。本篇文章将介绍地理空间相关的理论及SAP HANA内存数据库如何对其原生支持的。
  • HANA Spatial with Baidu Map SAP HANA Spatial在SAP各产品中的应用越来越广泛,同时以SAP HANA为基础的产品在中国市场得到快速成长,SAP产品中的地图在进入中国市场时经常会遇到本土化的问题。作为国内知名的地图供应商 百度地图 Baidu Map 经常被用来作为地图可视化的工具。但国外的产品在本地化的过程中总是会遇到水土不服的问题。
  • HANA Spatial in Hybris Marketing SAP HANA内存数据库提供Spatial库并PAL库对基于地理空间信息(Geospatial)的大数据分析的原生支持。基于地理空间信息的大数据分析(Big Data Analytic)在例如精准营销(CEI)、智慧城市、定位应急响应、无人机应用、优化农业生产等很多场景中得到广泛应用。
Back to Top