OpenStack2012.02.10 15:19
오늘은 OpenStack Swift의 DB 구조에 대하여 알아보도록 하겠다.

OpenStack의 Swift는 mysql과 같은 DB를 사용하지 않는다. 다만 SQLite3라고 하는 경량화 된 DB를 사용한다. 
그럼 Swift에는 어떤 Table들이 있을까? 정말 궁금하기 그지 없다. 소스를 까보지 않는 한 Swift Directory 구조를 살펴보지 않는 한 알수가 없다. 그래서, 내가 살펴 본 Swift의 DB 구조를 이곳에 공개하려 한다.

Table List
우선 Table List 부터 알아보도록 하겠다.

Swift에는 Account, Container, Object로 이루어져 있다. 그래서 DB Table또한 Account Table, Container Table, Object Data로 이루어져 있다.


OpenStack Table List


Posted by 나리 짱!!! naleejang
Java2012.02.08 12:57
요즘은 Restful이 유행이다. 통신을 하기 위해서 가장  부하가 적은 웹서비스이기 때문이다. Java에서 요즘 가장 많이 사용하는 것이 Spring Framework 와 함께 Apache CXF를 가장 많이 사용한다. 그다음에 사용하는 WebService로는 Apache AXIS 이다. 둘다 Apache에서 나온 프로젝트이기 때문에 오픈소스라고 볼 수 있다. 라이센스는 걱정하지 않고 사용하기만 하면 되는 것이다. 

Apache CXF : http://cxf.apache.org

위의 Apache CXF 홈페이지를 방문하면 다운로드 뿐만 아니라 좀 더 자세한 정보를 알아 낼 수 있다. 

Apache AXIS :  http://axis.apache.org/axis2/java/core/ 

AXIS 역시 홈페이지를 방문하면 Install 가이드 및 자세한 정보를 확인 할 수 있다.
 
Apache CXF 설치

Eclipse에서 Maven Project를 생성 후 Pom.xml에 Apache CXF 를 추가한다.



환경설정

Web.xml에 다음과 같이 Servlet을 추가합니다.

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>SimpleJaxs</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/beans.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>

<servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class> org.apache.cxf.transport.servlet.CXFServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
</web-app> 



web.xml 환경설정이 끝나면 beans.xml를 생성한다.

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xmlns:jaxrs="http://cxf.apache.org/jaxrs"

  xmlns:cxf="http://cxf.apache.org/core"

  xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://cxf.apache.org/jaxrs

http://cxf.apache.org/schemas/jaxrs.xsd

http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">


  <import resource="classpath:META-INF/cxf/cxf.xml" />

  <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />

  <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />


 <jaxrs:server id="CxfService" address="/Service">

    <jaxrs:serviceBeans>

    <ref bean="DemoBean" />

    </jaxrs:serviceBeans>

  </jaxrs:server>

  

  

  <bean id="DemoBean" class="demo.jaxrs.server. DemoCxf " />


Server 프로그램 샘플
 
그럼 이번에는 Server Program 를 생성해 보도록 하겠다.

package demo.jaxrs.server;
import javax.ws.rs.Consumes;

import javax.ws.rs.DELETE;

import javax.ws.rs.GET;

import javax.ws.rs.POST;

import javax.ws.rs.PUT;

import javax.ws.rs.Path;

import javax.ws.rs.PathParam;

import javax.ws.rs.Produces;

import javax.ws.rs.core.Response;
 

@Path("/DemoCxf/")

public class  DemoCxf {

        @GET

@Path("/getMsg/{gubun}")

public String getMsg(@PathParam("gubun") String _gubun)
        {

return "hi"+ _gubun;

}

        @POST
        @Path("/AddData/{gubun}/{data}")
        public String addData(@PathParam("gubun") String _gubun, @PathParam("data") String _data)

        {
                String data = _data;
                return "true";
        }



Client 프로그램 샘플

Server 프로그램을 생성했으면 Client 프로그램을 생성해야 한다.

import org.apache.cxf.jaxrs.client.WebClient;

 public class DemoCxfClient {
       public String getMsgClient( String serverUrl) 

{

WebClient client = WebClient.create(serverUrl);

                String gubun = "1"; 

String result = client.path("/CxfService/DemoCxf/getMsg").accept("application/xml").get(gubun);

return result;

}

        public String addDataClient( String serverUrl, String data) 

{

WebClient client = WebClient.create(serverUrl);
                String gubun = "1"; 
                String data = "test_data";   

String result = client.path("/CxfService/DemoCxf/addDataClient").accept("application/xml").post(gubun, data);

return result;

}

 
 
샘플 코드에서 나는 Rest의 두가지를  샘플로 코딩하였다. 바로 @GET 과 @POST이다. 이번에는 Rest 방식에 대하여 설명하도록 하겠다.

@GET 
   특정 구분자에 의한 값을 조회할때 
@POST
   새로운 데이터를 저장하거나 생성할 때
@PUT
   저장되어 있는 데이터를 변경할 때
@DELETE
   저장되어 있는 데이터를 삭제할 때
@HEAD
   조회하고자 하는 데이터의 메타데이터를 확인 할 때
@OPTION 
   지원 메소드를 체크할 때 
Posted by 나리 짱!!! naleejang
OpenStack2012.02.02 10:45

지난 2011년에 OpenStack Swift를 설치하면서 정보를 서로 공유를 하는것이 좋다고 생각을 했다. 그리고, 아무도 하지 않은 설치 매뉴얼을 작성해서, OpenStack Korea Community와 공유를 하였다.

여기에서도 OpenStack Swift 설치 매뉴얼을 받아볼 수 있도록 공유를 하려고 한다.

VirtualBox를 활용한 OpenStack Swift SAIO 설치 매뉴얼



OpenStack Swift Multi Server 설치 매뉴얼

 

 
Posted by 나리 짱!!! naleejang
English2012.02.01 17:16

My real name is Jang Hyun Joung. Jang is my family name. Hyun Joung are my given names.
but My nick name is nalee. Please call me "Nalee".
 
I'm a computer engineer who specialist in using Java.
I work in cloud computing system. and my company's name is "MNL Solution".
so I can install and operate OpenStack for cloud computing.
I like this job.  because my dream was to be a computer programmer.

I'm married. I have a daughter.
She is six years old. Her name is Han Yeji. Han is her family name. Yeji is her given name.
Two years ago, my husband lives in Incheon. I live in Daejeon. My daughter lives in Ilsan with her grandmother. 
so we were a weekend family.
However, I live together with my family in Ilsan now.
So I'm happy.
 
My hobby is belly dancing and learning English.
I like to learn English because I can talk to foreign people.
In addition I like to dance.
Two years ago I had a salsa performance.
My partner was a foreigner. He came from Australia. However he is South African.
It was very fun. So I will never forget the performance.


'English' 카테고리의 다른 글

Standing Tall in The Room Speech Script  (0) 2015.05.30
My Introduction~!!  (3) 2012.02.01
Posted by 나리 짱!!! naleejang