Category: "DB-Tracklayer 開発, プログラミング, 開発" , Tags: iPhone
iPhone으로부터 외부의 MySQL DB서버에 액세스하는 방법
DB-Tracklayer의 iPhone판(iPhone용MySQL클라이언트 응용 프로그램)실현을 향해서, 사장보다 새로운 미션으로서 「iPhone으로부터 외부MySQL DB서버에 액세스하는 라이브러리를 구축해라!」이라고 하는 지령이 온 것입니다.
(※일부의 코멘트는 과장하고 있습니다)
액세스 라이브러리의 작업을 행한다고 하는 것은, 괴로운 부분(데이타의 교환)만으로, 맛있는 곳(GUI, 애니메이션 등)은 없음이라고 하는 것입니다.
게다가 이것이 실현할 수 없으면, iPhone판의 기획 자체가 불채용이 되어버리는,이라고 하는 무언의 프레셔 첨부입니다.
책임중대입니다.
···과 여담은 그대로 두고, iPhone으로부터 MySQL DB서버의 정보를 취득하는 방법입니다만,
주로 2종류의 실현 방법을 들 수 있습니다.
하나는, MySQL DB서버와 iPhone을 중개하는 서버를 별도준비하는 방법입니다.
PHP등에는 이미 MySQL용의 클라이언트 라이브러리가 있으므로, 거기에서 DB에 액세스하고, 결과를 HTTP에서 iPhone에 돌려주는 방법입니다.
이 방법은 중개 서버마저 이뤄버리면, HTTP통신을 실시할 수 있는 다종다양한 단말에서 실현가능하기 때문, 간단히 구현할 수 있어서 응용력이 높습니다만, 그 반면, 중개 서버를 경유하기 위해서 서버 처리 능력, 서버 운용비용등이 문제가 됩니다.
(도대체 닫은 네트워크 환경상입니다라고 중개 서버에 액세스할 수 없고.
)
그리고 또 하나는 iPhone으로부터 직접 DB서버에 접속하는 방법입니다.
MySQL에는 MySQL Connector라고 불리는 클라이언트 라이브러리가 준비되어 있어서, 이것을 사용하면 DB에 직접 접속할 수 있습니다.
중개 서버는 이용하지 않으므로, 속도면이나 운용비용으로 곤란을 겪을 것은 없습니다만,
공식으로 준비되어 있는 라이브러리는 기존의 메이저한 플랫폼에 한정되고 있어, iPhone전용의 라이브러리는 현시점에서는 존재하지 않았습니다.
단, 소스가 공개되어 있으므로, 이번은 이것을 iPhone용에 커스터마이즈하기로 했습니다.
iPhone용의 개발에는 Objective-C이라고 하는 언어를 채용합니다만, 이것은 C언어의 상위호환이므로, C언어의 소스는 그대로 컴파일 할 수 있습니다.
원래 mac os용의 거동도 소스에 있으므로, 거기를 잘 이용하고, iPhone에서 동작하게 소스를 수정하고, 컴파일을 실시했습니다.
실제의 iPhone단말로부터 MySQL DB서버에의 접속도 무사하게 실시할 수 있었습니다.
그런데 다음에, 이번사용한 MySQL Connector(libmysql)은 C언어를 사용해서 액세스합니다만, 이대로입니다라고, iPhone에서 이용하는 Cocoa touch프레임워크와의 서로 맞은 성격이 그다지 좋지 않으므로, Cocoa touch에 적합하게 wrapper class의 제작을 행했습니다.
주로, C언어의 문자열형 (char*)과 NSString*형태와의 상호변환, 문자코드 변환, 메모리 관리 등을, 클래스 라이브러리에서 흡수하도록 하고 있습니다.
단지, 실제로 사용해 보면 아마 모자란 부분이 많이 난다고 생각해 문지른다에서, 수시 수정을 더해 갈 예정입니다.
Language: 1 2 3 4 5
[1:日本語, 2:English, 3:简体中文, 4:繁體中文, 5:한국어]


