1. Overview
Data Service is a specialized web service, which occupies a large proportion of the website.
Therefore, there are Enterprise Service Bus (ESB) and data bus. The two are the two bus in SOA. The concept and function correspond to each other, all provide centralized and star access services.
Data vs information. Data generally refers to a single table, and information refers to a combination of multiple data tables with business meanings. Generally, the subject of data service is "information ".
2. Basic data service interfaces
Through metadata definition, one or more data tables are combined into an information view in one or more data sources, exposed as a service, and the crud interface and update notification mechanism are provided.
In addition to allowing the data bus to directly access the database, the data source may also be the WebService/EJB interface of the business system. This is of great significance for SOA, databases in the business system are very likely to be physically or logically not allowed to be directly accessed and updated by the bus.
1. crudsi operation interface:
Standard create, update, delete, Retrive, search, and information interfaces for information exposure.
In addition to the most traditional WebService interfaces, the following transmission protocols and data formats may also exist:
- Rest, lightweight resource-oriented interface, data service seems to be the most appropriate use of rest-hierarchical URL location object, HTTP primitive for crud operations.
- JSON/Pox (plain old XML) to simplify data transmission as much as possible.
- RSS/atom feed, a lightweight information publishing and subscription format.
- Although the SDO specification of IBM/BEA looks pretty good, but due to the cross-platform requirements of data transmission, the absence of MS is equivalent to the absence of white.
- The virtual JDBC driver supports ado.net WebService and minimizes the transformation cost of the old system.
2. Query Language:
- SQL 92 language.
- XQuery for the XML result set.
- The self-designed Object-Oriented Query Language, such as JPA jql, Salesforce soql, and Facebook fql can better express object nesting relationships in the Information view, such as post. Comments.
- Google base's simple query by Property Matching-fillter mode.
3. Data Update notification mechanism:
- Salesforce's Server query interface with time window parameters (begintime, endtime), such as ID [] getupdated (objecttype, begintime, endtime ).
Advantage-Simplest; disadvantage-Low real-time performance: serious resource loss when high real-time performance is required;
- The customer implements the Web service that receives notifications for the server to call.
Disadvantage: the customer needs to implement the Web Service server, and the server needs to implement message-oriented middleware functions such as subscription and reliability assurance.
- The customer receives messages through the mom client using the cross-platform message middleware producer. In addition, the encapsulation shields the existence of underlying message-oriented middleware and only provides users with limited APIs.
Advantage-High efficiency and low client requirements. Disadvantages-Free and popular cross-platform middleware is hard to find.
4. Interface Granularity:
You can have one interface for each business entity and perform scurdi operations. You can also use the same operation interface. For example, you can use rest to locate the actual object type.
Rest's "hierarchical positioning" is more suitable for complex data environments than simply "data types.
Whether it is in the soap or rest format, interfaces are frequently added or modified using RPC and strong data types.
5. Permission Rule Engine:
On the basis of table-level and column-level permission control, a flexible rule engine is required to implement customizable row-level permission control.
6. Business-level Encapsulation
You can encapsulate reusable business-level interfaces on the basis of standardized data interfaces.
3. Distributed Data deployment
After the above basic services provide centralized and unified access points for basic scattered data sources (but integration is not supported), you can:
- Distributed Real-Time joint view
Data Union mode To combine the data in multiple data sources (dB and WebService) and data in multiple data tables that are distributed transparently into a larger information view with business significance, supports real-time Joint query and limited update capabilities.
Data integration mode, which supports vertical integration of data services connected to the data bus.
For example, when multiple autonomous independent heterogeneous data sources (regional branches, mergers and acquisitions) have core business entities-primary data (such as customers and orders ), provides a unified read-only dataset after overlapping conversion.
There are two Integration Methods: one is that each data source actively calls the basic service interface of the total dataset for publishing. Another mode is that the data bus actively pulls data sources.
4. Other more powerful demands
- Full-text index: supports relevance sorting, fuzzy search, or search by multiple keywords.
- Data analysis: supports data mining and dashboard reports.
- ETL.
5. lightweight data services
- Atom/APP, gdata transfer atom/APP protocol and Google, Microsoft extension implementation.
- Facebook data store API Beta Release
- Snaplogic provides a restful Python data integration framework that supports integration of DB and WebService.
6. Other implementation projects 6.1
Bea Data Service Platform
- AquaLogic Data Services Platform templates
- Data in SOA, Part 1: converting data into information (dev2dev) Partition)
- Logical Data Service-"scrudi" design mode (dev2dev) Deployment)
- Dev2dev APIs)
Supports basic service interfaces, output web service, SDO, JDBC (read-only) and other operation interfaces, focusing on Horizontal Joint query of Heterogeneous Data Based on XQuery.
6.2 others
- JBoss DNA plugin (deep into JBoss metamatrix plugin), similar to Bea, has not been released after JBoss's acquisition.
- Longjump daas (Database-as-a-service) Restart)
7. Other References
- Information service model, Part 1: Data Federation model, Part 2: Data Integration Model, Part 2: Data cleansing model (ibm dw)
- Integrate enterprise data (infoq) into SOA)