Github user kevdoran commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi/pull/118#discussion_r175555010
  
    --- Diff: 
minifi-c2/minifi-c2-web-api/src/main/java/org/apache/nifi/minifi/c2/web/api/C2ProtocolResource.java
 ---
    @@ -0,0 +1,119 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package org.apache.nifi.minifi.c2.web.api;
    +
    +import io.swagger.annotations.Api;
    +import io.swagger.annotations.ApiOperation;
    +import io.swagger.annotations.ApiParam;
    +import io.swagger.annotations.ApiResponse;
    +import io.swagger.annotations.ApiResponses;
    +import org.apache.nifi.minifi.c2.model.C2Heartbeat;
    +import org.apache.nifi.minifi.c2.model.C2HeartbeatResponse;
    +import org.apache.nifi.minifi.c2.model.C2OperationAck;
    +import org.springframework.stereotype.Component;
    +
    +import javax.ws.rs.Consumes;
    +import javax.ws.rs.POST;
    +import javax.ws.rs.Path;
    +import javax.ws.rs.Produces;
    +import javax.ws.rs.core.MediaType;
    +import javax.ws.rs.core.Response;
    +
    +@Component
    +@Path("/c2-protocol")
    --- End diff --
    
    The internal architecture of the C2 Server will be based on these layered:
    
        Web/Network Protocols (REST, MQTT, etc)
        Services
        Providers (e.g., database or persistence providers)
    
    The bulk of the C2 Protocol implementation logic will live in the service 
layer, which will expose Java APIs for the Web protocol layers to interact 
will. The Web protocol implementations will provide very minimal/lightweight 
adapters, such as deserializing whatever wire-format they use into the 
in-memory objects that are required for calling the service layer API.  
External clients, such as MiNiFi agents, will only interact with the web 
protocols we choose to define, expose, and support. Everything else at the 
service level and below is internal to the C2 server implementation.


---

Reply via email to